logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak podłączyć Atmega8 do MAX7219 i sterować matrycą LED 4x8?

mikroproc 19 Sty 2013 12:41 8160 10
REKLAMA
  • #1 11810134
    mikroproc
    Poziom 9  
    Posty: 7
    Witam,

    Ostatnio pracuję nad układu, który opiszę krok po kroku poniżej.

    Główne elementy układu:
    >> mikrokontroler Atmega8
    >> układ MAX7219
    >> matryca LED 4x8

    Opis działania układu:
    >> Mikrokontroler powinien sterować układem MAX7219 tak aby możliwe było wyświetlanie cyfr lub liter na matrycy LED.

    Poniżej zamieszczam obrazek jak elementy powinny komunikować się ze sobą:
    Jak podłączyć Atmega8 do MAX7219 i sterować matrycą LED 4x8?

    Problemy do rozwiązania:
    >> 1. Jak podlączyć mikrokontroler Atmega8 do układu MAX7219 ?
    >> 2. Jak dokładnie działa układ MAX7219 ? (Czytałem datasheet i różne materiały w internecie, ale to co znalazłem jak dla mnie nie jest do końca zrozumiale wytłumaczone)
    >> 3. Czy pomiędzy mikrokontrolerem a MAX7219 nie potrzeba jakiegoś dodatkowego układu posredniczącego ?

    Bardzo prosiłbym o pomoc w rozwiązaniu przedstawionych problemów.
    Z góry dziękuję.
  • REKLAMA
  • #2 11810187
    McMonster
    Poziom 32  
    Posty: 1942
    Pomógł: 182
    Ocena: 57
    Już na pierwszej stronie karty katalogowej MAX7219 masz rysunek, do czego jest on przeznaczony, a chodzi o 8-krotne wyświetlacze 7-segmentowe, a nie o matryce. Proponuję przyzwyczajać się bardziej do czytania kart katalogowych, bo bez tego w elektronice niewiele zdziałasz.
  • REKLAMA
  • #3 11810222
    mickpr
    Poziom 39  
    Posty: 4630
    Pomógł: 579
    Ocena: 295
    McMonster napisał:
    Już na pierwszej stronie karty katalogowej MAX7219 masz rysunek, do czego jest on przeznaczony, a chodzi o 8-krotne wyświetlacze 7-segmentowe, a nie o matryce. Proponuję przyzwyczajać się bardziej do czytania kart katalogowych, bo bez tego w elektronice niewiele zdziałasz.

    Odpowiedzią będzie cytat z datasheet:
    Cytat:
    The MAX7219/MAX7221 are compact, serial input/output common-cathode display drivers that interface microprocessors (μPs) to 7-segment numeric LED displays of up to 8 digits, bar-graph displays, or 64 individual LEDs.


    Oraz odpowiedzią będzie parę przykładów:
    http://rgb.kitiyo.com/2008/7219-app-circuit.html
    http://www.planetarduino.org/?cat=432

    http://playground.arduino.cc/Main/MAX72XXHardware
    http://playground.arduino.cc/LEDMatrix/Max7219


    Przy użyciu wyszukiwarki Google - (patrz mój opis) można znaleźć niemal wszystko, co się chce... jeśli się chce.
    Moderator powinien usuwać takie posty - ponieważ dublują rzeczy, które można już znaleźć w Internecie.
  • Pomocny post
    #4 11810268
    kapelan
    Poziom 14  
    Posty: 72
    Pomógł: 5
    Ocena: 7
    Układ ten może także służyć do sterowania matrycą 8x8. Poniżej schemat znaleziony w sieci.

    Jak podłączyć Atmega8 do MAX7219 i sterować matrycą LED 4x8?
  • #5 11814788
    mikroproc
    Poziom 9  
    Posty: 7
    Dzięki za schemat. Już rozumiem jak podłaczyć MAXa do ATmegi.

    Jednak powstał kolejny problem.
    Jaki jest algorytm sterowania MAXem?

    W MAXie jest rejestr przesuwny, do którego ładowane są dane z mikrokontrolera, po czym dane te są zatrzaskiwane i wysyłane do matrycy diod.

    Ale jak szczegółowo wygląda przepływ sygnałów z uKontrolera do MAXa, aby matryca LED wyświetlała określona grafikę?

    Czytałem wiele materiałów na elektrodzie i w internecie, jednak wszystko nie jest jeszcze zbyt jasne dla mnie.

    Proszę o pomoc.
  • REKLAMA
  • #6 11814867
    mickpr
    Poziom 39  
    Posty: 4630
    Pomógł: 579
    Ocena: 295
    mikroproc napisał:
    Ale jak szczegółowo wygląda przepływ sygnałów z uKontrolera do MAXa, aby matryca LED wyświetlała określona grafikę?

    Czytałem wiele materiałów na elektrodzie i w internecie, jednak wszystko nie jest jeszcze zbyt jasne dla mnie.
    Widzę, że nie zajrzałeś w przesłane przeze mnie linki (gdzie masz przykład kodu).
    Nie zajrzałeś też dobrze w datasheet (gdzie masz całą specyfikację jak na dłoni).

    Pewnie chciałbyś - aby ktoś zrobił dla ciebie gotowca. A twoja inicjatywa gdzie?

    Zaręczam ci, że poświęcając 5 minut dla Google - znajdziesz to, czego chcesz.
  • #7 11814929
    mikroproc
    Poziom 9  
    Posty: 7
    Zajrzałem w Twoje linki. Przeglądałem je wcześniej.

    Oczywiście jest tam przykład kodu i dodana do niego biblioteka funkcji.

    Jednak, sprawa polega na tym, że chciałbym wiedzieć jak układ działa, w jaki sposób ładowane są kolejne bity do rejestru MAXa, itp.

    Przeglądałem datasheet, przeczytałem cały. Ale nie rozumiem nadal jak te dane są przesyłane z uK do MAXa.

    Siedzę już 3 dzień w internecie i nie znalazłem dokładnego wytłumaczenia co i jak.

    Chciałbym, aby ktoś mi to wytłumaczył, żeby wszystko było jasne i logiczne.
    Nie chcę gotowców (jak ten kod z linku), ponieważ chcę zrozumieć jak to działa i napisać swój własny kod.

    Proszę o wyrozumiałość.
  • #8 11814969
    BlueDraco
    Specjalista - Mikrokontrolery
    Posty: 6479
    Pomógł: 939
    Ocena: 421
    Nie ma dokładniejszego wytłumaczenia ni to w dokumentacji firmowej, a jest tam WSZYSTKO. Czytaj i stosuj. Nikt w Internecie nie wymyśli nic lepszego, niż to, jak ten układ zdefiniował producent.
  • REKLAMA
  • #9 11815142
    mikroproc
    Poziom 9  
    Posty: 7
    Może masz rację, że w dokumentacji jest wszystko.
    Tylko, że czytanie dokumentacji znając angielski w stopniu podstawowym, czasem wiąże się ze słabym zrozumieniem tematu.
    Tutaj nawet wujek translate.google nie pomaga. :D

    Ale na pewno jest osoba, która wykorzystywała MAXy i rozumie na czym polega wpisywanie danych do rejestru szeregowego MAXa.

    W dokumentacji pisze:
    >> W MAXie jest wejście DataIN, którym wprowadzane są dane.
    >> Jest też wejście CLK na zegar z uKontrolera, i na zboczu narastającym dane są przesuwane w rejestrze MAXa. A na zboczu opadającym to nie wiem co się dzieje, bo nie rozumiem zdania: On CLK’s falling edge, data is clocked out of DOUT.
    >> Gdy wejście LOAD wykryje zbocze narastające, wówczas dane są zatrzaskiwane, czyli rozumiem to w ten sposób, że dane z rejestru MAXa są wysyłane do docelowej matrycy LED.

    Moje pytanie jest takie:
    >> Czy dobrze rozumiem, że sygnał CLK mogę podawać z uKontrolera po prostu zmieniając wartość odpowiedniego Pinu z 0>>1 i 1>>0 ?

    Poniżej podaję tabelę z datasheet odnośnie wyprowadzeń MAXa:
    Jak podłączyć Atmega8 do MAX7219 i sterować matrycą LED 4x8?
  • Pomocny post
    #10 11815214
    mickpr
    Poziom 39  
    Posty: 4630
    Pomógł: 579
    Ocena: 295
    mikroproc napisał:
    Czy dobrze rozumiem, że sygnał CLK mogę podawać z uKontrolera po prostu zmieniając wartość odpowiedniego Pinu z 0>>1 i 1>>0 ?
    Myślę, że odpowiednia konfiguracja SPI załatwi tą sprawę za ciebie.
    Pogooglaj trochę - pościągaj kody - zobacz jak inni to zrobili. Będziesz miał pogląd na to, jak w twoim przypadku powinieneś to zrobić.
    Zacznij od zdefiniowania
    1. Co chcesz zrobić.
    2. Jak wygląda twoja matryca
    3. Jak będzie podpięta (pod jakie porty).
    Potem przeglądając jak to zrobili inni - w drugiej ręce trzymając wydrukowany Datasheet - sprawdź jak wyglądają podstawowe procedury (do wpisu do rejestru danych i instrukcji sterujących)...
    Krok po kroku... i dojdziesz do tego - jak to ma wyglądać.

    Przykładowo tutaj masz podłączenie z użyciem SPI:
    http://www.ermicro.com/blog/?p=2292
  • #11 11815410
    BlueDraco
    Specjalista - Mikrokontrolery
    Posty: 6479
    Pomógł: 939
    Ocena: 421
    Na zboczu opadającym 7219 zmienia stan linii DOUT, która służy do kaskadowania układów - możesz w ten sposób przesyłać dane do łańcuszka kilku 7219.

    Możesz to pędzić z SPI, możesz też zrobić interfejs programowo - wystawiasz bit danych, machasz linią zegara.

Podsumowanie tematu

✨ Użytkownik pracuje nad układem z mikrokontrolerem Atmega8, układem MAX7219 i matrycą LED 4x8, mając na celu wyświetlanie cyfr i liter. Zgłasza problemy z podłączeniem Atmega8 do MAX7219 oraz zrozumieniem działania tego układu. Odpowiedzi sugerują, aby dokładnie zapoznał się z dokumentacją MAX7219, która zawiera schematy i przykłady kodu. Użytkownik poszukuje szczegółowych informacji na temat algorytmu sterowania MAX7219 oraz przesyłania danych z mikrokontrolera. Wskazówki dotyczące użycia SPI oraz konfiguracji połączeń są również podane, a także wyjaśnienia dotyczące działania rejestru przesuwnym w MAX7219.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA