TFT Geht nicht Merkwürdige Logikpegel

OP #2192680
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
Angehängte Dateien:
OP #2192699
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
Angehängte Dateien:
#2192745
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.
OP #2195377
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 :)
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren