Hallo iBot,
Zitat Zitat von iBot Beitrag anzeigen
Jetzt meine Frage:
Was genau macht die Hardware im Tiny? Hab ich den TWI-Bus richtig verstanden, dass der eigentlich nur entweder in der Luft hängt oder gegen GND zieht?
Deswegen doch auch die Pullups...
Nennt sich dann wired-OR oder wired-AND, je nachdem wie die Pegel definiert sind.

Technisch hat es den Vorteil, dass es keinen Kurzschluss auf dem Bus geben kann, wenn unterschiedliche Pegel gleichzeitig ausgegeben werden. Zudem kann man Leitungen sparen.

Der Nachteil liegt darin, dass die Buslänge die Geschwindigkeit beeinflusst.
Jede Leitung hat eine Kapazität, je länger um so grösser ist diese. Beim Sprung von 0 auf 1 wird diese Kapazität nur über den PullUp geladen, man bekommt also diese e-Funktion als Spannungsverlauf. Schneller kann man werden, indem man die PullUps oder/oder die Kapazität kleiner macht. Das wird aber schnell unwirtschaftlich.

Beim I2C wird dies z.B. beim Clock-Streching verwendet, da spart man eine Leitung. Der Master gibt den Clock aus. Kommt der Slave nicht mit, zieht er einfach den Clock gegen Masse und verhindert so den nächsten Takt. Der Master erkennt, dass er zwar den Clock auf 1 gesetzt hat, dieser aber immer noch auf 0 liegt. Somit muss der Master dann warten, bis der Clock auf 1 geht.

MfG Peter(TOO)


Eine typische Anwendung war z.B. ein Interrupt-Eingang. Jede Einheit zieht einfach die Leitung gegen Masse, dabei ist es egal wann und wie viele Einheiten angeschlossen sind. Die ISR sucht dann die erste Einheit, welche den Interrupt aktiviert hat, bedient diese und die Einheit hört auf die Leitung nach Masse zu ziehen. War es der einzige Interrupt geht dann die Leitung auch auf 1. Andernfalls stehen noch weitere Interrupts an.