Titelbild Mikrocontroller

16.8.1. Master Sende Modus

Im Master Sende Modus wird eine Anzahl von Bytes an einen Slave Empfänger übertragen. Um in den Master Sende Modus zu gelangen, wird eine START Bedingung ausgesendet. Das Format des darauf folgenden Adresspaketes bestimmt, ob der Master Sende- oder der Master- Empfangs Modus ausgewählt wird. Wenn ein SLA+W Adresspaket ausgegeben wird, wird der Master Sende Modus ausgewählt, wenn ein SLA+R Adresspaket ausgegeben wird, erfolgt der Eintritt in den Master Empfangs Modus. Alle Statuscodes, die nachfolgend angegeben sind, unterstellen, dass die Vorteilerbits mit 0 maskiert sind.

Master Sende Modus

Master Sende Modus


Eine START Bedingung wird gesendet, wenn folgender Wert in das TWCR geschrieben wird.
START Bedingung

START Bedingung


TWEN muss gesetzt werden, um das TWI freizugeben. TWSTA muss auf eins gesetzt werden, um eine START Bedingung zu senden und TWINT muss mit einer 1 beschrieben werden, um das TWINT Flag zu löschen. Das TWI wird dann den TWI Bus überprüfen und eine START Bedingung senden, sobald der Bus frei wird. Nach dem Senden der START Bedingung wird das TWINT Flag durch die Hardware gesetzt und der Statuscode im TWSR wird auf 08h gesetzt. Um dann den Master Sende Modus zu aktivieren, muss anschließend ein SAL+W Adresspaket gesendet werden. Dies wird gemacht, indem eine SLA+W in das TWDR geschrieben wird. Anschließend muss das TWINT Bit gelöscht werden, indem eine 1 hineingeschrieben wird, um die Übertragung fortzusetzen. Es muss also folgender Wert in das TWCR geschrieben werden, um die Übertragung fortzusetzen.

Übertragung fortsetzen

Übertragung fortsetzen



Wenn das SLA+W Adresspaket gesendet und eine Bestätigung (ACK) empfangen wurde, so wird das TWINT Flag wieder gesetzt und der Stauscode im TWSR aktualisiert. Mögliche Statuscodes im Master Modus sind 18h, 20h oder 38h. Wie bei den unterschiedlichen Statuscodes weiter verfahren wird, ist in der Tabelle angegeben.

Wenn ein SLA+W Adresspaket erfolgreich gesendet wurde, kann als nächstes ein Datenpaket gesendet werden. Das Datenbyte wird dafür in das TWDR geschrieben. Das TWDR darf nur beschrieben werden, wenn das TWINT auf High ist. Andernfalls wird der Zugriff verworfen und das Schreibkollisions- (TWWC) Bit im TWCR Register gesetzt. Nach dem Aktualisieren des TWDR muss das TWINT Bit gelöscht werden (durch Beschreiben mit einer 1) um die Übertragung fortzusetzen. Es muss also folgender Wert in das TWCR geschrieben werden.

Datenpaket senden

Datenpaket senden



Dieser Vorgang wird wiederholt, bis das letzte Datenbyte gesendet ist und die Übertragung durch eine STOPP Bedingung oder eine Wiederholte START Bedingung beendet wird. Eine STOPP Bedingung wird erzeugt, indem folgender Wert in das TWCR geschrieben wird.
STOPP Bedingung

STOPP Bedingung


Eine Wiederholte START Bedingung wird erzeugt, indem folgender Wert in das TWCR geschrieben wird.
Wiederholte START Bedingung

Wiederholte START Bedingung



Master senden Statuscodes

Master senden Statuscodes



Master senden Format

Master senden Format


Impressum