hallo, ich finde den fehler nicht warum ich mittels i2c das eeprom 24c16 nicht lesen und beschreiben kann. hat jemand eine Idee?? elektrischer anschluss pin 1 bis4 auf masse 7 und 8 auf vcc 6 clock 5 sda. ich benutze das pollin board. mittels i2c kann ich einen PCF8574 einwandfrei ansteuern(externe platine). Ich habe 2 boards > beide gleiche Fehlererscheinung (sind ok) mehrere EEPROMs ausprobiert prozessortakt runtergesetzt als compiler mehme ich codevision avr meine routinen habe ich beigefügt, ich komme nicht dahinter warum das nicht funktionieren will?? Danke schon mal für eure tips! gruß peter // I2C Bus functions #asm .equ __i2c_port=0x15 ;PORTC .equ __sda_bit=1 .equ __scl_bit=0 #endasm #include <i2c.h> #define EEPROM_BUS_ADDRESS 0xa0 /* read a byte from the EEPROM */ unsigned char eeprom_read(unsigned char address) { unsigned char data; i2c_start(); i2c_write(EEPROM_BUS_ADDRESS); i2c_write(address); i2c_start(); i2c_write(EEPROM_BUS_ADDRESS | 1); data=i2c_read(0); i2c_stop(); return data; } /* write a byte to the EEPROM */ void eeprom_write(unsigned char address, unsigned char data) { i2c_start(); i2c_write(EEPROM_BUS_ADDRESS); i2c_write(address); i2c_write(data); i2c_stop(); /* 10ms delay to complete the write operation */ delay_ms(10); }
Hallo Peter, das Pollinboard hat leider einen kleinen Bug: Der 7te Pin des EEPROM-Sockels ist mit VCC verbunden, was dafür sorgt, dass das EEPROM nicht beschrieben werden darf(siehe Datenblatt). Man muss einfach die Leiterbahn zu dem Pin z.b. mit einem Messer durchtrennen, und schon ist die Write Protection deaktiviert. MfG Mark
guter tip habe das beinchen aus dem sockel raushängen lassen, aber leider die gleiche fehlererscheinung! bei read bekomme ich immer den wert 0xff.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.