AVR TWI sendet kein START Bit

Persönliche Seite #3541192
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?

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