Forum: Compiler & IDEs TWI: Bekomme TWINT nicht gesetzt


von Bastian (Gast)


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

von leo9 (Gast)


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

von Mike (Gast)


Lesenswert?


von Bastian (Gast)


Lesenswert?

Es liegt wohl am JTAG, da PortC allgemein nicht wirklich zu benutzen
ist. Allerdings bekomme ich JTAG nicht mit YAAP deaktiviert...

Gruß Bastian
(Allen ein frohes neues Jahr!)

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.