Problem sa AVRom i grafickim LCDom

Pozdrav!

Radi se o sljedecem: osnovni modul sa napajanjem, programatorom i AVRom (ATmega) je flat kabelima spojen na LCD modul (graficki LCD temeljen na Samsung KS0108). LCD modul vuce napajanje sa osnovnog modula (normalan kabel). Osnovni modul adresira LCD i time enable-a 74ls373 latch-eve pa salje podatke i naredbe.

Problem je sto se LCD "brlja" tj. ne ispisuje se bas ono sto bi trebalo. Konkretno, prilikom brisanja ekrana (salju se 0x00) desavaju se crne pruge ili samo crni pikseli. Kad ga ugasim i opet upalim opet slicno ali pruge su na nekom drugom mjestu. Slucajna raspodjela totalno. Dakle podaci se nekako promijene na putu AVR->LCD ali samo ponekad. Problem sigurno nije softverski posto su isti driveri radili na protoboardu bez ikakvih problema, ali na protoboardu je LCD bio direktno spojen na mikrokontroler, bez dodatne logike.

Problem moze biti svasta, a samo da natuknem na sto ja sumljam (mozda nebuloze totalne, ovo mi je prvi put da radim sa ikakvim digitalnim ICovima):

1) Koristim LS-TTL latcheve (daju oko 3.7V na izlazu) a trebao bi drajvati kontroler koji je vjerovatno CMOS (iako Vh,min=0.7*Vcc=3.5V). 2) Latchevi su spori? 3) Kablovi su neprikladni (predugi?) i trebalo bi ih promatrati kao prijenosne linije (terminirati?). Smanjenje brzine AVRa donekle poboljsava stvar a trebao bi raditi na 8MHz. 4) Trebalo bi dodati kondenzator za filtriranje napajanja i blizu LCD-a a ne samo one na 7805 i dodatno na AVR. Interesantno je da se ispis bolje ponasa kad se resetira sustav (preko ISP-a) nego kad se ugasi pa upali.

Uglavnom, ja bas ne znam puno o ovome posto mi je ovo prvi put da slazem takav sustav pa je svaka pomoc i ideja dobrodosla. Ovo je prototip na zalemljen na pertinax protoboardu (ili kak se vec zove to) a ne prava kartica ali sumljam da je u tome problem. Direktno spojeni mikrokontroler i LCD su odlicno radili na 8MHz i na solderless protoboardu sa hrpetinom zica popikanima jedna preko druge a ovdje nece ni na 1MHz.

Ima tko kakvu ideju?

Thanx!

- R.

Reply to
Roland
Loading thread data ...

/cut/

problrm je vjerojatno u predugim kablovima (pogotovo ako su smotani u rolu) i to vjerojatno na enable ili CS linijama.Probaj na strani displaya na te linije spojit otpor 1k ili kond 10nF

Reply to
megamusic

Evo, malo sam isprobavao i problem moze ponekad biti i u E i CS linijama ali sam siguran i da je glavni problem u DB0-7. Recimo one pruge koje sam spominjao ponekad mogu ostati crne od inicijalzacije LCDa ali cesto se javljaju uske pruge, dakle nesto se upisalo na LCD ali nije to onih

0x00 koje sam ja poslao nego npr. 0xF0. Ovi flat kablovi su sa vise konektora i ovisno o tome na koji spojim DB port se javlja vise ili manje gresaka. Dakle, ovisno o duljini kabela i koliko se smota prilikom spajanja. Isto tako, ako spojim na najblizi konektor i tih 10 cm kabela se smota javlja se vise gresaka nego ako je kabel dulji i ravniji. I sve skupa se ne mijenja znacajno ako produljim ili vise smotam kabel sa kontrolnim signalima.

Zanima me kako bi spajao te otpore ili kondenzatore. Otpore normalno serijski a kondenzatore paralelno prema GND ili?

Thanx!

- R.

Reply to
Roland

rolu)

te

postavljas li koju data liniju u hi Z stanje?

Otpore i/ili kondove izmedju signala i mase, mislim da neka linija ide u visoku impedanciju i tada pokupi smetnje s ostalih.

Reply to
megamusic

Mislim da ne. Port na ATmega je postavljen kao izlazni a latch je enable-an kad se komunicira s LCDom.

Ovo sa linijom u visokoj impedanciji mi nije bas jasno. Radi li se o jednoj od podatkovnih linija ili nekoj dodatnoj? Kako bi to uopce postigao?

- R.

Reply to
Roland

Problem rijesen!!! :)

Maknuo sam latch sa DB, okrenuo konektor da se kabel manje savija i sve prespojio. I jos sam dodao kondenzator od 100nF direktno izmedu Vcc i GND na LCDu. I sve radi bez gresaka! Evo vrtim testni program vec 50. put i nikako da se nacudim. :)

I posebno veliko HVALA megamusic-u! Dizajn slican onom tvom (samo sa

74HC573 - thanx iqk) cu predloziti kao zavrsni a prototipu je dobro i ovako. Iako vjerovatno nitko nece tako skoro raditi plocice za ovo, ali neka bude...

A ukoliko nekome treba C biblioteka (AVR-GCC) za 128x64 LCD-e temeljene na KS0108 i pripadna aplikacija za pretvaranje windows bitmapa u .h fajlove, neka se javi pa posaljem sve na binse kad zavrsim dokumentaciju. Nije nesto posebno i dosta je glomazna ali izmedu ostaloga crta i RLE komprimirane bitmape i ima dosta "jaku" printf funkciju.

Pozdrav!

- R.

Reply to
Roland

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.