Hallo liebes Board,
ich sitze vor dem Problem, dass ich den LCD (standart HD44780, 2 Zeilen
a 16 Zeichen) einfach nicht angesteuert bekomme.
Ich habe die Software Bibliothek aus diesem Forum und noch 2 andere
probiert und es hat einfach nichts funktioniert.
F_CPU stimmt, Leitungen sind alle korrekt verbunden (bestimmt 20 mal
geprüft) und ich sehe immer nur den Zustand, dass die obere Zeile
"schwarz" und die untere "weiß" ist.
Kontrast habe ich auch über ein Poti eingestellt.
Kurz: Ich bin mit meinem Latein ab Ende :D.
Falls ihr noch Ideen habt würde ich mich wirklich riesig freuen!
Viele Grüße,
Lukas
Lukas schrieb:> F_CPU stimmt
Läuft der µC auch tatsächlich mit genau dieser Taktfrequenz?
Zur Sicherheit kannst Du das ja mit einem LED-Blinkprogramm mit der
"delay"-Funktion testen.
Ansonsten: Schaltplan und Programm zeigen!
Gruß Dietrich
Also Taktfrequenz vom Atmega stimmt auch, hab in den Fuses 1 Megahertz
eingestellt und der Programmcode entspricht genau den beiden Datein (.c
und .h) und dem LCD Beispiel1.
https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung
Die Kabelfarben sind leider etwas verwirrend aber wenn ich am LCD die
Pins durchgehe bekomme ich:
Pin1 VSS --> GND
Pin2 VDD --> VTG (5V)
Pin3 V0 --> Hängt am Poti (gemessen 1,4V)
Pin3 RS --> PD4
Pin4 RW --> GND
Pin5 E (Enable) --> PD5
Pin6-Pin9 (D0-D3) --> nicht angeschlossen
Pin10 Anode --> (5V)
Pin11 Kathode --> GND
Lukas schrieb:> hab in den Fuses 1 Megahertz eingestellt
Hast Du auch getestet, ob diese Einstellung auch wirklich 1MHz bewirkt?
Daher die Empfehlung: Test mit Blinkprogramm mit delay() und schauen, ob
die Zeit etwa stimmt.
Gruß Dietrich
Lukas schrieb:> Pin3 V0 --> Hängt am Poti (gemessen 1,4V)> Pin3 RS --> PD4
Da ist was falsch: 2x Pin3
> Pin6-Pin9 (D0-D3) --> nicht angeschlossen
Bei mit ist D0..D3 an Pin7...Pin10
Und D4...D7 an Pin11...PIN14
> Pin10 Anode --> (5V)> Pin11 Kathode --> GND
Das ist bei mir Pin15 und Pin16.
Und wo ist der Vorwiderstand für die LEDs, oder ist der eingebaut?
Gruß Dietrich
falls es hilf hier ein kleiner Auszug wie ich das Teil mal mit einem
Attiny26 angesteuert habe. Ich habe einfach nur aufs Busyflag gewartet
und dann die Befehle rausgeschickt, habe nicht auf die vorgegebenen
Zeiten geachtet wie es das Datenblatt vorgibt. Hast du an die internen
Pullups gedacht vielleicht kommen die dir in die Quere. Die einzelnen
Unterprogramme erwähne ich nicht da es hier haupsaächlich um die
Ansteuerung eines Latches geht womit ich meine Pins noch anderweitig
nutzen konnte. Anbei noch ein Auszug aus dem Datenblatt für die
Initialisierung in den 4bit-Mode. Bei meinem Controller funktionierte
das Busyflag aber hingegen zu diesem Hitachi Datenblatt.
Thomas O. schrieb:> Bei meinem Controller funktionierte> das Busyflag aber hingegen zu diesem Hitachi Datenblatt.
Evtl. sitzt bei dir ein KS0066 drauf, der etwas anders reagiert als der
originale HD44780.
Bei dem Hitachi sollte man sich wirklich nicht aufs Busybit verlassen,
zumal man dann zwingend R/W verdrahten muss, was ohne Busybit fest auf W
(Masse) liegen kann (wer will schon vom Display was lesen).
Wer sein LCD nur benutzen will, sollte die Library von Peter Fleury
nehmen.
http://homepage.hispeed.ch/peterfleury/avr-software.html#libs
Dabei muss man nur auf die richtige Verdrahtung und auf die
Einstellungen in lcd.h achten.
Wer mit dem LCD rumspielen möchte, sollte wirklich die Prozedur des
Hitachi Datenblattes impementieren, da der alte Controller etwas zickig
ist. Unter anderem gilt hier zur Einstellung des 4-bit Modus:
"Ich sags dreimal und dann ist es wahr" :-)
Hi
>bei mir hatte das LCD am Mega32 mal ein Problem wegen der>JTAG-Schnittstelle.>Fuse den AVR neu und deaktiviere JTAG, dann könnte es gehen.
Wird für PortD nicht viel bringen.
MfG Spess
Danke schonmal für die vielen Antworten! :)
@Dietrich L & Hubert G. Hab gerade mal ne LED dran gehängt und sie im
Sekundentakt blinken lassen: Alles soweit in Ordnung. Bei den Pins hab
ich mich verzehlt, der zweite Pin3 --> Pin4, Pin4 --> Pin5 etc.
Vorwiderstand für die Beleuchtung ist intern verbaut (wurde jedenfalls
nichts heiß und auch kein Spannungseinbruch)
@Matthias Sch: Die Softwarebibliothek hatte ich auch schon benutzt, aber
die hat leider auch nicht funktioniert.
@Jonas Wühr: Jtag dürfte bei mir eigentlich kein Problem sein, konnte ja
auch ne Led zum blinken bringen und der LCD ist ja eigentlich nichts
anderes nur in cool :D
Ich hab gerade nochmal probiert die Datenleitungen D0-D3 auf Masse zu
ziehen aber auch das hat nichts gebracht. Ist echt wie verhext mit dem
Ding
Nimm doch mal PA.. oder PC.. als Display-Port. Ich kenne mich mit dem
STK500 nicht aus, aber ggf. stört die Verbindung zum Pegel-Wandler
Richtung serieller Port von PD0 / PD1 (RXD/TXD).
Hast du mal in das Datenblatt des LCD gesehen, welche maximalen
Anstiegszeiten für die Signale toleriert werden? Dein Drahtverhau wird
nicht gerade mit steilen Flanken glänzen.
Eine eigene Frage?
Dieser Thread ist über 11 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.