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
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.
> 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
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
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....
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.
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.
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 :)
Es war die RD Leitung :) Vielen Dank!!!! Einfach RD auf 1 setzen und alles geht eiwandfrei :P
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.