Forum: Mikrocontroller und Digitale Elektronik Anschlußproblem I²C LCD an Atmega328P


von Nino K.L. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Forengemeinde,

ich habe zwei COG-BTHQ2165 I²C LCDs (Datenblatt anbei) und versuche seit 
ein paar Tagen diese an einen Atmega328P (auf dem Breadboard) 
anzuschließen und in Betrieb zu nehmen. Das ganze läuft manchmal, 
manchmal auch nicht und ich kann in keiner Weise feststellen, wo dieser 
"Teilzeit-Fehler" liegt.

Der Code im µC ist jedenfalls korrekt. Die Breadboard-Verdrahtung muß 
grundsätzlich auch korrekt sein, denn manchmal zeigt das Display alles 
richtig an. Um Wackelkontakte zu vermeiden habe ich das Breadboard 
schonmal komplett ausgetauscht. Auch habe ich die Kontakte schon auf 
andere (gleichwertige) Plätze umgesteckt.

Der Effekt tritt für beide Displays gleichermaßen auf.

Das Board versorge ich mit 5 Volt und den VDD Pin habe ich über zwei 
N4148 Dioden angeschlossen, damit er eine niedrigere Spannung erhält. 
Gefordert sind 3,3 Volt, aber in Tabelle 3 (Seite 8) lese ich, daß bis 4 
Volt ok sind. (Richtig?) Ich habe es auch mit 3,3 V Spannungsregler auch 
schon versucht, das ändert nichts.

Nun ist mir im Datenblatt eine Kleinigkeit aufgefallen, die ich bisher 
nicht berücksichtigt hatte: Die I²C Busleitungen dürfen auch nicht mehr 
als VDD +0,5 Volt haben (Tabelle 3, Seite 8). Bisher hatte ich sie mit 
je einem 10k Widerstand zum 5V Niveau verbunden.

Meine Fragen sind nun:
- Wie seht Ihr die Versorgung von VDD über die beiden Dioden? OK oder 
Problem? (Ansonsten ist alles wie im Datenblatt angeschlossen, also auch 
mit Kondensator)
- Wie schließe ich die Busleitungen richtig an, damit die ihr passendes 
Spannungsniveau haben?

Ich danke für alle konstruktiven Inputs!
Nino.

von Karl B. (gustav)


Lesenswert?

Nino K.L. schrieb:
> zwei COG-BTHQ2165 I²C LCDs

Hi,
also zwei LCDs gleichzeitig, nicht nur eines.
Ist der code auch auf mehrere Slaves eingerichtet?

ciao
gustav

von Oliver S. (oliverso)


Lesenswert?

Nino K.L. schrieb:
> Der Code im µC ist jedenfalls korrekt.

An der Stelle habe ich aufgehört zu lesen.

Oliver

von Christian S. (roehrenvorheizer)


Lesenswert?

Hallo,


durch die beiden Dioden solltest Du mittels Widerstand zu GND einen 
nennenswerten Strom fließen lassen, damit aufgrund der geringen 
Stromaufnahme des Displays sich wirklich < 4V dort einstellen. Die 
I2C-Leitungen können mittels zweier Dioden gegen die <+4V auf dieses 
Niveau geklemmt werden, müssen aber zwischen uC und Display noch 
Widerstände von einigen kOhm bekommen.
Schlauer ist es, die Pullup-Widerstände gleich an die <4V der 
Displayversorgung anzuschließen.
Dann mittels Oszilloskop das Ack beobachten bei den beiden Displays, die 
unterschiedliche Adressen haben. Denn Dein Code im uC ist korrekt.

mfG

von Herman Kokoschka (Gast)


Lesenswert?

Es gibt EINIGE Standardfehler, die bei I2C gerne gemacht werden,
wenn das Protokoll nicht komplett verstanden wurde.

Mit welcher Taktrate arbeitest Du überhaupt?

Und mit welcher Software,
eigene I2C-Routinen oder irgendeine "Lib"?

Wenn es sporadisch klappt heisst das NOCH LANGE NICHT,
dass die Software Ok ist!

von jo mei (Gast)


Lesenswert?

Nino K.L. schrieb:
> Ich danke für alle konstruktiven Inputs!

Hier mein konstruktiver Output:

Du zeigst deinen Schaltplan und den Aufbau, dann reden wir weiter.

von HildeK (Gast)


Lesenswert?

Nino K.L. schrieb:
> Gefordert sind 3,3 Volt, aber in Tabelle 3 (Seite 8) lese ich, daß bis 4
> Volt ok sind. (Richtig?) Ich habe es auch mit 3,3 V Spannungsregler auch
> schon versucht, das ändert nichts.

Ich lese in Kapitel 5.1, dass die Logik mit 3.0V ± 5% versorgt werden 
soll.
Worauf du dich beziehst, sind die 'Absolute Maximum Ratings', Werte, die 
nie überschritten werden dürfen!
Und dann benötigst du noch 5.3V ± 0.3V für die LCD-Versorgung.
Der ansteuernde Prozessor müsste demnach auch mit 3.0V versorgt werden, 
ebenso die Pullups für den I2C.

Oliver S. schrieb:
> Nino K.L. schrieb:
>> Der Code im µC ist jedenfalls korrekt.
>
> An der Stelle habe ich aufgehört zu lesen.

LOL. Kann ich nachvollziehen!

von Einer K. (Gast)


Lesenswert?

HildeK schrieb:
> Und dann benötigst du noch 5.3V ± 0.3V für die LCD-Versorgung.
Nöö...
Laut Datenblatt ist das ein Ausgang und benötigt nur einen 
Stützkondensator.

von Peter D. (peda)


Lesenswert?

Entweder LCD und AVR mit 3V versorgen oder Pegel anpassen:
https://www.nxp.com/docs/en/application-note/AN10441.pdf

Die maximale Last der Pullups (3V / 10k = 0,3mA) beachten.

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.