Forum: Mikrocontroller und Digitale Elektronik AVR TWI sendet kein START Bit


von Hannes E. (k1ngarthur) Benutzerseite


Lesenswert?

Hallo,

ich versuche jetzt schon länger den TWI an meinem ATmega168 zum laufen 
zu bringen. Am TWI hängt ein PCA9540B (I²C Multiplexer).
Der Controller hängt in der Schleife zur Abfrage, ob ein Start-Bit 
gesendet wurde. Ein Oszi bestätigt, dass nichts gesendet wird. An SDA 
und SCL hängen jeweils 1,8k Widerstände auf 3,4V VCC.
1
F_CPU = 14745600;
2
3
DDRB |= (1<<PB2);
4
PORTB |= (1<<PB2);
5
6
// I2C-TEST
7
TWSR = 0;
8
TWBR = 0xff;
9
10
// send START condition
11
TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN);
12
13
// wait until transmission completed
14
while(!(TWCR & (1<<TWINT)));
15
16
PORTB &= ~(1<<PB2);
17
18
while(1);

Habs schon mit verschiedenen Werten für TWBR ausprobiert. Im Beispiel 
sind es nach meiner Rechnung ca.28 kHz. Habs aber auch schon mit knapp 
100kHz versucht (wäre dann TWBR = 0x42);

Wenn ich den PCA9540B raus nehme funktioniert der Code.

Vielleicht jemand eine Idee warum das nicht funktioniert?

: Bearbeitet durch User
von Sascha W. (sascha-w)


Lesenswert?

Hallo,

Hannes E. schrieb:
> Ein Oszi bestätigt, dass nichts gesendet wird.
auf welchem Pegel liegen den die beiden Leitungen?
Startbit heißt hier ja nur, das die beiden Leitungen mit einer gewissen 
Verzögerung auf L-Pegel gehen.


Sascha

von Hannes E. (k1ngarthur) Benutzerseite


Lesenswert?

Sorry für die späte Rückmeldung hatte gerade was anderes um die Ohren.
Die Pegel liegen konstant auf HIGH.
Keiner der beiden Pegel geht auf LOW.

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.