Forum: Mikrocontroller und Digitale Elektronik PCF8591 als D/AWandler verwenden


von metallman (Gast)


Lesenswert?

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.

von Gerhard. (Gast)


Lesenswert?

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.

von metallman (Gast)


Lesenswert?

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...

von Gerhard. (Gast)


Lesenswert?

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.

von Gerhard. (Gast)


Lesenswert?

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;-)

von metallman (Gast)


Lesenswert?

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.

von peter-neu-ulm (Gast)


Angehängte Dateien:

Lesenswert?

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
Noch kein Account? Hier anmelden.