Hallo, ich habe zwei AVRs an einem I2C Bus hängen, wobei meistens nur 1 AVR mit Strom versorgt wird. Das Problem ist nun dass der jeweils stromlose AVR die beiden Signalleitungen (über die internen Klemmdioden) stark nach unten zieht und dann eine Kommunikation auf dem Bus nicht mehr möglich ist. Hat jemand eine Idee wie man das Problem umgehen könnte ? Gruß und Danke Ja mann
Lösen kannst du das Problem nur, indem du entweder den AVR mit Strom versorgst, oder den AVR vom Bus abtrennst (z.B. über Mosfets: Gate an die Betriebsspannung des AVRs, Source an die Pins vom AVR, Drain an den Bus).
Hätte da noch ( eine wirklich unsaubere, unschöne ) Lösung. Die enden des I2C-Bus in Richtung 2. AVR über Mosfet-Transistoren abschließen, also Endwiderstände rein. Somit hast du ein offenes Ende des I2C. Ich hoffe ich werde nicht gleich gesteinigt ;)
Jaaaaa, DAS war die Idee die ich gesucht habe. Dank der eingebauten Diode geht das dann auch in beide Richtungen, super! Besten Dank, werde das dann mal ausprobieren, mal sehen was ich noch an MOSFETs rumliegen habe.
I2C ist ein Bussystem zwischen zwei (mehreren) ICs. SOweit gut. Diese ICs sitzen aber gewöhnlich auf derselben Platine unter derselben Spannungsversorgung. Für dezentrale µC sollte ein anderes Kommunkationskonzept her!
>Für dezentrale µC sollte ein anderes Kommunkationskonzept her!
Naja, vielleicht wenn ich Geräte über meterlange Kabel verbinde. Die
beiden Platinen sind nebeneinander auf ein Chasis geschraubt, und das
Kabel dazwischen hat keine 10 cm...
@ Ja mann (Gast) >Nein, prinzipbedingt (einer der AVRs ist ein batteriebetriebener Teil) >ist das nicht möglich. Das kann man mit dem Sleep Mode lösen, da bleibt die Betriebsspannung aktiv. MFg Falk
Wie wärs denn mit folgender Idee: Vor die Eingänge des AVR 20k Widerstände rein. Auch wenn der AVR versucht die Eingänge nach unten zu ziehen, wird es ihm nicht gelingen. Ist er dagegen an, ist der Eingangswiderstand recht hoch und somit fallen die Widerstände nicht auf. Kommt natürlich noch auf die Frequenz des Buses an, bei 100kHz sollte es aber gehen.
@Esko: Dass der I²C bidirektional ist, ist Dir aber bekannt? Wie soll der AVR mit 20K dem Master das ACK senden bzw. Daten ausgeben?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.