Forum: Mikrocontroller und Digitale Elektronik ARM LPC2129 I2C Interface


von Markus82 (Gast)


Lesenswert?

Hallo leute,

ich habe ein Problem mit meinem ARM LPC2129 Prozessor.
Ich möchte bei diesem über I2C daten ausgeben.
Zum Testen hab ich die Pins von SDA und SCL mit einem Pull-Up Widerstand 
nach Vss gezogen.
Wenn ich jetzt mein Programm starte, dann "wackelt" es kurz an meinen 
Pins aber es kommen keine Daten raus.
Nach meinem Stand müsste ja wenigstens die Start Bed. kommen und dann 
die Adresse?!?

Hier ist mein kleiner Code:

PINSEL0 = 0x00000050;  //I2C Port freigeben

I2SCLL = 200;  //Pclk einstellen
I2SCLH = 200

I2CONCLR = 0xFF;  //I2C Conf. reset
I2CONSET = 0x60;  //I2C Start, Enable

I2DAT = 0xAA;  //Slave Adresse ausgeben

So müsste es laut Datenblatt funkionieren, macht es aber nich :-(
Könnt ihr mir vielleicht ein paar Tips geben was ich falsch mache!?!

MFG
Markus

von Andreas K. (a-k)


Lesenswert?

Markus82 wrote:

> Zum Testen hab ich die Pins von SDA und SCL mit einem Pull-Up Widerstand
> nach Vss gezogen.

Pullup geht andersrum.

von Markus82 (Gast)


Lesenswert?

Vielleicht hab ich mich falsch ausgedrückt, ich meine Pull-Up Widerstand 
nach Betriebsspannung (+5V)

von Markus82 (Gast)


Lesenswert?

Kann mir denn keiner Helfen??

von Daniel S. (dschwab)


Lesenswert?

Hi

Diese Konfiguration läuft in einem LPC2124. Kann dir evtl. helfen.


// Port 0.2  =  SCL  (Hardwaregesteuert)
// Port 0.3  =  SDA  (Hardwaregesteuert)
PINSEL0  = PINSEL0 | 0x00000050;

// Register Reseten
I2CONCLR = AAC | SIC | STAC | I2ENC;

// Korrekte Einstellungen vornehmen
I2CONSET = I2CONSET | I2EN;    // Interrupt Flag Einschalten für I2C Bus

// Zaehler für High Zeit Periode
I2SCLL = 0x0056;           // Bit Frequenz = fCLK = (I2SCLH + I2SCLL)

// Zaehler für low Zeit Periode
I2SCLH = 0x0056;           // Bit Frequenz = fCLK = (I2SCLH + I2SCLL)

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.