TWI bei Mega8 - Nicht vorhandener Teilnehmer

OP #1053580
Lesenswert?

Hallo zusammen,

ich beschäftige mich gerade mit dem Bau eines RS232 <-> I2C-Wandlers mit 
einem ATmega8. Dabei ist mir folgende Frage in den Sinn gekommen, auf 
die das Handbuch des AVRs auch keine Antwort hat (oder die ich einfach 
überlesen habe...):

Was passiert, wenn der I2C-Master einen I2C-Slave adressiert, der nicht 
am Bus hängt oder aus irgendeinem Grund nicht antwortet (Port defekt, 
Controller hängt, Störung etc.)?
Wartet der Master auf eine Antwort, sprich: Muss ein Timer dafür sorgen, 
dass nach Ablauf einer gewissen Zeitspanne ohne Antwort der Sendevorgang 
abgebrochen wird?
Oder wird durch den Takt auf der SCL-Leitung ein NAK gelesen, weil sich 
kein Teilnehmer angesprochen fühlt und die Datenleitung auf +5V bleibt?


Danke schon mal für die Antworten.


Grüße aus dem (noch halbwegs) sonnigen München,


Markus
OP #1056046
Lesenswert?

In der Spez. hab ich da leider auch nichts gefunden. Bei genauerer 
Überlegung muss es aber so sein, dass ein nicht vorhandener Teilnehmer 
erkannt wird, einfach aus dem Grund, weil die Datenleitung nicht auf 0V 
gezogen wird und die Antwort damit mit NACK übertragen wird.

Zum Thema ACK/NACK hab ich jetzt noch eine Frage:
Nach I2C ist spezifiziert, dass im Master Receiver-Mode der Empfänger 
die Übertragung vorzeitig beenden kann, in dem er bei einem Lesevorgang 
ein NACK sendet (für den Fall, dass der Sender mehr Daten übertragen 
will, als dem Empfänger speichern kann).
Hat der Sender auch die Möglichkeit, die Übertragung vorzeit zu beenden 
(Empfänger erwartet mehr Daten, als der Sender überträgt)?


Danke nochmals für eure Antworten


Viele Grüße und ein schönes Wochenende,

Markus

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren