WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Home Cockpit - Das Forum für die "Bastler" (http://www.wcm.at/forum/forumdisplay.php?f=55)
-   -   AVR Two Wire Serial (http://www.wcm.at/forum/showthread.php?t=215753)

philharmony 15.05.2007 18:16

AVR Two Wire Serial
 
Moin, neue Baustelle, so langsam wird das ganze aber.
Ich habe zu dem Two Wire Serial eine Frage, bzw eine kleine Unklarheit.
Und zwar:
Was passiert, wenn ich im Master-Receiver-Mode arbeite, und zwar zwischen dem SLA+R senden und dem ersten empfangenen Byte. Denn an dieser Stelle wechselt ja die Datenrichtung.
Der Master sendet also die Adresse des Slaves und setzt den Read-Bit.
Der Slave sendet ein Acknologement und dann?
Dann müsste doch erstmal die TWINT-Flag gesetzt werden und so lange von der Hardware gehalten werden bis der Slave dann sein erstes Byte gesehndet hat.
Muss ich dann wieder warten bis die TWINT-Flag gelöscht wird und kann dann direkt das erste Byte aus dem TWDR lesen?
Oder kommt da noch irgendwas dazwischen?

AlTonno 17.05.2007 21:05

Das TWINT im Master wird dann gesetzt, sobald der das erste Datenbyte vom Slave erhalten hat. Je nachdem, ob der Master das ACKD oder nicht, ist dann der Status-Code im Master-TWSR ($x0 oder $x8, siehe Datenblatt)

Dann kannst du das Byte aus dem DR lesen.

philharmony 18.05.2007 02:05

Und der Master empfängt dann keine weiteren Daten (sprich sendet kein Ack) bis ich das TWINT wieder gelöscht habe (was ich mache nachdem ich das TWDR ausgelesen habe), und dann kann das nächste Byte empfangen werden.
Wie macht der Master Receiver dem Slave Sender denn klar wann er wieder bereit ist?
Wird die SCL-Line so lange auf LOW gehalten bis ich TWINT lösche?
An demi Punkt hakt mein Verständnis noch etwas...


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag