Forum: Mikrocontroller und Digitale Elektronik i2c START direkt nach STOP ok?


von i2c twi (Gast)


Lesenswert?

nach meinen Startschwierigkeiten komme ich jetzt sehr gut voran mit 
(hardware) i2c auf dem Mega328P.

Eine Frage ist noch aufgetaucht: Wenn ich ein STOP generiere am Ende der 
Übertragung, wird ja kein Interrupt ausgelöst / das TWINT bit nicht 
gesetzt. (Siehe Datenblatt Seite 215)

Heißt das, ich kann direkt danach ein neues START generieren, und die 
Hardware wartet ggf. so lange, bis das STOP fertig ist? Oder ist das 
nicht zulässig?

also direkt hintereinander

TWCR = &B10010100 'STOP
TWCR = &B10100101 'START
(dann auf Interrupt warten)

von Oliver S. (oliverso)


Lesenswert?

TWSTO ist dein Freund, und hilft dir da weiter.

Zudem fordert die Busdefinition eine definierte Minimalzeit zwischen 
Stop und Start, tBUF. Steht im Datenblatt.

Oliver

von spess53 (Gast)


Lesenswert?

Hi

>Eine Frage ist noch aufgetaucht: Wenn ich ein STOP generiere am Ende der
>Übertragung, wird ja kein Interrupt ausgelöst / das TWINT bit nicht
>gesetzt.

Wenn du sicher sein willst, kannst TWSTO in TWCR abfragen. Das wird nach 
gesendetem STOP zurückgesetzt.

MfG Spess

von Dominik B. (odysseus1710)


Lesenswert?

i2c twi schrieb:
> Heißt das, ich kann direkt danach ein neues START generieren, und die
> Hardware wartet ggf. so lange, bis das STOP fertig ist? Oder ist das
> nicht zulässig?

Wenn du ein Start initiierst wird automatisch gewartet bist der Bus frei 
ist.

"The TWI hardware checks if the bus is available, and generates a START 
condition on the bus if it is free. However, if the bus is not free, the 
TWI waits until a STOP condition is detected, and then generates a new 
START condition to claim the bus Master status"

von i2c twi (Gast)


Lesenswert?

spess53 schrieb:
> Wenn du sicher sein willst, kannst TWSTO in TWCR abfragen. Das wird nach
> gesendetem STOP zurückgesetzt.

Ok, verstanden. Bis jetzt hab ich es immer nur gesetzt und nie gelesen.

Dominik B. schrieb:
> Wenn du ein Start initiierst wird automatisch gewartet bist der Bus frei
> ist.

Cool, da muss ich mich bei einem Bus mit nur einem Master (mein 
Mega328P) und einem Slave gar nicht drum kümmern. Das gefällt mir am 
Besten.. :-)

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.