I²C-EEPROM 24AA08 von Microchip + ATMega16L

Gast #872477
Lesenswert?

Hallo,

ich hab mal ne Frage zu diesem EEPROM.

Ich hab derzeit den EEPROM an die SDA und SCL vom Mega verbunden und 
benutze die I2C (nicht Two-Wire) Bus Funktion von Codevision.

Habe auch da die entsprechenden Ports programmiert.
1
// I2C Bus functions
2
#asm
3
   .equ __i2c_port=0x15 ;PORTC
4
   .equ __sda_bit=1
5
   .equ __scl_bit=0
6
#endasm
7

8
...
9

10
PORTC=0x00;
11
DDRC=0x20;
12

13
...
14
unsigned char sec;
15

16
while(i2c_start()==0);
17
while(i2c_write(0b10100000)==0);  //Slaveaddr + WRITE               
18
while(i2c_write(0x01)==0);        //Pageaddr
19
while(i2c_write(0x15)==0);        //Testdatum        
20
i2c_stop();
21
                
22
delay_ms(1000);
23

24
while(i2c_start()==0);
25
while(i2c_write(0b10100000)==0);  //Slaveaddr + WRITE                   
26
while(i2c_write(0x01)==0);        //Pageaddr
27
while(i2c_start()==0);            //Start für READ
28
while(i2c_write(0b10100001)==0);  //Slaveaddr + READ
29
sec=i2c_read(0);                  //READ ohne Ack               
30
i2c_stop();

Mit den whiles lese ich die Acks und Busbelegung.

Leider bekomme ich bei dieser Konfiguration nur 0xFF zurück.
Hat also wohl nicht geschrieben.

Kann es mit DDRC zusammenhängen??

Ansonsten weiß ich auch nicht so recht weiter.

MfG, Bernhard
Gast #873189
Lesenswert?

Mmh und das wars auch schon.

Ich war doch echt in meiner Blauäugigkeit davon ausgegangen, dass bei 
ATMEL mal was sinnvolles gemacht worden wäre, so vllt auch mal die 
internen Pullups auch an SDA und SCL. Klar wären sie dann nicht mehr so 
variabel in der Taktfrequenz aber sind ja sonst auch zuschaltbar.

Mal wieder ein klarer Fall von Read the f*cking manual :-)

Danke nochmals

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren