mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ARM LPC2129 I2C Interface


Autor: Markus82 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Markus82 wrote:

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

Pullup geht andersrum.

Autor: Markus82 (Gast)
Datum:

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

Autor: Markus82 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann mir denn keiner Helfen??

Autor: Daniel Schwab (dschwab)
Datum:

Bewertung
0 lesenswert
nicht 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)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.