Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Atmega8 i MAX7219 - Podlaczenie Atmega8 do MAX7219

mikroproc 19 Sty 2013 12:41 6372 10
  • #1 19 Sty 2013 12:41
    mikroproc
    Poziom 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ą:
    Atmega8 i MAX7219 - Podlaczenie Atmega8 do MAX7219

    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ę.

    0 10
  • #2 19 Sty 2013 12:55
    McMonster
    Poziom 32  

    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.

    -1
  • #3 19 Sty 2013 13:00
    mickpr
    Poziom 39  

    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.

    1
  • Pomocny post
    #4 19 Sty 2013 13:13
    kapelan
    Poziom 13  

    Układ ten może także służyć do sterowania matrycą 8x8. Poniżej schemat znaleziony w sieci.

    Atmega8 i MAX7219 - Podlaczenie Atmega8 do MAX7219

    1
  • #5 20 Sty 2013 12:36
    mikroproc
    Poziom 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.

    0
  • #6 20 Sty 2013 12:48
    mickpr
    Poziom 39  

    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.

    1
  • #7 20 Sty 2013 12:58
    mikroproc
    Poziom 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ść.

    0
  • #8 20 Sty 2013 13:05
    BlueDraco
    Specjalista - Mikrokontrolery

    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.

    0
  • #9 20 Sty 2013 13:36
    mikroproc
    Poziom 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:
    Atmega8 i MAX7219 - Podlaczenie Atmega8 do MAX7219

    0
  • Pomocny post
    #10 20 Sty 2013 13:50
    mickpr
    Poziom 39  

    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

    0
  • #11 20 Sty 2013 14:38
    BlueDraco
    Specjalista - Mikrokontrolery

    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.

    0
  Szukaj w 5mln produktów