mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR: TWI / I2C / 2-Leiter Interface


Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ 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

Autor: Jörg B. (manos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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).

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ 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

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ 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

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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...

;-/

Autor: Stefan Wimmer (wswbln)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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....

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.