Forum: Mikrocontroller und Digitale Elektronik MCP23017 Unterschiedliche Spannungen


von allgemein (Gast)


Lesenswert?

Hallo,

Ich möchte mit MCP23017 Status von 8 Taster auslesen. ich habe 2 
Stromkreise 3.3V und 5V.

1) Darf ich MCP23017 mit der Spannng 3.3V betreiben (VSS/RESET), aber 
als Prüfung ob Taster aktiviert ist 5V vom den anderen Stromkreis an die 
GP Ports anlegen?

2) Oder besser MCP23017 mit der Spannung 5V betreiben, 5V geht durch die 
Taster an GB Ports? Man muss aber beachten, dass MCP23017 als Slave 
Befehle von einem anderen Gerät (STM32F103 - I2C Kommunikation), der 
wieder nur 3.3V betrieben werden kann. Geht die I2C 3.3V <-> 5.5V 
Kommunikation?

Bin leider nicht so erfahren im Lesen von Datenblätter. Gibt es eine 
gute Einführung um alle Begriffe zu verstehen?

Danke im Vorraus.

von fop (Gast)


Lesenswert?

Hallo,
die Angaben, die Du suchst sind meist in einer Tabelle im Datenblatt. 
Dabei muss man zwischen
- "Absolut Maximum Ratings" : Sachen, die das Bauteil überlebt, ohne 
Rücksicht darauf, was es währenddessen tut oder was man machen muss, 
damit es sich wieder wie beschrieben verhält.
- "Operating Conditions" : Das Bauteil funktioniert wie beschrieben.
unterscheiden.
Wir suchen also nach Eingangspegel für Low und High....
Low 0...0,2*VDD
High 0,8*VDD...VDD
Die Adresseingänge für I2C spielen ja gerade keine Rolle, da die 
vermutlich auf feste Pegel gelegt werden.
Beim Takt, gibt es noch eine Kleinigkeit in der Tabelle : bei 3,3 V ist 
nicht der volle Takt möglich, sondern nur 400 kHz.

Also mit 5V betreiben und 3,3 V Signale auswerten : sogar ohne 
worst-case-Betrachtung der Toleranzen kommt das Eingangssignal nicht 
über die 4 Volt, die für eine sichere Erkennung des High-Pegels 
gefordert werden.

Mit 3,3 V betreiben und 5 V Signale direkt auswerten : geht auch nicht, 
weil Maximalwert für High ist VDD.

Mit 3,3 V betreiben, Pullups nach 3,3 V an den Eingängen und Dioden von 
Eingang nach Signal (mit Anode zum Eingang hin) : geht auch nicht, da 
selbst wenn Signal bis 0 Volt runter geht für Low, über die Diode so ca. 
0,7 Volt am Eingangspin übrig bleiben. Und das ist mehr als die 0,66 
Volt, die ein Low maximal haben sollte.

Mit 3,3 V betreiben, Pullups nach 3,3 Volt und Open-Collector-Ausgänge 
eines vorgeschalteten ICs kann funktionieren.

Mit 5 V betreiben, Pegelwandlung auf I2C Seite : nicht ganz so einfach, 
weil die I2C Signale bidirektional sind. Es gibt da eine Schaltung mit 
Transistoren, die ich jetzt nicht im Kopf habe. Vorteil wäre, dass nur 2 
Signale angepasst werden müssen und das IC den vollen Takt könnte (wenn 
die Transistoren hinterher kommen).

von Leo C. (rapid)


Lesenswert?

Die I2C-Pins des STM32F103 sind 5V-tolerant. Du kannst also den MCP23017 
mit 5V betreiben, und die I2C-Pullups auf 5V legen. Vorausgesetzt, alle 
anderen Slaves an dem Bus werden ebenfalls mit 5V betrieben oder es ist 
nur der MCP23017 angeschlossen.

von TorbenK (Gast)


Lesenswert?

allgemein schrieb:
> 1) Darf ich MCP23017 mit der Spannng 3.3V betreiben (VSS/RESET), aber
> als Prüfung ob Taster aktiviert ist 5V vom den anderen Stromkreis an die
> GP Ports anlegen?

Nicht direkt. Aber mit einem Spannungsteiler, der die 5V auf 3.3V 
transformiert, gehts problemlos.

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.