Forum: Mikrocontroller und Digitale Elektronik I2C Pullups an ausgeschaltetem IC


von Guest (Gast)


Lesenswert?

Hallo,

ich habe einen STM32G031G8 
(https://www.st.com/resource/en/datasheet/stm32g031g8.pdf) auf einer 
Platine vorgesehen. Dieser ist als I2C Sklave mit einem anderen 
Mikrocontroller verbunden. Der STM32G031 ist nur in bestimmten Fällen 
mit VCC versorgt, der andere Mikrocontroller ist immer mit 3.3V 
versorgt. Kann es zu Problemen führen, wenn der STM32G031 nicht mit VCC 
versorgt wird, aber trotzdem am I2C Bus hängt, der mit 4.7k Pullups an 
3.3V hängt? Kann es sein, dass er durch die Eingangsdioden weiter mit 
Spannung versorgt wird und dadurch Schaden nimmt, oder sind die Pullups 
dafür zu hochohmig und man kann das so machen? Wie würde man es sonst 
lösen, falls das ein Problem sein sollte?

Laut Datenblatt Tabelle 18 ist das maximale Potential an einem Pin nicht 
auf VCC bezogen, sondern liegt bei 4.0V. Oder sehe ich mir da den 
falschen Teil des Datenblatts an?

Gruß

von Manfred (Gast)


Lesenswert?

Guest schrieb:
> Kann es zu Problemen führen, wenn der STM32G031 nicht mit VCC
> versorgt wird, aber trotzdem am I2C Bus hängt, der mit 4.7k Pullups an
> 3.3V hängt?

Ich hätte Bedenken, dass er den Bus blockiert.

von FS (Gast)


Lesenswert?

Vorweg: Ich kenne die STM-/ARM-Mikrocontroller nur bedingt.

Aber: Ist es denn unbedingt nötig, den STM komplett von VCC zu trennen? 
Ihn stattdessen in einen Standby-Modus zu versetzen wenn er nicht 
genutzt wird, in einer Konfiguration, die den I2C nicht negativ 
beeinflusst, ist nicht möglich?

von Olaf (Gast)


Lesenswert?

> Kann es sein, dass er durch die Eingangsdioden weiter mit
> Spannung versorgt wird und dadurch Schaden nimmt, oder sind die Pullups
> dafür zu hochohmig und man kann das so machen?

Du wirst doch wohl selber ausrechnen koennen welcher Strom dann maximal
durch die Pins fliessen kann oder?

Kaputt geht er dadurch sicher nicht, aber es kann dir passieren das
er einfach weiterlaeuft.

Olaf

von Wolfgang (Gast)


Lesenswert?

Guest schrieb:
> Kann es zu Problemen führen, wenn der STM32G031 nicht mit VCC versorgt
> wird, aber trotzdem am I2C Bus hängt, der mit 4.7k Pullups an 3.3V
> hängt?

Was sagt das Datenblatt des Herstellers dazu? Der kennt seinen Chip 
zumindest so gut, dass er dort aufführt, welche Betriebsbedingungen 
Probleme ausschließen. Alles andere ist dünnes Eis.
Wenn der STM32G031 nicht mit VCC versorgt wird, kannst du davon 
ausgehen, dass VCC=0V beträgt. In den Absolute Maximum Ratings kannst du 
nachlesen, in welchem Spannungsbereich sich dann die Signale an den 
IO-Pins, insbesondere auch denen für deinen I2C-Bus, bewegen dürfen.

von DoS (Gast)


Lesenswert?

Guest schrieb:
> 3.3V hängt? Kann es sein, dass er durch die Eingangsdioden weiter mit
> Spannung versorgt wird und dadurch Schaden nimmt, oder sind die Pullups
> dafür zu hochohmig und man kann das so machen? Wie würde man es sonst
> lösen, falls das ein Problem sein sollte?
Zwei Probleme:

-Ein Low auf Data von I2C blockiert den Bus für alle Teilnehmer.

-Die Eingangsdioden wirken beim ausgeschaltetem ST wie ein Gleichrichter 
auf VCC d.h. ein High an Clock und/oder Data lupft den Prozessor 
spannungstechnisch an. Ich schätze mal, dass der treibende Prozessor 
nicht die Leistung hat, den ST auf echte 3,3V zu heben, aber toll ist 
das nicht.
Kannst Du den I2C Dialog nicht abschalten, während der ST aus ist?
Die Pullups würde ich dann an die Versorgung vom ST hängen, der Bus ist 
ja ohnehin blockiert.

von M. K. (sylaina)


Lesenswert?

Ich würde den STM auch nur schlafen legen, sofern das geht oder aber: 
Wenn ein µC eh immer an ist könnte man den nutzen um den STM gezielt auf 
den I2C-Bus auf- und abzuschalten. Wäre IMHO die saubere Lösung. Es 
bliebe natürlich auch noch die Möglichkeit mal zu testen was ein 
abgeschalteter STM an einem I2C-Bus macht ;)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Guest schrieb:
> Kann es zu Problemen führen, wenn der STM32G031 nicht mit VCC versorgt
> wird, aber trotzdem am I2C Bus hängt, der mit 4.7k Pullups an 3.3V
> hängt?
Ja.

