Atmega128 i T6963C

Usiłuję uruchomić wyświetlacz 160x128pix z kontrolerem T6963C w trybie memory mapped na Atmega128. Niestety, kiedy próbuję zapisać dane do pamięci wyświetlacza, na ekranie pokazują się częściowo losowe śmieci, a częściowo dane wysyłane przeze mnie, choć niekoniecznie wszystkie i niekoniecznie w miejscu które im wybrałem, za to w powtarzalny sposób zależny od tego czy mam podpięty programator ISP czy nie. Dosyć to dziwne. Ktoś może coś doradzić?

Dariusz Żołna

Reply to
Dariusz Zolna
Loading thread data ...

To znaczy w jaki sposób zależy?? Gdy nie ma programatora wszystko jest OK? Czy może jest mniej śmieci? Bo to troszkę niejsane ;)...

Pozdrawiam Konop

Reply to
Konop

Konop pisze:

Jest inny układ śmieci. Z czego przy podpiętym programatorze układ śmieci wygląda za każdym razem na taki sam, a bez niego zmienia się przy każdym podpięciu zasilania (choć chyba jest tylko kilka jego wersji).

Dariusz Żołna

Reply to
Dariusz Zolna

Użytkownik Dariusz Zolna napisał:

Rozumiem, że podłączył Kolega wyświetlacz tak jakby to była zewnętrzna pamięć RAM dla ATmegi. Może wyświetlacz się nie wyrabia na magistrali i trzeba dać dłuższe wait state.

Pozdrawiam Grzegorz

Reply to
Grzegorz Kurczyk

Grzegorz Kurczyk pisze:

Tak, wyświetlacz jest podpięty podobnie jak zewnętrzny RAM: AD0-AD8 -> DB0-DB7 A12 -> C/D A13 -> CE WR -> WR RD -> RD PD7 -> RST

Dane zapisuję pod adres 0x8000, komendy pod 0x9000.

Dodawanie WS ani obniżanie częstotliwości taktowania (nawet do 1MHz) nie pomaga.

Dariusz Żołna

Reply to
Dariusz Zolna

A mógłbyś podać które z tych linii współdzielone są przez programator (o ile w ogóle jakiekolwiek...)? Żeby nie trzeba było szukać PDFa, jeśli ktoś nie wie/nie pamięta...

Pozdrawiam Konop

Reply to
Konop

W dniu 2010-01-02 23:32, Dariusz Zolna pisze:

Ale dlaczego robisz na chybił trafił? Ten 1MHz jest jakąś magiczną wartością?

  1. Zobacz wykresy czasowe w dokumentacji kontrolera wyświetlacza
  2. Zobacz wykresy czasowe w PDFie tej ATmegi
  3. Jak nie wierzysz 2) sam zobacz je na oscyloskopie

Szybko wyjdzie, gdzie musi być waitstate lub co się nie wyrabia. Jeżeli oczywiście to problem samej komunikacji, niezależny od programatora.

Reply to
Adam Dybkowski

Adam Dybkowski pisze:

Na grupie zazwyczaj pytam po wyczerpaniu wszystkich możliwości, tak jak było w tym przypadku. Czasem datasheety to zwykłe datashity i kiedy działanie zgodne z opisem się nie sprawdza, trzeba kombinować.

No i wyszło - LCD był wadliwy. Najprawdopodobniej sprzedawca (SMD na Kalwaryjskiej w Krakowie) nabył partię tych LCD po okazyjnej cenie, bo chińczyk który je montował pomylił się i zalutował jedną zworkę określającą ilość RAM na pokładzie. Kiedy wszystkie softwareowe metody zawiodły, obejrzałem LCD od tyłu i w okolicach kostki RAM znalazłem 2 zworki - jedna zalutowana, druga nie. Rozlutowałem jedną z nich i wszystko automagicznie zaczęło działać. To nie jedyna wada tego LCD - zgodnie z nalepką podświetlenie miało być LED, a jest EL.

Dariusz Żołna

Reply to
Dariusz Zolna

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.