Forum: Mikrocontroller und Digitale Elektronik Problem bei Ansteuerung LCD_Modul


von SinoTech (Gast)


Lesenswert?

Hi,
ich probiere mit einem ATmega8 das EA DIPS082 
(http://www.reichelt.de/LCD-Module-DIP-Anschluss/LCD-082-DIP/index.html?;ACTION=3;LA=444;GROUP=A523;GROUPID=3009;ARTICLE=53961;START=0;SORT=artnr;OFFSET=16;SID=12TsMXYn8AAAIAACpXQy0a666009ff95a11e797dd6858077931b7) 
anzusteuern. Ich bin dabei nach dieser Anleitung vorgegangen: 
http://www.mikrocontroller.net/articles/AVR-Tutorial:_LCD

Nachdem das ansteuern nicht funktioniert hat habe ich beim überprüfen 
der Verbindungen festgestellt das die Pins 4 (RS) und 5 (R/W) am Display 
einen High-Pegel haben. Ich habe das Display nochmal komplett ausgelötet 
und nur die Pins 1 (Vss) und 2 (Vdd) angeschlossen, die Pins 4 und 5 
haben aber nach wie vor High-Pegel.
Die Pins dienen doch als Input, sollten die dann nicht auf Low liegen 
wenn nichts dranhängt? Hab ich mir beim löten was zerstört? Wie gesagt 
aktuell sind lediglich Pin 1 (auf GND) und Pin 2 (auf +5V) 
angeschlossen, alle anderen Pins hängen in der Luft.

Bin für jede Hilfe dankbar.

Gruß,

Sino

von Achim M. (minifloat)


Lesenswert?

SinoTech schrieb:
> die Pins 4 und 5
> haben aber nach wie vor High-Pegel

Hochohmig? zieh die mal in deiner Testschaltung versuchsweise über 1kΩ 
mach Masse. Wenn du dann Massepotential feststellst, ist es doch ein 
Eingang.

mfg mf

von SinoTech (Gast)


Lesenswert?

Danke für die schnelle Antwort. Habe die PIN's jetzt mal über einen 10 
kΩ Widerstand auf GND gelegt (hatte keinen 1 kΩ), und Messe jetzt 
jeweils 3.27V von den Pins zu GND.

von Karl H. (kbuchegg)


Lesenswert?

10j sind zu viel.
Wenn du nichts kleiners hast, dann schalte eben 3 oder 4 Stück 10k 
Widerstände parallel.

von SinoTech (Gast)


Lesenswert?

Ich habe noch 2 x 500 Ohm Widerstände gefunden und die in Reihe 
geschaltet. Jetzt messe ich jeweils 0.07 V von den Pins zu GND.

von spess53 (Gast)


Lesenswert?

Hi

>Ich habe das Display nochmal komplett ausgelötet
>und nur die Pins 1 (Vss) und 2 (Vdd) angeschlossen, die Pins 4 und 5
>haben aber nach wie vor High-Pegel.

Das ist normal. Die Pins haben interne Pull-Up-Widerstände.

von SinoTech (Gast)


Lesenswert?

Ich bekomme es einfach nicht hin :-( ... nachdem ich das Display 
komplett aus- und nochmal eingelötet habe ist mir auch schon der zweite 
Atmel abgeraucht (beim ersten war ich mir nicht sicher woran es lag, der 
zweite arbeitete aber solange bis das Display eingelötet war, erst 
danach machten die I/O-Ports nicht mehr was sie sollten. Insofern gehe 
ich davon aus das es am Display liegt).
Anbei mal ein Schaltplan meines kleinen Aufbaus. Ich hoffe es ist 
einigermasen übersichtlich, das ganze ist nur Hobby und ich kenne mich 
mit Schaltplänen und eagle nicht sonderlich gut aus.
Mache ich was falsch? Oder liegt es wirklich am Display?

Bin dankbar für jede Hilfe.

Gruß,

Sino

von SinoTech (Gast)


Angehängte Dateien:

Lesenswert?

Schaltplan vergessen.

von Markus B. (markus_b95)


Lesenswert?

Kurze Frage, auch wenn ich (so wie ich die Pinbelegung überflogen habe) 
erst mal keinen Fehler feststellen konnte: Wie groß ist denn das Poti? 
Und kannst du Pin 2, VCC, mal direkt hinter den Regler klemmen? 
(momentan sitzt der Pin zwischen dem AVR u. der Poti-Strecke).
Weiterhin lässt man die anderen 4 Datenleitungen eines LCDs bei 
4-Bit-Ansteuerung offen (und nicht auf GND!) soweit ich weiß..Fang mit 
meiner letzten Idee an, da bin ich mir relativ sicher ^^
Hoffe ich konnte helfen, lass hören ob meine Vorschläge 'was gebracht 
haben ;)

von Peter Z. (hangloose)


Lesenswert?

Du hast aber nicht zufällig die interne 2,56V Referenzspannung 
eingeschaltet?
Das wäre dann nämlich schlecht... Aref liegt bei dir auf 5V

von Werner B. (werner-b)


Lesenswert?

Für meinen Begriff fehlen ein paar Kondesatoren.
100nF direkt am Ausgang des 7805 gegen Masse, zwischen Pin 7, 8 und 20, 
22 des Prozessor und zwischen Pin 1 und 2 des LCD.
ARef offen lassen. 5V war bei den alten AT90 nötig. So wird auf Dauer 
die interne Referenzspannungsquelle vernichtet.

Zu was soll der Pull Down an PB2 gut sein?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

SinoTech schrieb:
> Ich habe noch 2 x 500 Ohm Widerstände gefunden und die in Reihe
> geschaltet. Jetzt messe ich jeweils 0.07 V von den Pins zu GND.

Normal ist das nicht. Die HD44780 kompatiblen Kontroller sind recht 
hochohmig und sollten sich selbst mit einem 10K Widerstand bequem auf 
Masse ziehen lassen . Deine Vermutung bzgl. eines defekten Displays ist 
wahrscheinlich richtig.
Zeigt das LCD denn die bekannten schwarzen Segmente, wenn du Strom 
anlegst ?

von Jens (Gast)


Lesenswert?

Wenn ich das richtig sehe, sind die Pins des LCD auf 3 Ports am µC 
verteilt. Die Routinen im Tutorial gehen davon aus, wenn ich mich 
richtig erinnere, dass das LCD für die Ansteuerung im 4-Bit Modus 
komplett an einem Port angeschlossen ist. Ich habe Anfangs auch diesen 
Fehler gemacht und mich gewundert, dass nichts funktioniert. Das lag 
dann an der falschen Initialisierung des µC.

Ich erkenne im Schaltplan keine Notwendigkeit die Anschlüsse so wild zu 
verteilen.

Pin 5 am LCD kann wie im Tutorial auf GND.

von SinoTech (Gast)


Lesenswert?

@Markus
Die nicht genutzten I/O-Pins lässt man tatsächlich offen ... ich hätte 
schwören können ich habe gesehen das die auf GND gezogen wurden ... aber 
da hab ich mich wohl geirrt. Werde es nachher direkt mit offenen Pins 
und neuem Atmel versuchen (hab ja noch 3 hier ;-) ).


