Hi, Frage, kann man ein LC-Display samt seinem I2C-Treiber (PCF8547) mit +5V betreiben und über GND, SCL und SDA direkt mit einem ATmega verbinden, der mit +3,3V läuft?
kurze Antwort, es kommt wie immer darauf an welche I2C OC sind, der ATmega hat keine OC open collector Ausgänge. In einem solchen Fall sind Pegelwandler bi-direktional von Vorteil, die typische Mosfet Schaltung als diskrete mit BS138/170 https://upload.wikimedia.org/wikipedia/commons/thumb/4/4e/Bidirektionaler_pegelumsetzer_wikide.svg/220px-Bidirektionaler_pegelumsetzer_wikide.svg.png oder als Modul z.B. https://eckstein-shop.de/SparkFun-Logic-Level-Converter-Bi-Directiona-Shifter-Pegelwandler https://elektro.turanis.de/html/prj146/index.html
Das geht, wenn du einen I2C-Levelshifter dazwischen baust.
Joachim B. schrieb: > ... der ATmega hat keine OC open collector Ausgänge. Stimmt, der ist in CMOS aufgebaut. Dort heißen die Dinger Open Drain. Der Rest wäre eine Frage der Programmierung, wenn einem nicht Schutzdioden einen Strich durch die Rechnung machen würden. Daraus ergeben sich die unter Absolute Maximum Ratings genannten Spannunggrenzen für alle Pins (außer RESET). Guck mal im Kapitel "I/O-Ports" im Datenblatt, insbesondere die Abbildungen "I/O Pin Equivalent Schematic" und "General Digital I/O" an, die zusammen die Beschaltung an einem I/O-Pin darstellen.
Joachim B. schrieb: > kurze Antwort, es kommt wie immer darauf an welche I2C OC sind, der > ATmega hat keine OC open collector Ausgänge. Doch hat er, insbesondere im I²C Modus. Leider darf man dort aber trotzdem nicht mehr Spannung anlegen, als VCC.
eddi schrieb: > Hi, Frage, kann man ein LC-Display samt seinem I2C-Treiber (PCF8547) mit > +5V betreiben und über GND, SCL und SDA direkt mit einem ATmega > verbinden, der mit +3,3V läuft? Kommt auf den PCF8547 an. Wenn der 3.3V (mit gutem Sicherheitsabstand, also eher so was bei 3.0V) sicher als High akzeptiert, dann geht das. Die Pullups der beiden I2C-Signale dürfen einfach nur mit der 3.3V-Versorgung des ATmega verbunden sein und alles ist schick. Notfalls kann man auch noch eine wenig nachhelfen, und die Pullupspannung ein paar Zehntelvolt höher legen, indem man sie sie von den 5V ableitet und z.B. auf 3.6..3.8V begrenzt. Das ist billiger (und schneller!) als bidirektionale Pegelwandler. Aber hat schon ein Geschmäckle...
c-hater schrieb: > Kommt auf den PCF8547 an. Wenn der 3.3V (mit gutem Sicherheitsabstand, > also eher so was bei 3.0V) sicher als High akzeptiert, dann geht das. Was leider nicht der Fall ist. Vih(min) ist 0,7 * 5V = 3,5V
c-hater schrieb: > Notfalls kann man auch noch eine wenig nachhelfen, und die > Pullupspannung ein paar Zehntelvolt höher legen, indem man sie sie von > den 5V ableitet und z.B. auf 3.6..3.8V begrenzt. Das ist billiger (und > schneller!) als bidirektionale Pegelwandler. Aber hat schon ein > Geschmäckle... Oder man betreibt das Display mit 3,3V und legt eine negative Konstrastspannung im Bereich 0 bis -2V anstelle des sonst üblichen Potentiometers an. Diese kann man mit PWM und einer Dioden/Kondensator Kombination erzeugen.
Stefan ⛄ F. schrieb: > Doch hat er, insbesondere im I²C Modus. Leider darf man dort aber > trotzdem nicht mehr Spannung anlegen, als VCC. Wenn man den I2C-Bus mit 3.3V laufen lässt, liegt der High-Pegel über dem garantierten Minimalwert des PCF8574 von 3.5V (V_IH min = 0.7*VDD). Das ist kein sauberes Design, aber wenn nicht gerade irgendwelche Sicherheitstechnik dran hängt, hat man gute Chancen, dass es funktioniert. Wichtig ist dann, dass die Spannung des ATmega wirklich nicht kleiner als die 3.3V ist und die 5V wirklich nicht größer. Man kann den Bus auch mit einer etwas höheren Spannung laufen lassen, ohne die VDD+0.5V beim ATmega zu überschreiten. Dann gewinnt man etwas Störabstand.
Wolfgang schrieb: > Wenn man den I2C-Bus mit 3.3V laufen lässt, liegt der High-Pegel über > dem garantierten Minimalwert des PCF8574 von 3.5V (V_IH min = 0.7*VDD). sorry, vertan - k.A. wie sehr so ein PCF8574 im wahren Leben auf diese 3.5V beharrt oder ob es darunter auch noch geht.
Mein Gott, ein gescheiter Pegelwandler für I2C besteht aus ZWEI kleinen MOSFETs im SOT23 Gehäuse! Da muss man nicht über deren Einsparung philosophieren!
Falk B. schrieb: > Mein Gott, ein gescheiter Pegelwandler für I2C besteht aus ZWEI > kleinen MOSFETs im SOT23 Gehäuse! Da muss man nicht über deren > Einsparung philosophieren! Konkrete Schaltung? Danke
Bidos schrieb: > Konkrete Schaltung? > > Danke und warum wieder die Frage? (es wurde alles schon geschrieben, ist deine Scrolltaste oder dein Mausrad kaputt?) Beitrag "Re: ATmega mit 3.3V, daran I2C-Display mit 5V, geht das?"
Vielen Dank für die vielen und teilweise sehr ausführlichen Antworten! Stefan ⛄ F. schrieb: > Oder man betreibt das Display mit 3,3V und legt eine negative > Konstrastspannung im Bereich 0 bis -2V anstelle des sonst üblichen > Potentiometers an. Diese kann man mit PWM und einer Dioden/Kondensator > Kombination erzeugen. Ich musste schmunzeln, clevere Idee! :) Also, habe hier noch einige Exemplare BS170 zur Hand. Die müsste man ja eigentlich für die Pegelwandlung nehmen können. Deshalb habe ich aus dem Link oben einen Schaltplan zusammengestrickt mit den Anschlüssen für den BS170. Vielleicht kann noch mal jemand drübergucken, ob das so ok ist, bevor ich es zusammenbaue.
eddi schrieb: > Also, habe hier noch einige Exemplare BS170 zur Hand. Die müsste man ja > eigentlich für die Pegelwandlung nehmen können. PCA9517 macht die Pegel sauberer. Auch SO-8 paßt auf Platine besser als zwei TO-92, für die man noch Löcher bohren muß.
Jain! Aber da Du für das Display sowieso 5V brauchst, sollten ein Regler (5V -> 3.3V) und ein paar Levelshifter reichen. Letztere kannst Du natürlich auch diskret aufbauen.
Klar, wenn man 5V hat, sollte man sie nutzen.
eddi schrieb: > Also, habe hier noch einige Exemplare BS170 zur Hand. Die müsste man ja > eigentlich für die Pegelwandlung nehmen können. Nein, die Threshold Voltage ist zu hoch. Nimm einen BSS138 oder ähnlich.
Falk B. schrieb: > Nein, die Threshold Voltage ist zu hoch. Nimm einen BSS138 oder ähnlich. mag sein, aber 25 Stk. BS170 über ebay bestellt bis jetzt keine Probleme. So groß scheint die Nichtfunktionsgefahr nicht zu sein! Bevor ich zu den kleinen Modulen wechselte, denn für eine WS2812B Ansteuerung vom ESP32 war mir das Modul zu groß, wer natürlich noch I2C zu 5V benötigt und WS2812B ansteuern mag ist mit den Modulen besser bedient
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.