PCF8591 als D/AWandler verwenden

Gast #1136540
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.
Gast #1136552
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.
Gast #1136585
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...
Gast #1136607
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.
Gast #1136610
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;-)

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