@Peter
Nein, die interne 2,56V Referenzspannung wird nicht benutzt.


@Werner
Die Kondensatoren am L7805 sind wie im Datenblatt beschrieben 
angeschlossen (jeweils 33uF an Ein- und Ausgang). Sind die restlichen 
Kondensatoren wirklich notwendig?
Interne Spannungsreferenz im Atmel wird nicht benutzt, dann sollte es 
doch egal sein wenn ich 5V am ARef Pin anliegen habe, oder?
Der PB2 Pin (Slave Select) liegt direkt auf GND (Atmel wird nur als 
Slave betrieben). Den 10K Widerstand habe ich zur Sicherheit eingebaut 
falls ich  PB2 mal aus versehen auf Output setzen sollte.


@Matthias
Jep, die schwarzen Segmente sehe ich. Habe die nicht benötigten I/O Pins 
(benutze nur den 4Bit-Modus) aber fälschlicherweise auf GND gelegt, 
vielleicht hat das zu Problemen geführt. Ich probiere es nachher nochmal 
mit offenen Pins und neuem Atmel.


@Jens
Die Software aus dem Tutorial habe ich natürlich entsprechend angepasst. 
Aber sind in dem Tutorial nicht die Anschlüsse der Datenpins vertauscht? 
Zum initialisieren des Display wird der Wert 0b00000011 in PORTD 
geschrieben um die Pins DB6 und DB7 am Display auf high zu setzen. 
Allerdings werden durch den Code doch die Pins DB4 und DB5 auf high 
gesetzt, oder? (0b00000011 setzt die beiden untersten Pins des Atmel auf 
high, also PORTD0 und PORTD1 und die wiederum sind mit DB4 und DB5 
verbunden).

Danke für alle Antworten.

Gruß,

Sino

von SinoTech (Gast)


Lesenswert?

Jens schrieb:
> Ich erkenne im Schaltplan keine Notwendigkeit die Anschlüsse so wild zu
> verteilen.

Das ganze ist eine Schaltung zum spielen und ausprobieren. Evtl. baue 
ich noch eine serielle Schnittstelle über einen MAX232 dran und an 
Port-C wollte ich mir auch nicht alle ADC Pins belegen.

von Uwe (Gast)


Lesenswert?

Was fürn Pegel ist denn an der Read Leitung. Wenn du nen Read vom LCD 
machst schaltet das LCD natürlich Seine Treiber auf Output wenn der AVR 
seine auch auf Output hat ist das nicht gut.

von Düsendieb (Gast)


Lesenswert?

Nimm doch mal diesen Schaltplan und das Hex File aus dem Programm.

http://www.mikrocontroller.net/articles/Absolute_Beginner-AVR_Steckbrettprojekte

von SinoTech (Gast)


Lesenswert?

Das Hautproblem war der Compiler (avr-gcc-4.5.3) der anscheinend den 
Stackpointer nicht initialisiert hat, möglicherweise sind aber auch bei 
dem Display die Timings etwas anders. Mit neuem Compiler und anderem 
Display funktioniert jetzt jedenfalls alles.

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.