mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik I2C will net beim LPC2138


Autor: Mark .. (mork)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

seit Tagen versuche ich schon eine I2C-Verbindung zwischen einem EEPROM 
und einem LPC2138 aufzubauen, was aber nicht klappen will. Ich benutze 
die lib von Beitrag "I2C Lib für LPC2000 Controller (ARM)" . Ich habe 
das I2C zuvor mit einem AtMega32 an der Stelle 257(0x0101) mit dem 
Zeichen '5' beschrieben. Immer wenn ich versuche das EEPROM zu 
adressieren reagiert es nicht(kein ACK). Hier ist der relevante Teil des 
Codes:
i2c_init();
  while(1) 
  {
    cout<<"warte auf tastendruck..."<<endl;
    uart0Getch();
    cout<<"Start="<<i2c_start(0xA0)<<endl;
    
    cout<<"Write(1,1)="<<i2c_write(addr,2)<<endl;//schreibt die leseadresse
    i2c_stop();
    cout<<"Start="<<i2c_start(0xA1)<<endl;//start  zum lesen 
    cout<<"lese:"<<i2c_readlast()<<endl;
    i2c_stop();  
  }
Für alle nicht C++ler: alles, was mit '<<' an 'cout' angehängt wird, 
wird entsprechend dem Datentyp formatiert und über sie Standardausgebe 
(bei mir UART0) ausgegeben. Ist also eine Art Gegenstück zu printf.

Das EEPROM wird übrigens mit 5V betrieben, laut Datenblatt werden 
0.7Vcc, also 3.5V als high erkannt. Der LPC gibt aber max. 3.3V aus. 
Kann das der Fehler sein?

MfG Mark

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Der LPC gibt aber max. 3.3V aus

Der gibt garnix aus, der zieht nur runter. I2C-üblich sind die 
Anschlüssen Open Collector und es werden externe Pullup-Widerstände 
benötigt. Und wenn die an 5V geht, sind auch die Pegel entsprechend.

Autor: Mark .. (mork)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Der gibt garnix aus, der zieht nur runter.

Stimmt, habs irgendwie vergessen, als ich den Beitrag schrieb. Was ich 
damit meinte ist dass die Pullups die Leitungen auf max 3.3V hochziehen 
können.

MfG Mark

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum 3,3V? Die LPCs verkraften auch 5V.

Autor: Mark .. (mork)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bist Du dir da wirklich sicher? Nur I2C oder alle Eingänge?

MfG Mark

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schon mal versehentlich einen Blick ins Datasheet geworfen? Die einzigen 
bei denen das Probleme gibt, sind die Pins vom ADC (Fehlmessung).

Autor: Mark .. (mork)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, ich hab schon mal einen Blick ins Datenblatt geworfen und da steht 
max: Vcc+10% .

MfG Mark

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Blick reinwerfen langt aber nicht.
Im Datenblatt steht Vi max = 5,5V. Fertig.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo steht das? Wo steht insbesondere der Terminus "Vcc" - sowas gibts da 
m.W. garnicht.

- Seite 9, die Pinliste, Fussnoten 3 und 4.
- Seite 27, Vi.

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.