Hallo, in den Datenblättern der ATMEL AVR Reihe findet sich eine Beispielschaltung zur Kopplung mehrerer "devices" (was ich für diese Betrachtung als mindestens zwei Microcontroller verstehen möchte) mittels TWI (bzw. der bei Drucklegung gerade aktuellen Abkürzung für diesen 2-Draht-Bus). Dort werden die Module direkt miteinander verbunden und die Verbindungsleitungen mit Pullup-Widerständen versehen. Soweit, so gut. Funktioniert auch. Aber: Selbst wenn man davon ausgeht, durch umfangreiche Tests der Software sichergestellt zu haben, dass niemals zwei Ausgänge zur gleichen Zeit auf einander treffen, gibt es dafür 1. im Regelfall keinen Beweis und 2. immer noch Murphy. Daraus ergibt sich die Frage, ob die AVR solche Belastungen (also ein Ausgang liefert HIGH, sein Gegenüber-Ausgang gleichzeitig LOW) im Ernstfall auch ohne Serienwiderstände klaglos wegstecken können? Oder ist das AVR-Datenblatt hier einfach nur etwas lässig geschrieben? Die elektrischen Spezifikationen sind da eigentlich eindeutig (max. 40 mA pro Pin, bevor es qualmt) und widersprechen IMHO der Beispielschaltung. Wie handhabt Ihr das? TWI mit Schutzwiderständen in den Leitungen oder ohne? Ab welcher Datenrate können ca. 1kOhm Serienwiderstände überhaupt zu Problemen führen? Grüsse Olaf
@ Olaf (Gast) >mittels TWI (bzw. der bei Drucklegung gerade aktuellen Abkürzung für diesen 2-Draht-Bus). Dort werden die Module direkt miteinander verbunden >AVR solche Belastungen (also ein Ausgang liefert HIGH, sein >Gegenüber-Ausgang gleichzeitig LOW) im Ernstfall auch ohne Kann nicht passieren, da TWI mit Open Collector Ausgängen arbeitet Ausgangsstufen Logik-ICs. >Wie handhabt Ihr das? TWI mit Schutzwiderständen in den Leitungen oder >ohne? Ohne. > Ab welcher Datenrate können ca. 1kOhm Serienwiderstände überhaupt >zu Problemen führen? tau = R*C MFg Falk
Wie Falk Brunner schon schrieb sind die TWI-Anschlüsse Open Collector. Aus diesem Grund sind auch die Pull-Up Widerstände drin da nur diese die Leitung auf High ziehen. Die Ausgänge ziehen den Pegel dann auf Low runter wodurch es zu keinen Problemen elektrischer Art kommen kann (nur logistisch).
Hi Falk, danke, dass Du mich in die richtige Richtung geschubst hast! Daraufhin habe ich im Datenblatt auch die passende Stelle gefunden: "When the TWEN bit in TWCR is set (one) to enable the 2-wire Serial Interface, pin PD0 is disconnected from the port and becomes the Serial Clock I/O pin for the 2-wire Serial Interface. In this mode, there is a spike filter on the pin to suppress spikes shorter than 50 ns on the input signal, and the pin is driven by an open drain driver with slew-rate limitation." Sorry, hatte ich glatt überlesen. Also sind Serienwiderstände generell Pflicht, nur bei TWI geht es - wegen der dann umgeschalteten Hardware - ohne. Womit ein gewisses Restrisiko bleibt, falls die Software irrtümlich die TWI-Pins als normale Ausgänge schaltet oder sich die Chips durch äußere Einflüsse ins Nirwana verabschieden (z.B. Einstrahlprobleme). Danke für die Formel. Wie leicht sich manche "Probleme" doch in Luft auflösen. ;-) Grüsse Olaf
@ Olaf (Gast) >Also sind Serienwiderstände generell Pflicht Nein, keineswegs. Warum? >Womit ein gewisses Restrisiko bleibt, falls die Software irrtümlich die >TWI-Pins als normale Ausgänge schaltet oder sich die Chips durch äußere >Einflüsse ins Nirwana verabschieden (z.B. Einstrahlprobleme). Naja, und morgen fällt der Mond vom Himmel. MfG Falk
Hi Falk, >Nein, keineswegs. Warum? Nun, wenn zwei AVR direkt über andere (non-TWI) Portpins kommunizieren, kann doch recht leicht der Fall eintreten, dass ein Pin VCC und der andere GND liefert. Oder blicke ich hier noch etwas nicht? >Naja, und morgen fällt der Mond vom Himmel. Nun, wie wahrscheinlich das Einstrahlproblem ist, kann ich nicht einschätzen; das ist wohl stark von der Einsatzumgebung abhängig. Aber ein Register ist schnell mal falsch gesetzt. Grüsse Olaf
@ Olaf (Gast) >Nun, wenn zwei AVR direkt über andere (non-TWI) Portpins kommunizieren, >kann doch recht leicht der Fall eintreten, dass ein Pin VCC und der >andere GND liefert. Oder blicke ich hier noch etwas nicht? Ja, und zwar dass im Normalfall ein Programm ordentlich getestet wird. Damit sind solche Hardwarefehler durch Programmierfehler sehr selten, bzw. sie sollten beim sorgfältigen Testen auffallen. Schau dir die diversen Schaltungen an, sind dort überall solche Panikwidertände drin? Nein. >einschätzen; das ist wohl stark von der Einsatzumgebung abhängig. Aber >ein Register ist schnell mal falsch gesetzt. Das ist ein Programmierfehler, der meistens beim Debuggen entdeckt wird. MFG Falk
Hi Falk, okay, jetzt reden wir nur noch über Wahrscheinlichkeiten, Risikobereitschaft und Entwicklungsprozesse, wobei wir unterschiedliche Meinungen vertreten. Fakt ist, ohne Serienwiderstand könnte etwas kaputt gehen, was im idealen Entwicklungsprozess aber nicht vorkommen sollte. Danke für Deine Antworten! Grüsse Olaf
>morgen fällt der Mond vom Himmel.
Wohl eher nicht, der Mond entfernt sich permanent von der Erde, pro Jahr
etwa um einen Zentimeter! Deshalb wird ja unser Tag (Sterntag) auch
immer länger...
;-/
Olaf wrote: > okay, jetzt reden wir nur noch über Wahrscheinlichkeiten, > Risikobereitschaft und Entwicklungsprozesse, wobei wir unterschiedliche > Meinungen vertreten. Fakt ist, ohne Serienwiderstand könnte etwas > kaputt gehen,... Jetzt bin ich aber auf Deine Stromversorgungsschaltung gespannt - was da alles passieren könnte....
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.