PCF8591 als D/AWandler verwenden

Gast #1136540
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
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
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
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
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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.