Forum: Mikrocontroller und Digitale Elektronik TFT Geht nicht Merkwürdige Logikpegel


von C. H. (hedie)


Angehängte Dateien:

Lesenswert?

Guten Morgen

Ich habe dieses Display hier gekauft:
http://cgi.ebay.ch/ws/eBayISAPI.dll?ViewItem&item=280575347222&ssPageName=ADME:B:EOIBSA:CH:1123

Hier Datenblätter etc... 
http://www.bestelecs.com/download/lcd_pcb_module/3inch2_tft.zip

Nun habe ich den Angehängten Beispielcode angepasst auf einen Atmega16 
mit 3.3V und 12MHz

Meine Hardware:

Atmega16@12MHz
PortA: DB0..DB7 des Displays
PortC: DB8..DB15 des Displays
PortB: Steuerleitungen

Der Atmega läuft selbst auch mit 3.3V.

Aufgebaut ist alles auf einem Stück lochraster mit WireWrap drähten auf 
der Rückseite... also relativ schlechte EMV verdrahtung... Jedoch über 
der Speisung des 3.3V Reglers ein 22uF Tantal + 100nF keramik.

Speisung des Atmega auch 100nF keramik und direkt bei der Display 
Speisung 100uF + 100nF Keramik.

Nun zum problem...
Das Display tut nichts!

Die verbindungen stimmetn 100% habe ich 5 mal kontrolliert... auch mit 
dem LA geprüft...

Doch nun habe ich mit dem Oszilloskop mal die Datenleitungen DB0..DB7 
(auf dem bild ist jedoch nur eine Leitung) angeschaut. Dabei ist mir 
aufgefallen das es sehr merkwürdige signale sind. (Siehe bilder im 
anhang) Wie kommen diese zu stande? besonders Bild1

was könnte ich hier als abhilfe tun?

Danke schonmal

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Miss doch mal zeitgleich die LCD_WR Leitung. Es sieht so aus als würden 
der AVR und das Display gleichzeitig Daten auf den Bus legen.

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

> auf einem Stück lochraster mit WireWrap drähten auf der Rückseite

WireWrap wird es sicherlich nicht sein, eher Fädeldraht.

Wickeldraht-Schaltungen sinmd diese Technologie (Drähte um Stifte 
rumgewickelt):

http://de.wikipedia.org/w/index.php?title=Datei:Computerplatine_Wire-wrap_backplane_detail_Z80_Doppel-Europa-Format_1977.jpg

von C. H. (hedie)


Angehängte Dateien:

Lesenswert?

Magnus Müller schrieb:
> Miss doch mal zeitgleich die LCD_WR Leitung. Es sieht so aus als würden
> der AVR und das Display gleichzeitig Daten auf den Bus legen.

Habe ich gemacht... Siehe Bilder im Anhang (Blau ist WR)
Ich habe übrigens herausgefunden, dass das Signal mit jenem der CS 
Leitung übereinstimmt. wenn ich das CS Signal entferne, dann geht die 
Gelbe leitung auf High anstatt bei VCC 1/2 zu hängen und einen clock zu 
haben.

Wegstaben Verbuchsler schrieb:
> WireWrap wird es sicherlich nicht sein, eher Fädeldraht.

Es ist nich WireWrap technik aber ich verwende WireWrap draht. Also 
AWG28

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Claudio Hediger schrieb:
> Magnus Müller schrieb:
>> Miss doch mal zeitgleich die LCD_WR Leitung. Es sieht so aus als würden
>> der AVR und das Display gleichzeitig Daten auf den Bus legen.

Äääh... Quatsch! Ich meinte die LCD_RD Leitung....

von (prx) A. K. (prx)


Lesenswert?

Wo wird denn RD auf high gelegt?

In der Intialisierung werden alle DDRs auf Ausgang gesetzt, bei DATAx=0, 
was gleichzeitig CS, RD und WR aktiviert. Schon mal schlecht, weil du 
damit den LCD-Controller ungewollt ansprichst. RD bleibt zudem permanent 
aktiv, was zu dem erkennbaren Treiberkonflikt führt.

Besser: Erst die DATAx auf 0xFF setzen, dann als Ausgang definieren.

Im Originalcode funktioniert das ohne Portinitialisierung, weil der dort 
verwendete 8051er völlig anders arbeitende Ports hat.

von (prx) A. K. (prx)


Lesenswert?

PS, hat nichts mit dem Problem zu tun: Auch empfehlenswert, wenn im LCD 
nicht sowieso drin: Ein schwacher externer Pullup-Widerstand an CS, 
damit bei Urzustand/Programmierung des AVR der LCD-Controller nicht 
durch undefinierten Pegel an CS versehentlich angesprochen wird.

von C. H. (hedie)


Angehängte Dateien:

Lesenswert?

Magnus Müller schrieb:
> Äääh... Quatsch! Ich meinte die LCD_RD Leitung....

Habe ich nun gemacht und im Anhang das Bild... (blau ist die RD 
Leitung... Code ist derselbe! )

A. K. schrieb:
> Besser: Erst die DATAx auf 0xFF setzen, dann als Ausgang definieren.

Was genau meinst du damit? Soll ich bevor ich auf Ausgang schalte PORTB 
= 0xFF machen?

A. K. schrieb:
> PS, hat nichts mit dem Problem zu tun: Auch empfehlenswert, wenn im LCD
> nicht sowieso drin: Ein schwacher externer Pullup-Widerstand an CS

Werde ich mir merken... Danke :)

von C. H. (hedie)


Lesenswert?

Es war die RD Leitung :)

Vielen Dank!!!!


Einfach RD auf 1 setzen und alles geht eiwandfrei :P

von (prx) A. K. (prx)


Lesenswert?

Claudio Hediger schrieb:

> Was genau meinst du damit? Soll ich bevor ich auf Ausgang schalte PORTB
> = 0xFF machen?

Ebendies, zumindest für CS,RD,WR. Erst Ausgang mit implizit low dann auf 
high ist unsauber.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.