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.
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
Nino K.L. schrieb: > Der Code im µC ist jedenfalls korrekt. An der Stelle habe ich aufgehört zu lesen. Oliver
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
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!
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.
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!
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.