Telko schrieb:> warum wird der MPU nicht durch den> 5V-Spannungspegel vom Ardunio beschädigt?
Ohne den das gelesen zu haben.....
Wenn die Pullups gegen 3,3V gezogen werden, dann kommen nie 5V auf die
Leitung.
Aber: die 3,3V reichen nur knapp über die Schaltschwelle eines 5V AVR.
Also, für hohe Buslast, oder/und hohe Frequenzen ist das nix.
Warum sollten SCL oder SDA auf 5V gehen? I2C Signale sind Open-Collector
Signale. Das High entsteht rein durch die Pullups. Binde ich diese an
3,3V, z.B. die Versorgung des Sensors, kommen auch nicht mehr als 3,3V
vor. Die Frage ist dann nur, ob der 5V Chip die 3,3V als High erkennt.
Auch wenn Erbsenzähler gern auf das Datenblatt verweisen, in der Praxis
reicht das.
Benutze ich die internen Pullups des 5V Prozessors, dann sind die
relativ hochohmig. Sie schaffen es daher nicht, gegen die Substratdioden
der MPU die Signale signifikant über 3,3V zu ziehen. Je nach Chip können
die 5mA bis 20mA vertragen. Bei 30k und (5-3,3)V fließt da nicht
wirklich viel.
MfG Klaus
Sehe gerade, ein Erbsenzähler ist noch wach. Ein MPU ist keine hohe
Buslast und selbst 400kHz ist fast noch Gleichstrom.
Klaus schrieb:> Warum sollten SCL oder SDA auf 5V gehen? I2C Signale sind Open-Collector> Signale. Das High entsteht rein durch die Pullups. Binde ich diese an> 3,3V, z.B. die Versorgung des Sensors, kommen auch nicht mehr als 3,3V> vor. Die Frage ist dann nur, ob der 5V Chip die 3,3V als High erkennt.> Auch wenn Erbsenzähler gern auf das Datenblatt verweisen, in der Praxis> reicht das.
Wenn ich das richtig verstanden habe, dann liefert das Arduino Board
überhaupt nicht automatische die 5V-Bus-Versorgungsspannung!?
Jetzt muss ich nachfragen :-) nehme ich jetzt zum Beispiel einen
MPU(http://www.sainsmart.com/zen/documents/20-011-926/MPU-6050/GY521mpu-6050/MPU6050-V1-SCH.jpg)
+
BMP(http://www.haoyuelectronics.com/Attachment/GY-65/GY-65-SCH.jpg)(Beide
liefern die Versorgungsspannung für den I2C Bus) dann fließt dort ein
Ausgleichstrom, zwischen beiden Spannungsquellen (falls sie es
vertragen)?
Klaus schrieb:> Auch wenn Erbsenzähler gern auf das Datenblatt verweisen, in der Praxis> reicht das.
Richtig so. Erbsenzähler. Datenblätter sind für Pussies...
Furane beim Grillen? Professorengeschwätz! Die Wurst hat immer schon
geschmeckt.
Telko schrieb:> Wenn ich das richtig verstanden habe, dann liefert das Arduino Board> überhaupt nicht automatische die 5V-Bus-Versorgungsspannung!?
Einige 5V Arduino Boards haben 5V Pullups.
Damit grillst du deinen 3,3V Sklaven.(vermutlich/vielleicht)
Tipp:
Pegelwandler sind nicht ohne Grund erfunden worden.
Du hast 3 Möglichkeiten/Chancen/Risiken:
1. Es tuts
2. Ein Slave(oder beide) werden gegrillt
3. Von sporadischen Datenfehlern bis zum totalem Versagen
Klaus schrieb:> Ein MPU ist keine hohe> Buslast
Jetzt sinds schon 3 auf dem Bus.
Das I2C Pegelwandlungkonzept nach Philips funktioniert einwandrei und
braucht nur zwei billige MOSFETS und zwei extra Pullup Widerstände.
Damit kann man ohne irgendwelche Nachteile verschiedene
Betriebspannungen miteinander anpassen. Warum immer alle diese
grenzwertigen Risiken eingehen? Schaltungen nach professionellen
Gesichtspunkten konzipiert geben meist weniger Nackenschläge aus.
Hier ist das ganz gut beschrieben:
https://www.adafruit.com/datasheets/an97055.pdfhttp://playground.arduino.cc/Main/I2CBi-directionalLevelShifter
Ich verwende diese Schaltung in meinen Projekten oft und es
funktioniert absolut einwandfrei.
BSS138 sind gut geeignet.
Mfg,
Gerhard
Nobody schrieb:> Einige 5V Arduino Boards haben 5V Pullups.> Damit grillst du deinen 3,3V Sklaven.(vermutlich/vielleicht)
"Vermutlich" und "vielleicht" sind keine guten Ratgeber. "Manchmal" wäre
allenfalls geeignet, um ein Fehlerbild zu beschreiben ;-)
Dir scheint überhaupt nicht ganz klar zu sein, wie "grillen"
funktioniert - jedenfalls bestimmt nicht, indem du einen 3V3-Slave an
einen 5V I2C-Bus hängst. Der Eingang hat u.a. seine Eingangsschutzdiode
nach +3.3V, d.h. so ab 3.8V fängt die an zu leiten. Bei einem Pull-up
von 2,2kΩ nach +5V fließen dann knapp 600µA.
Und jetzt sag mir mal, welche Diode bei 600µA die Empfindung hat, auf
dem Grill zu liegen.
Wolfgang schrieb:> Und jetzt sag mir mal, welche Diode bei 600µA die Empfindung hat, auf> dem Grill zu liegen.
Richtig. Und ich würde gerne mal eine Messung sehen, bei der ein 5V CMOS
Eingang 3,3V nicht als high erkennt.
Und da es hier ziemlich offensichtlich nicht um das Design eines
Massenproduktes geht ...
MfG Klaus
Klaus schrieb:> Warum sollten SCL oder SDA auf 5V gehen? I2C Signale sind> Open-Collector> Signale. Das High entsteht rein durch die Pullups. Binde ich diese an> 3,3V, z.B. die Versorgung des Sensors, kommen auch nicht mehr als 3,3V> vor. Die Frage ist dann nur, ob der 5V Chip die 3,3V als High erkennt.> Auch wenn Erbsenzähler gern auf das Datenblatt verweisen, in der Praxis> reicht das.
Na, dann lesen wir mal das hier:
https://de.wikipedia.org/wiki/RC-Glied
Und dann berechnen wir mal, wass eine Schaltschwelle von 3,2V bei einer
Versorgung von 3,3V eigentlich für die Schaltverzögerung bedeutet, die
wegen der parasitären Kapazitäten im Bus auftritt.
Und dann denken wir mal drüber nach, was das für das Timing bedeutet,
und kucken uns mal die Setup-und Holdzeiten im Datenblatt der
beteiligten Busteilnehmer an.
Weiteren interessanten Lesestoff könnte man unter dem Suchbegriff
"Störabstand" finden. Da könnte man sich beispielsweise überlegen, was
es für die Zuverlässigkeit bedeuten könnte, wenn man nur 100mV
einkoppeln muss, um das ganze System in den Limbus zu befördern :-)
Nobody schrieb:> Telko schrieb:>> warum wird der MPU nicht durch den>> 5V-Spannungspegel vom Ardunio beschädigt?>> Ohne den das gelesen zu haben.....>> Wenn die Pullups gegen 3,3V gezogen werden, dann kommen nie 5V auf die> Leitung.> Aber: die 3,3V reichen nur knapp über die Schaltschwelle eines 5V AVR.>> Also, für hohe Buslast, oder/und hohe Frequenzen ist das nix.AVR Datenblatt sagt 0,7*Vcc, das wären in dem Fall 3,5V. Ist also reines
Glück wenn die Bits auf dem Bus richtig erkannt werden.
Hallo,
ganz praktisch schalten die AVR mit etwas Offset bei Ub/2, also bei ca.
2,5V wie es bei CMOS so üblich ist. Ganz praktisch waren meine AVr
bisher mit den H-Pegeln von 3,3V-Quellen immer zufrieden. Auch bei SPI
von SD-Card mit maximalem SPI-Clock.
Solange es also die übliche Hobby-Bastelei ist, wo nicht das Leben von
abhängt, sehe die Probleme da nicht.
Das heißt nicht, daß das Datenblatt lügt, man kann sich bei Atmel nicht
beschweren, wenn es mal nicht klappt. Bei Atmel muß es aber über den
kompletten Temperatir-/Takt- und Spannungsbereich immer klaüüen. Deshalb
die 0,7 * Vcc
Gruß aus Berlin
Michael
Sascha schrieb:> AVR Datenblatt sagt 0,7*Vcc, das wären in dem Fall 3,5V. Ist also reines> Glück wenn die Bits auf dem Bus richtig erkannt werden.Telko schrieb:> wurde geschrieben "Based on what I have read online and what I saw on my> tests, the 3.3V SDA / SCL lines of the IMU work fine connected directly> to the corresponding Arduino 5V I2C pins.
@Telko
Da muß der, der den Text verfasst hat, immer Glück gehabt haben (ne
Hasenpfote in der Tasche?). Aber möglicherweise hast du als Bastler ja
auch soviel Glück (immer schön auf Holz klopfen). Bei Zweiflern wie
Sascha wird das natürlich nichts nützen.
nothing for ungod
MfG Klaus
Wer Schaltungen auf "Glück" aufbaut und dieses dann als den "Wahren
Jakob" weiter empfiehlt, gehört geteert und gefedert.
Michael U. schrieb:> Solange es also die übliche Hobby-Bastelei ist, wo nicht das Leben von> abhängt, sehe die Probleme da nicht
Der Arme Hobbybastler....
Liest die Glücksempfehlung und die Schaltung versagt.
Frustration und Hobbyaufgabe....
Was ein Schwachsinn.
Die Zusatzkosten für einen Levelschifter bringen einen wahrlich nicht
um.
Also für nen BMP180 hab ich letztens den 1 BJT Minimallevelshifter
gebaut, der ist ja peinlich einfach.
Und warum soll man auf gutmütiges Verhalten hoffen wenn man es ganz
einfach erzwingen kann. Das ist Elektronik hier und nicht gewaltfreies
Töpfern mit Sieglinde.
Nobody schrieb:> Liest die Glücksempfehlung und die Schaltung versagt.> Frustration und Hobbyaufgabe....>> Was ein Schwachsinn.> Die Zusatzkosten für einen Levelschifter bringen einen wahrlich nicht> um.Sascha schrieb:> Also für nen BMP180 hab ich letztens den 1 BJT Minimallevelshifter> gebaut, der ist ja peinlich einfach.>> Und warum soll man auf gutmütiges Verhalten hoffen wenn man es ganz> einfach erzwingen kann. Das ist Elektronik hier und nicht gewaltfreies> Töpfern mit Sieglinde.
Volle Zustimmung euch beiden.
Dazu kommt, dass man nicht darauf vertrauen sollte, dass die
Schutzdioden des Slaves die 5V auf 3.3V runterbringen.
Was ist denn, wenn das 3.3V Supply nicht niederohmig ist (disabled, oder
abgestöpselt)?
Dann liegen am Slave 5V an, die werden auf die 3.3V Rail weitergeleitet
und durch die 2 parallelen 2.2K können dann auch bis zu 4.5mA fließen.
Als harmlos würde ich das nicht bezeichnen.
Ich habe schon mehrfach die Erfahrung machen müssen (mit Schaltungen
welche nicht von mir entwickelt wurden ;-)), dass Ströme über die
internen Schutzdioden Funktionen eines µC beeinträchtigen können. Und
zwar in ganz anderen Peripherieteilen. Von "falschen" Meßwerten vom ADC
bis zu sporadischen UART Bitfehlern. Nur so als Hinweis, dass zwar fast
überall Schutzdioden drinnen sind, aber diese niemals im Normalbetrieb
zum Leiten gebracht werden sollten. Außer unwissende Bastler und
Masochisten macht das keiner.
I²C Schutzdioden - gerade da dürften im IC diese NICHT drinnen sein.
Zumindest nicht die primitive "Diode auf VCC" Variante. Eine I²C
Anforderung ist nämlich auch, dass ein nichtversorgter Busteilnehmer den
Bus nicht stören darf. Also wenn der Hersteller seine Hausaufgaben
gemacht hat, dann ist an den I²C Pins KEINE simple Diode gegen VCC. Eher
irgendwas was bei >5V leitend wird. Zugegeben, dies beachtet nicht jeder
Möchtegern-µC Hersteller und schreibt trotzdem I²C rein.
Andi B. schrieb:> Ich habe schon mehrfach die Erfahrung machen müssen (mit Schaltungen> welche nicht von mir entwickelt wurden ;-)), dass Ströme über die> internen Schutzdioden Funktionen eines µC beeinträchtigen können.
Es macht sicher einen Unterschied, ob man da 100µA drüber schickt oder
versucht, eine Schaltung hinten rum mit 100mA zu versorgen.
Selbst Atmel nutzt die Schutzdioden als stromdurchflossenes Bauelement
und hat offensichtlich keine Sorgen, dass sich der µC deswegen
ungebührlich benimmt.
Guck dir mal die App-Note AVR182 an.
Wolfgang schrieb:> Selbst Atmel nutzt die Schutzdioden als stromdurchflossenes
Das mag bei den recht robusten AVRs gehen.
Aber bei vielen ARMen geht da deutlich weniger.
Was solls...
Man schaut sich das Datenblatt des I2C Partners an!
Steht da 5V Tolerant drin, ist das Thema sowieso abgehakt.
Und steht es da nicht drin, dann gilt der alte Spruch:
> Wenn es dem Esel zu gut geht,> dann geht er aufs Eis.
Oder er investiert in Levelshifter.
So und damit ist hier auch gut für mich....
Ich habe meinen Part zum Glaubenskrieg beigetragen, mehr kann ich nicht
tun.
Jeder muss seine eigenen Entscheidungen selber treffen.