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.

Wyświetlacz matrycowy LED 8 X 8 punktów - ATMEGA 8.

kacha36 06 Cze 2010 21:57 3887 8
  • #1 06 Cze 2010 21:57
    kacha36
    Poziom 23  

    Witam. Mam problem z projektem znalezionym w sieci. Matryca działa wyświetlając pojedyncze punkty po wyjęciu procesora z podstawki - kiedy zwieram poszczególne piny (do plusa i minusa zasilania) w podstawce wtedy pojedynczo diody świecą w dowolnym miejscu matrycy 8x8, ale po podłączeniu procesora nic się nie dzieje, diody nie świecą. Może ktoś składał podobny układ i znalazł jakieś błędy, nie wiem - w schemacie, programie?

    https://obrazki.elektroda.pl/12_1275854252.jpg


    Chcę wyjaśnić, że diody po wyjęciu procesora nie wyświetlają "śmieci", są wygaszone. Reszta opisana wyżej.

    0 8
  • #2 06 Cze 2010 22:21
    Karol966
    Poziom 30  

    Po wyjęciu procka rejestry 164 'łapią' śmieci i dlatego świecą dowolne diody. Nie wkładaj procka, a zewrzyj jedynie linię CLK do stanu nieaktywnego i zobacz co się dzieje.

    0
  • #3 12 Cze 2010 09:04
    marco47
    Poziom 41  

    Witaj.
    Sądzę że zbudowałaś układ w całości, nie uruchamiając jego poszczególnych części w trakcie budowy. Wtedy dokładnie wiedziałabyś gdzie tkwi błąd nie działania wyświetlania.
    Zacznij od początku (jeżeli masz możliwość wyjęcia układów), podłącz do masy poszczególne bazy tranzystorów (przez rezystory) i podając masę na wyjścia układu ULN2803. Będziesz wiedziała czy działają dobrze same wyświetlacze z tranzystorami.
    Następnie to samo zrób tylko podaj wysoki stan na wejścia układów ULN2803. I znowu będziesz wiedzieć czy w tej konfiguracji działa wyświetlacz. Następnie dołóż rejestry i podawaj impulsy na CLK i różne stany na AB 74164. Jeżeli uznasz ze wszystko jest w porządku dołóż Atmegę i dowiesz się czy to ona sprawia kłopoty. Oczywiście te wszystkie działania muszą być poprzedzone dokładnym sprawdzeniem ścieżek ale to chyba wiesz.
    Jeżeli w sprawnej płytce po włożeniu atmegi nie działa wyświetlacz masz dwie możliwości, albo zły układ albo źle wgrany program, również fusebity.

    0
  • #4 13 Cze 2010 15:01
    kacha36
    Poziom 23  

    Witam.
    Układ budowałam etapami, sprawdzając działanie sterowania kolumnami i wierszami, obecnie zwierając w podstawce - oczywiście bez procesora - między 22 nogą a kolejnymi bazami tranzystorów piny 12, 13 itd. powoduję świecenie diod w jednym rzędzie. Podając sygnały na wejścia AB 74164 oraz CLK powoduję świecenie poszczególnych kolumn. Można uznać, że sterowanie diodami działa poprawnie. Po włożeniu procesora nastaje ciemność. Pomyślałam o pustej pamięci EEPROM w procesorze. Używając programu runstring.exe nic nie wyświetla - wydaje mi się, że on powinien powodować wyświetlanie czegokolwiek po zapisie do procesora. Z tego powodu zapisałam plik .bin do pamięci w programatorze i włożyłam procesor w podstawkę w układzie z diodami. Bez zmian - nic nie wyświetla a właściwie wyświetla nic. :-) Kłopot polega na tym, że nie pamiętam skąd ściągnęłam ten schemat. Jedynie mogę sobie przypomnieć - chyba nazwisko autora - Rubashka Vasiliy. Być może czegoś jeszcze nie mam, jakiegoś pliku, dokładniejszego opisu dotyczącego programowania procesora. Załączam plik z programem w Bascomie, nie wiem jak mam go wkleić, aby był widoczny pod postem.

    0
  • #5 13 Cze 2010 16:23
    marco47
    Poziom 41  

    Przeglądając program nie dostrzegłem błędów, również kompilator nic nie wykazał a symulacja działa prawidłowo.
    Według tego programu który podałaś musisz ustawić na zewnętrzny rezonator 11.059.200Hz. Mam nadzieję że w trakcie programowania ustawiłaś odpowiednie bity konfiguracyjne na zewnętrzny rezonator?

    0
  • #6 13 Cze 2010 18:14
    kacha36
    Poziom 23  

    Witam. Z FS miałam problemy jak każdy z początkujących - zablokowałam pięć nowych procesorów, teraz są odblokowane. Podam ustawienia jakie mam w tej chwili w moim procesorze - "fusebit High H - 0:CKOPT 0, fusebit KLA987 - 111111:Ext Crystal/Resonator High Freq.;Start-up time" i tak dalej - to ostatnia pozycja. Właśnie ta ostatnia pozycja nie podoba mi się, nie jestem pewna tego ustawienia. Być może jeszcze któregoś bitu nie ustawiłam odpowiednio, sprawdzam to. Mam jeszcze pytanie czy "Portc.5 = 1" w kodzie Bascom oznacza, że na pin C.5 ma być stan wysoki? U mnie jest stan wysoki, dodatkowo zmieniłam fusebit KLA987 na 001111:Ext itd. jednak dalej nie ma efektów.

    Co do pinu C.5 to po zmianie w Bascom "Portc.5 = 1" na "Portc.5 = 0" jest stan niski, czyli tak ma być.

    0
  • #7 21 Cze 2010 00:12
    kevin
    Poziom 11  

    Jakie masz ustawienia stosu w kompilatorze?

    Najlepiej wklej do programu dyrektywy:
    $hwstack = 256
    $swstack = 128
    $framesize = 512

    (wartości są przypadkowe, należy dopasować do programu lub dobrać "eksperymentalnie")

    0
  • #8 22 Cze 2010 16:56
    kacha36
    Poziom 23  

    Witam.
    Brak czasu trochę mnie dołuje, ale spróbowałam jeszcze sprawdzić sam moduł wyświetlacza z rejestrem i wzmacniaczami, wgrałam do procesora program z migającymi kolejno diodami z książki M.Wiązani. Układ działa, na pin C.5 procesora ustawiłam stan wysoki, steruję 74164, diody "migają". Myślę, że będzie to wina programu, ale ponieważ nie jestem pewna więc szukam dalej przyczyny problemu. A może ktoś podpowiedzieć mi jak spowolnić działanie głównego programu tak, abym mogła mierzyć zmieniające się stany na końcówkach procesora? Może on wysyła litery i cyfry za szybko? Jeszcze jedna uwaga, może program do wgrywania tekstu do procesora nie przesyła danych do wyświetlenia? Sprawdzałam pamięć EEPROM AtMegi i jest pusta, chociaż program wysyłał jakieś dane. Może tu tkwi problem? Sprawdzałam poprawność połączeń i biorę pod uwagę błąd w schemacie. Może lepiej zbudować do komunikacji układ na scalaczku 232?.

    Co do podpowiedzi KEVIN-a to dyrektywy dołożyłam do programu i nic to zmieniło, będę próbować z innymi wartościami.

    0
  • #9 22 Cze 2010 18:25
    szelus
    Specjalista - Mikrokontrolery

    Znowu muszę zacząć od tego, że ja się na BASCOMie nie znam...
    Ale to, że tablica Asciitable na końcu programu zawiera same zera wydaje mi się mocno podejrzane, bo jest używana do konwersji zawartości EEPROMu na "wyświetlalną". ;)
    Również to, że zawartość EEPROM jest pusta po wysłaniu zawartości przez łącze szeregowe jest podejrzane.
    Może jednak to nie jest ostateczna (uruchomiona) wersja programu?
    --
    Przyjrzałem się, że tablica Asciitable na końcu powinna zawierać definicje znaków, po osiem bajtów dla każdego kolejnego kodu, który wyświetlacz ma obsługiwać.
    W EEPROM suma bajtów 0 i 1 daje długość napisu, bajt 2 to indeks prędkości przewijania, od 3 bajtu zaczyna się napis...

    0