Forum: Mikrocontroller und Digitale Elektronik Atmega8 TWI Initialisierungsproblem


von Sven B. (sven3411)


Lesenswert?

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

von spess53 (Gast)


Lesenswert?

Hi

>Nach der Initialisierung liegen am SCL 0 Volt an. Und das trotz
>Pull-Ups.

Du hast TWI nicht eingeschaltet: TWEN in TWCR setzen.

>Den Code habe ich im Internet gefunden.

Sch... Internet. Lies lieber das Datenblatt.

MfG Spess

von Sven B. (sven3411)


Lesenswert?

Vielen Dank!

Das hat das Problem behoben.

Viele Grüße

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.