Anschlußproblem I²C LCD an Atmega328P

Gast #6173777
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.
Angehängte Dateien:
#6173838
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
Gast #6173851
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!
Gast #6173871
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!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren