TWI: Bekomme TWINT nicht gesetzt

Gast #179029
Lesenswert?

Hallo!

Ich bin gerade dabei mir einen I2C Bus aufzubauen, scheitere aber schon
sehr früh, da ich

TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN);
while (!(TWCR & (1<<TWINT)));

schon nach diesen 2 Zeilen in eine Endlosschleife laufe.
Irgendwie kann er das TWINT-Bit nicht setzen.

µC läuft mit 16Mhz, TWBR = 0x10

Habe zuerst an einen Hardwarefehler gedacht, nach Überprüfung bin ich
der Meinung das da eigentlich alles laufen müsste.
In dem Bus gibt es nur einen Master (µC) und 2 Slaves: 1xPCF8591 +
1xPCF8574.

Wenn ich garkeinen Bus anschließe, so müsste der µC doch zumindest
fähig sein TWINT zu setzen, dies ist auch nicht der Fall...

Habe mit dem I2C-Bus noch keine Erfahrung, würde mich sehr freuen, wenn
jemand mir nen guten Ratschlag gibt...

Mit freundlichen Grüßen
Bastian
Gast #179030
Lesenswert?

Welche Spannung haben die Signalleitungen wenn nur der uP am Bus hängt?
Ich vermute Low-Pegel, dann kann der uP die Startkondition nicht auf
den Bus bringen und damit gibts auch keinen Int. -> Pull-Ups auf die
Leitungen sollten dann die Lösung sein.

Grüße leo

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