Olaf schrieb:
> aber es kann dir passieren das er einfach weiterlaeuft.
Das nennt sich dann: Parasitäre Versorgung über die Schutzdioden. Wenn 
man weiß wie es geht kann man das ausnutzen. Hier wird der ATtiny über 
den Pullup versorgt, an Vcc hängt nur der Pufferkondensator:
Beitrag "Re: Bosch E-Bike Antrieb Geschwindigkeitssensor"

: Bearbeitet durch Moderator
von Peter D. (peda)


Angehängte Dateien:

Lesenswert?

Guest schrieb:
> ich habe einen STM32G031G8

Lt. Datenblatt sind bis zu 3,6V an den IO-Pins erlaubt, bei VDD = 0V.
Man kann also die I2C-Pin einfach unter Spannung lassen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

Peter D. schrieb:
> Lt. Datenblatt sind bis zu 3,6V an den IO-Pins erlaubt
Du hast da die "Operating Cnditions" hergenommen. Aber dafür muss der µC 
mindestens Vcc=1,7V haben und die Fußnote 2 beachtet werden:
"For operation with voltage higher than VDD +0.3 V, the internal pull-up 
and pull-down resistors must be disabled."

Aber halb so wild: wenn man in den Maximum Ratings schaut, dann sind mit 
Vcc=0V sogar bis zu 4V am IO-Pin erlaubt... ;-)

: Bearbeitet durch Moderator
von Guest (Gast)


Lesenswert?

Lothar M. schrieb:
> Aber halb so wild: wenn man in den Maximum Ratings schaut, dann sind mit
> Vcc=0V sogar bis zu 4V am IO-Pin erlaubt... ;-)

Auf die Tabelle hatte ich mich in meinem Eingangspost bezogen. Ändert 
diese Information die Einschätzung, dass das eine blöde Idee ist, oder 
heißt das, dass ich das so machen kann?

In den Ruhezustand versetzen kann ich den STM32G031 nicht, der wird von 
einer anderen Spannungsquelle versorgt, die nicht immer präsent ist. Ich 
könnte aber auch eine Schaltung mit zwei Schottky-Dioden vorsehen, um 
ihn auch von der primären Spannungsquelle speisen zu können.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Guest schrieb:
> Ändert diese Information die Einschätzung, dass das eine blöde Idee ist
> oder heißt das, dass ich das so machen kann?
Bei der Betrachtung anhand der Maximum Ratings kann man nur sagen, dass 
der µC bei Spannungen unter 4V nicht kaputt geht. Es könnte also auch 
sein, dass bei Vcc=0V und einer Spannung von 4V am Pin zwar spürbar 
Strom in den Pin hineinfließt, der µC das aber überlebt.

Es ist also den Datenblattangaben nicht entnehmbar, ob der Pin im 
abgeschalteten Zustand hinreichend hochohmig ist und der I2C-Bus 
weiterhin funktioniert.

Bleibt also im Grunde nur: ausprobieren und hoffen, dass hinterher 
keiner dieses Verhalten ändert. Mit ein wenig Glück bekommst du ja von 
einem FAE eine Aussage/Einschätzung zu dem Thema.

: Bearbeitet durch Moderator
von Andi B. (andi_b2)


Lesenswert?

Guest schrieb:
> Lothar M. schrieb:
>> Aber halb so wild: wenn man in den Maximum Ratings schaut, dann sind mit
>> Vcc=0V sogar bis zu 4V am IO-Pin erlaubt... ;-)
>
> Auf die Tabelle hatte ich mich in meinem Eingangspost bezogen. Ändert
> diese Information die Einschätzung, dass das eine blöde Idee ist, oder
> heißt das, dass ich das so machen kann?
>

Die Idee ist nicht blöd. War sogar als Betriebsart bei I²C vorgesehen. 
Nur halten sich viele IC Hersteller nicht daran. Übrigens die Diskussion 
hatten wir doch gerade erst - 
Beitrag "I2C Gerät - VCC aus, müssen die Pullup-Widerstände auch von VCC getrennt werden?"

Zusammenfassung - eigentlich müsste es mit jedem I²C kompatiblen Chips 
problemlos funktionieren, siehe I²C Spec (ab FAST hat man es 
reingeschrieben, davor war das eh "Allgemeinwissen"). Leider wissen das 
viele Hersteller nicht bzw. beachten es nicht. Viele bauen leider auch 
an I²C Pins Standard Ableitdioden ein. Deshalb - wenn's im Datenblatt 
steht, wird's schon stimmen, wenn's nicht drinnen steht, muss man leider 
nachfragen/nachmessen. Oft gibt's in den Supportforen des Herstellers 
dazu schon Threads.

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.