Forum: Mikrocontroller und Digitale Elektronik I²C (TWI) Sicher?


von AVRli (Gast)


Lesenswert?

Hallo,

ich frage mich gerade wie "sicher" die Übertragung auf dem I²C (TWI) Bus 
ist. Ich verwende einen PCF8574 als "Porterweiterung". (ca. 30mm vom µC 
entfernt)

Bisher klappt die Übertragung wie sie soll, nur möchte ich sicher gehen 
das die Ausgänge des PCF8574 wirklich die Werte angenommen haben als sie 
sollten.

Daher die Frage, kann man sich darauf verlassen das die Ports denn immer 
die Werte annehmen die man per I²C schickt oder gibt es vlt. sogar eine 
Möglichkeit das anschließend abzufragen?

Gruß AVRli

von Oliver J. (skriptkiddy)


Lesenswert?

AVRli schrieb:
> gibt es vlt. sogar eine Möglichkeit das anschließend abzufragen?

Nen 2. PCF8574 parallel schalten. Allerding  würde nen paar Kiloohm 
dazwischen machen. Der eine gibt aus und der andere liest es ein. Sollte 
zwischen Ausgabe und Eingelesenem ne Differenz bestehen, ist irgendwas 
schiefgelaufen. Sollte aber bei 3 cm nomalerweise alles glatt gehen.

Gruß Skriptkiddy

von Detlev T. (detlevt)


Lesenswert?

Bei 3cm würde ich mir auch keine Sorgen machen, wenn das Layout O.K. 
ist. Es sollte aber eigentlich gehen, dass man den Stein anschließend 
wieder ausliest. Eine Absicherung der Übertragung mit Parität oder 
Prüfsumme gibt es allerdings nicht.

von Oliver J. (skriptkiddy)


Lesenswert?

Detlev T. schrieb:
> Es sollte aber eigentlich gehen, dass man den Stein anschließend
> wieder ausliest.

Meinst du erst reinschreiben und dann dasselbe auslesen mit ein und dem 
selben Baustein? Das geht meines Wissens nicht. Der Grund ist, wenn man 
dem PCF8574 sagt, dass man von ihm lesen möchte, gibt er den 
Parallelbuszustand zurück und nicht das was man vorher reingeschrieben 
hat.

von Detlev T. (detlevt)


Lesenswert?

@Skript-Kiddy

AVRli schrieb:
> Bisher klappt die Übertragung wie sie soll, nur möchte ich sicher gehen
> das die Ausgänge des PCF8574 wirklich die Werte angenommen haben als sie
> sollten.

Ich sehe da keinen Widerspruch, da es AVRli ja nur um die Nutzung als 
Ausgang geht. Man kann allerdings nicht feststellen, warum ein Pin 
auf low ist. Denn es macht da keinen Unterschied, ob der PCF den selbst 
runter zieht oder die externen Komponenten. Wahrscheinlich meintest du 
das, aber das betrifft halt die Verwendung als Eingang.

von Oliver J. (skriptkiddy)


Lesenswert?

Detlev T. schrieb:
> Ich sehe da keinen Widerspruch

Ich nun auch nicht mehr. Hab mal das Datenblatt studiert und siehe da 
meine Annahme war falsch und du hattest recht.

Gruß Skriptkiddy

von AVRli (Gast)


Lesenswert?

Hallo!

Danke für Eure Antworten.

Das geht wirklich!
Also setzen, anschließend zurück lesen und dann vergleichen.

Ich lese genau den Wert den ich auch gesetzt habe, das passt!

Würde einen Fehler gerne mal simulieren, glaube aber das wird so nicht 
klappen. :-)

Gruß AVRli...

von Detlev T. (detlevt)


Lesenswert?

Skript Kiddy schrieb:
> du hattest recht.

Ab und an kommt sogar das einmal vor. ;-)

AVRli schrieb:
> Würde einen Fehler gerne mal simulieren, glaube aber das wird so nicht
> klappen. :-)

Du könntest ja einen Pin (extern) auf Masse legen, der eigentlich auf 
"high" sein sollte. Damit würde man einen "Fehler" simulieren.

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
Noch kein Account? Hier anmelden.