Hallo. Für meine Anwendung will ich einen PCF8591 benutzen. Der soll mit meinem uController über I2C kommunizieren. Problem ist, dass mein uC mit 3,3V versorgt wird und den PCF8591 möchte ich gerne mit 5V betreiben. Kann man direkt auf dem I2C Bus die Pegelwandlung machen? Prinzipiell könnte ich Notfalls den PCF auch mit 3,3V VDD und Vref versorgen. Nur weiß ich nicht ob die Performance des ICs noch gut genug ist.
Wenn die Open Drain Ausgaenge Deines uC. 5V vertragen (Datenblatt!) dann ist nichts leichter als das. Einfach die Pull-up Widerstaende des I2C Bus auf 5V legen und die Sache hat sich. Du musst nur aufpassen dass die uC pins richtig als Open Drain Ports konfiguriert sind und 5V tolerant sind. Im Prinzip sollte es auch mit 3.3V/5V gehen solange der PCF8591 3.3V als Logik "1" Pegel verkraften kann. Da der PCF Treiber eine Open Drain Ausgang hat, ist das fuer den uC auch kein Problem. Versuch es einfach. Bei einer eZ Encore Schaltung mache ich das genau so. Die IO Pins sind Eingangs und Ausgangsmaessig 5.5V tolerant weil die Ausgaenge als Open Drain konfiguriert wurde. Funktioniert also bestens.
Vielen Dank für deine Antwort. Ich hab im Datasheet von meinem uC gerade gelesen, dass die beiden I2C Pins des Controllers nicht über Vcc liegen dürfen. also ist die Restriktion 3,3 V. Wahrscheinlich werde ich das mit 3,3 V erstmal versuchen. muss eh nachher die analoge Spannung, die ich mit PCF erzeuge nochmal verstärken. Die Frage ist nun, was für Pullup Widerstände ich für die 3,3V Version nehmen muss...
Dem Datenblatt nach ist die garantierte V[HI] Spannung eines PCF8591 Eingangs gegeben als: 0.7 * VDD, ist also 3.5V. Das kann bei 5V Schwierigkeiten geben. Ich wuerde as aber trotzdem ausprobieren da 0.7Vdd einen Grenzwert darstellt der eingehalten werden muss um die Funktionstuechtigkeit des Teils vom Hersteller zu garantieren. Sonst koennte man einen I2C TRanslator wie den PCA9512AD verwenden. Eine Seite wird an 5V angeschlossen und die andere auf der 3.3V uC Seite.
Die Frage ist nun, was für Pullup Widerstände ich für die 3,3V Version nehmen muss... Versuche 2.7-3.9K Hat bei mir immer funktioniert. Du solltest aber nach Moeglichkeit die I2C Leitungen oszillographisch beobachten um die Qualitaet der Datenzuege bewerten zu koennen. Bei hoeheren I2C Clock Raten (400Khz) kann man da manchmal schauriges sehen;-)
Danke für Deine Tipps. Ich werde zuerst ausprobieren, ob und wie der PCF mit 3,3V funktioniert. Dann habe ich hier noch eine interessante Application note gefunden, wie man Pegel shiften kann nur mit zwei mosfets: http://www.nxp.com/acrobat/applicationnotes/AN10441_1.pdf Werde das nachher Notfalls auch ausprobieren.
Hoffentlich klappts mit dem Anhang, der enthält einen Pegelpuffer von 3,3 v auf 5,0V für den I2C- Bus
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.