Sehr geehrtes Forum,
ich habe jetzt schon seit 2 Tagen den Artikel
http://www.mikrocontroller.net/articles/AVR-Tutorial:_LCD
durchgearbeitet, habe mich nun herangemacht, den Code an meinen
Mikrocontroller (ATMega48PA mit 1MHz Schwingungsfrequenz) angepasst.
Heute war es dann so weit, ich wollte das Programm mal starten, doch
leider
passiert irgendwie nichts außer natürlich dass die Backlight Beleuchtung
angeht.
Der Quellcode den Ich verwende ist folgender :
-----------------------------------------------------
1
.include "m48PAdef.inc"
2
3
; .def definiert ein Synonym (Namen) für ein µC Register
4
.def temp1 = r16
5
.def temp2 = r17
6
.def temp3 = r18
7
8
ldi temp1, LOW(RAMEND) ; LOW-Byte der obersten RAM-Adresse
9
out SPL, temp1
10
ldi temp1, HIGH(RAMEND) ; HIGH-Byte der obersten RAM-Adresse
11
out SPH, temp1
12
13
ldi temp1, 0xFF ; Port D = Ausgang
14
out DDRD, temp1
15
16
rcall lcd_init ; Display initialisieren
17
rcall lcd_clear ; Display löschen
18
19
ldi temp1, 'T' ; Zeichen anzeigen
20
rcall lcd_data
21
22
ldi temp1, 'e' ; Zeichen anzeigen
23
rcall lcd_data
24
25
ldi temp1, 's' ; Zeichen anzeigen
26
rcall lcd_data
27
28
ldi temp1, 't' ; Zeichen anzeigen
29
rcall lcd_data
30
31
loop:
32
rjmp loop
33
34
.include "lcd-routines.asm" ; LCD-Routinen werden hier eingefügt
-----------------------------------------------------
Die Datei lcd-routines.asm ist natürlich die vom Tutorial.
Die Schaltung habe ich ebenso wie im Tutorial angegeben gemacht, mein
LCD Display Modul ist folgendes : ADM1602K-NSR-FBS/3.3V
Das Datenblatt dazu gibt es hier :
ADM1602K-NSR-FBS/3.3V
Hat jemand eine Idee woran es liegen könnte, oder was ich falsch machen
könnte?
Danke,
m.f.G. Developer_X
Also ich kann mit meiner Schaltung mit 3V oder 5V arbeiten, habe
natürlich beides ausprobiert, ohne dass es funktionierte, meine
schaltung ist so wie im Tutorial beschrieben, d.h . :
1 VSS GND (beim TC1602E: VCC)
2 VCC +5 V (beim TC1602E: Gnd)
3 VEE GND oder Poti
4 RS PD4 am AVR
5 RW GND
6 E PD5 am AVR
7 DB0 nicht angeschlossen
8 DB1 nicht angeschlossen
9 DB2 nicht angeschlossen
10 DB3 nicht angeschlossen
11 DB4 PD0 am AVR
12 DB5 PD1 am AVR
13 DB6 PD2 am AVR
14 DB7 PD3 am AVR
15 A Vorsicht! Meistens nicht direkt an +5 V abschließbar,
sondern nur über einen Vorwiderstand, der an die Daten
der Hintergrundbeleuchtung angepasst werden muss.
16 K GND
Ich bin die Kontakte auch nochma durchgegangen, stimmt alles soweit
Ich habe alle gnd pins (1,3,5) einfach an den gnd pin vom mc geklemmt,
und den vcc an den vcc vom mc.
Ich mein so soll das ja sein, anbei eine Fotographie der Schaltung :
ich hoffe daran könnt ihr vielleicht nen fehler in der verschaltung
feststellen
Danke,
m.f.G. Developer_X
Hallo developer_X,
du hast doch bestimmt ein Oszi um mal nachzuschauen was da los ist.
Reichen deine Mikrocontroller-Erfahrungen aus, um auszuschließen,
dass der Controller falsch angeschlossen wurde?
Grüße, Fred
Kevin R. schrieb:> Also ich kann mit meiner Schaltung mit 3V oder 5V arbeiten,
Dann schau nochmal ins Datenblatt deines LCDs, unter "9. Electrical
Characteristics". Dort steht "Input Voltage VDD" -> Max. 3,5V
Außerdem...
> Ich habe alle gnd pins (1,3,5) einfach an den gnd pin vom mc geklemmt
...muß an Pin 3 des LCDs die Kontrastspannung angelegt werden (über Poti
einstellbar). Wenn die fest auf GND liegt, siehst du nix.
>...muß an Pin 3 des LCDs die Kontrastspannung angelegt werden (über Poti>einstellbar). Wenn die fest auf GND liegt, siehst du nix.
Ich hab jetzt Pin3 mal an VCC angeschlossen, da sieht man aber auch
nichts.
>du hast doch bestimmt ein Oszi um mal nachzuschauen was da los ist.>Reichen deine Mikrocontroller-Erfahrungen aus, um auszuschließen,>dass der Controller falsch angeschlossen wurde?
Ich habe einen Multimeter und habe mehrmals geprüft, dass die verbindung
zwischen mc und lcd stimmt, ich habe es ja auch hinbekommen den mc so
anzuschließen, dass er per ISP programmiert werden kann, dann dürfte ich
das ja eigentlich auch hinbekommen...
Ok, du scheinst keine größeren Erfahrungen zu haben.
Typische Probleme bei der LCD-Ansteuerung:
- Konstrastspannung (falls eingestellt -> man sieht nichts)
- Verwechslung 4-bit/8-bit Modus
- Timing falsch (Quartz/Fuses prüfen)
- Timing falsch (Quelltext prüfen, Initialisierung)
Hoffe das hilft dir.
Kevin R. schrieb:> Ich hab jetzt Pin3 mal an VCC angeschlossen, da sieht man aber auch> nichts.
Warum?
Dir wurde schon mal gesagt, dass da die Kontrastspannung hingehört.
Du siehst kein einziges Zeichen bei GND oder VCC, das Potentiometer da
hat schon seinen Zweck!
OK, sorry, habe jetzt den Potentiometer genommen, sodass Pin 3 zu Pin 1
zusätzlich ne Spannungsdifferenz von 1,45 Volt hat, bei 3V
Betriebsspannung
Da sieht man aber immer noch nichts,
noch ne Idee woran es liegen könnte?
Im Tutorial bspw. heißt es, dass wenn man zumindest Spannung an alles
dranschließen würde, wenigstens ein Balken zu sehen sein sollte, was bei
mir aber irgendwie auch nciht der Fall ist...
K. R. schrieb:> Im Tutorial bspw. heißt es, dass wenn man zumindest Spannung an alles> dranschließen würde, wenigstens ein Balken zu sehen sein sollte, was bei> mir aber irgendwie auch nciht der Fall ist...
Das ist schon mal schlecht. Das LCD muß bei angelegter Betriebsspannung
und richtig eingestelltem Kontrastpoti zumindest auf einer Zeile
schwarze Kästchen anzeigen. Also teste das. Zieh den µC temporär aus dem
Steckbrett raus, damit das LCD nicht angesteuert wird. Lege die
Betriebsspannung an und drehe LANGSAM am Poti, bis sich auf dem Display
was tut. Die richtige Stellung ist erreicht, wenn die Kästchen geradeso
satt schwarz sind.
Also ich habe jetzt nur folgende Pins am LCD verbunden :
Pin1 ; GND
Pin2 ; VCC
Pin3 ; V am Poti, ich hab den dabei auch mehrmals mit Drehen rumprobiert
Pin5 ; GND
Und es sind trotzdem keine Balken zu erkennen!
Aber warum?
Ich kann mir gar nicht vorstellen, dass der schon kaputt ist, habt ihr
da zufällig ne idee wie man das testen kann?
Da steht da braucht man ne negative hilfsspannung, aber das mach ich
doch mit dem poti, und zwar ist das bei mir Vee , also V0 die
Kontrastspannung, die sich ja von den andere unterscheiden muss...
Auch wenn ich die anschlüsse des poti vertausche und dann das rad drehe
kommt es trotzdem zu keinen balken...
Uwe S. schrieb:> bei 3,3V LCD benötigt man noch eine negative Hilfsspannung für Vee !>> Das steht aber auch immer im Datenblatt des LCD, man muss es nur lesen.
An welcher Stelle des Datenblatts steht, daß die Kontrastspnnung negativ
sein muß? Vielleicht bin ich blind, aber ich kann das dort nicht
rauslesen.
http://www.sparkfun.com/datasheets/LCD/ADM1602K-NSR-FBS-3.3v.pdf
K. R. schrieb:> Ich kann mir gar nicht vorstellen, dass der schon kaputt ist
Das geht in der Tat schneller, als du dir vorstellen kannst. Einmal GND
und VCC vertauscht reicht schon. Oder GND nicht angeschlossen und
Display trotzdem angesteuert. Gerade auf dem Steckbrett passiert sowas
schnell.
Welchen Widerstandswert hat das Poti? Der Schleifer ist mit dem
Kontrastpin verbunden und die anderen beiden mit GND bzw. VCC?
D.h. ein LCD ist empfindlicher als ein MC? (So ein MC kann echt ne Menge
mit machen) und ganz ehrlich, ich kann mich nicht entsinnen jemals
vorher irgendwas am display gemacht zu haben, der widerstandswert des
Poti beträgt :
100k025M
Kommt es nicht am Ende darauf an, dass eine Spannung rauskommt, die so
zwischen 0 und 3V bzw. 0 und -3V liegt? Ich habe da 1,5, perfekt in der
Mitte, ist doch egal oder nicht?
Ich habe nur einen Poti zuhause^^ sorry aber die habe ich vorher noch
nit benutzt.
Es muss also ein 10...20k sein. ?
Danke,
m.f.G: Developer_X
K. R. schrieb:> D.h. ein LCD ist empfindlicher als ein MC?
Jedes elektronische Baulelement kann kaputt gehen, wenn es außerhalb
seiner Grenzwerte betrieben wird.
> Kommt es nicht am Ende darauf an, dass eine Spannung rauskommt, die so> zwischen 0 und 3V bzw. 0 und -3V liegt? Ich habe da 1,5, perfekt in der> Mitte, ist doch egal oder nicht?
Perfekt ist die Spannung, die genau zum Display paßt. Und deswegen nimmt
man ein Poti, damit man die Spannung einstellen kann. Wenn sie
unabhängig von der Schleiferstellung immer bei 1,5V bleibt, dann ist das
Poti falsch angeschlossen. Möglicherweise hast du eines mit
Mittelanzapfung. Sind da evtl. mehr als 3 Anschlüsse dran?
Ich habe 3 anschlüsse, 2 auf der einen, 1 auf der anderen seite, ich
dachte mir :
an die 2, schließe ich die + und - an, und an der dritten kommt das raus
das ich will, den verbinde ich dann mit dem VSS bin, also V0.
Die Spannung (ist ja was zwischen zwei Punkten) zwischen dem V0 bin mit
dem VCC Pin und dem GND Pin ist bei 1,5V.
(Also die Elektropotentialdifferenz)
K. R. schrieb:> Die Spannung (ist ja was zwischen zwei Punkten) zwischen dem V0 bin mit> dem VCC Pin und dem GND Pin ist bei 1,5V.
Ändert sich diese Spannung, wenn du am Poti drehst?
Hi
>Die Spannung (ist ja was zwischen zwei Punkten) zwischen dem V0 bin mit>dem VCC Pin und dem GND Pin ist bei 1,5V.>(Also die Elektropotentialdifferenz)
Du solltest deinen Text vor dem Abschicken noch mal durchlesen.
Das, was allgemein als 'Kontrastspannung' bezeichnet wird, ist die
Stromversorgung des eigentlichen Displays. Daraus werden die
verschiedenen Spannungen für die Ansteuerung der Zeilen und Spalten
erzeugt.
Bei deinem Display werden für VDD-V0 3V angegeben. Das wären also, gegen
GND gemessen, 0,3V an V0.
MfG Spess
>Ändert sich diese Spannung, wenn du am Poti drehst?
JA
>>Die Spannung (ist ja was zwischen zwei Punkten) zwischen dem V0 bin mit>>dem VCC Pin und dem GND Pin ist bei 1,5V.>>(Also die Elektropotentialdifferenz)>Du solltest deinen Text vor dem Abschicken noch mal durchlesen.
Sorry, ich meinte dass wenn ich V0 mit VCC die Spannung messe, dass da
1,5 V sind, bzw. V0 und GND.
>Das, was allgemein als 'Kontrastspannung' bezeichnet wird, ist die>Stromversorgung des eigentlichen Displays. Daraus werden die>verschiedenen Spannungen für die Ansteuerung der Zeilen und Spalten>erzeugt.
Danke für die Erklärung, ich bin noch Anfänger... :)
>Bei deinem Display werden für VDD-V0 3V angegeben. Das wären also, gegen>GND gemessen, 0,3V an V0.
Ja, aber wenn ich an meinem Poti drehe, während der Strom fließt, kommt
es kein einziges Mal zu einem Aufleuchten dieser legendären Balken...
K. R. schrieb:> Ja, aber wenn ich an meinem Poti drehe, während der Strom fließt, kommt> es kein einziges Mal zu einem Aufleuchten dieser legendären Balken...
Dann ist das LCD wahrscheinlich defekt. Falls du Ersatz kaufst, nimm
besser ein 5V-Modell.
Hi
>Dann ist das LCD wahrscheinlich defekt. Falls du Ersatz kaufst, nimm>besser ein 5V-Modell.
Der Controller (ST7066) des Displays verträgt bis 5,5V. Ich würde es
erst mal mit einem passenden Poti versuchen.
MfG Spess
ST7066 or equivalent...einer meiner Lieblingssätze bei LCDs...versuch an
ein geeignetes Poti ran zu kommen! An meinem LCD war es so, dass die
ungenutzten Datenpins gegen GND geschaltet werden mussten, bei ein paar
anderen müssen sie gegen HIGH geschaltet werden! Da es sich um ein
Sparkfun-Teil handelt sollte aber eigentlich in irgendeinem der
gefühlten 20K Sparkfun Foren was finden lassen!