Hallo,
ich nutze den Atmega8 und möchte per I2C-Bus / TWI einen Motortreiber
(TMC222)ansprechen.
Ich initialisiere den Bus wie folgt:
1 | #ifndef F_CPU
|
2 | #define F_CPU 16000000UL
|
3 | #endif
|
4 |
|
5 | /* I2C clock in Hz */
|
6 | #define SCL_CLOCK 100000L
|
7 |
|
8 |
|
9 | /*************************************************************************
|
10 | Initialization of the I2C bus interface. Need to be called only once
|
11 | *************************************************************************/
|
12 | void i2c_init(void)
|
13 | {
|
14 | /* initialize TWI clock: 100 kHz clock, TWPS = 0 => prescaler = 1 */
|
15 |
|
16 | TWSR = 0; /* no prescaler */
|
17 | TWBR = ((F_CPU/SCL_CLOCK)-16)/8; /* must be > 10 for stable operation */
|
Den Code habe ich im Internet gefunden.
Nach der Initialisierung liegen am SCL 0 Volt an. Und das trotz
Pull-Ups.
Kann mir da jemand schnell helfen?
Viele Grüße