mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik I²C-EEPROM 24AA08 von Microchip + ATMega16L


Autor: Bernhard (Gast)
Datum:

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

// I2C Bus functions
#asm
   .equ __i2c_port=0x15 ;PORTC
   .equ __sda_bit=1
   .equ __scl_bit=0
#endasm

...

PORTC=0x00;
DDRC=0x20;

...
unsigned char sec;

while(i2c_start()==0);
while(i2c_write(0b10100000)==0);  //Slaveaddr + WRITE               
while(i2c_write(0x01)==0);        //Pageaddr
while(i2c_write(0x15)==0);        //Testdatum        
i2c_stop();
                
delay_ms(1000);

while(i2c_start()==0);
while(i2c_write(0b10100000)==0);  //Slaveaddr + WRITE                   
while(i2c_write(0x01)==0);        //Pageaddr
while(i2c_start()==0);            //Start für READ
while(i2c_write(0b10100001)==0);  //Slaveaddr + READ
sec=i2c_read(0);                  //READ ohne Ack               
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

Autor: Bernhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag:

i2c_init() wird auch durchgeführt.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du Pullups auf SCL und SDA ?

Autor: Bernhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gute Frage .. ich glaub ich war von internen Ausgegangen ... danke 
erstmal das werd ich mal probieren

Autor: Bernhard (Gast)
Datum:

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

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>und benutze die I2C (nicht Two-Wire) Bus Funktion

Daran wird es gelegen haben :-)

Oliver

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.