Forum: Mikrocontroller und Digitale Elektronik I2C will net beim LPC2138


von Mark .. (mork)


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:
1
i2c_init();
2
  while(1) 
3
  {
4
    cout<<"warte auf tastendruck..."<<endl;
5
    uart0Getch();
6
    cout<<"Start="<<i2c_start(0xA0)<<endl;
7
    
8
    cout<<"Write(1,1)="<<i2c_write(addr,2)<<endl;//schreibt die leseadresse
9
    i2c_stop();
10
    cout<<"Start="<<i2c_start(0xA1)<<endl;//start  zum lesen 
11
    cout<<"lese:"<<i2c_readlast()<<endl;
12
    i2c_stop();  
13
  }
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

von A.K. (Gast)


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.

von Mark .. (mork)


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

von A.K. (Gast)


Lesenswert?

Warum 3,3V? Die LPCs verkraften auch 5V.

von Mark .. (mork)


Lesenswert?

Bist Du dir da wirklich sicher? Nur I2C oder alle Eingänge?

MfG Mark

von A.K. (Gast)


Lesenswert?

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

von Mark .. (mork)


Lesenswert?

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

MfG Mark

von Andreas (Gast)


Lesenswert?

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

von A.K. (Gast)


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.

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.