PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : EEPROM-Chipkarte via I2C auslesen Probleme!



madangdive
30.01.2010, 08:36
Hallo!
Wenn ich via I2C eine Chipkarte auslese und das Ganze 2x hintereinander, dann habe ich 2 völlig unterschiedliche Werte (v1_EEPROM ist dann nicht gleich v2_EEPROM), obwohl ich 2 x die gleiche Adresse angebe!
Frage: Kann man ein EEPROM (24C02) so schnell hintereinander nicht auslesen, od. was läuft hier falsch, bzw. wie wäre es richtig?
Verwende das Source-File von: Peter Fleury <pfleury@gmx.ch> http://jump.to/fleury und bin im AVR-Studio 4.14 zu Hause!
Danke Mad
Code:
…….
// 1. Mal EEPROM-Chipk. lesen und speichern in v1_EEPROM
i2c_write(5); // write address = 5
i2c_rep_start(Tuer1_24C02_Chipkarte+I2C_READ); // set device address and read mode
v1_EEPROM = i2c_readNak(); // read one byte from EEPROM
_delay_us(30); // Zeit zum /Schreiben/Lesen des EEPROM's/Bus
i2c_stop();
// nochmal EEPROM-Chipkarte lesen und Wert speichern in v2_EEPROM
i2c_write(5); // write address = 5
i2c_rep_start(Tuer1_24C02_Chipkarte+I2C_READ); // set device address and read mode
v2_EEPROM = i2c_readNak(); // read one byte from EEPROM
_delay_us(30); // Zeit zum /Schreiben/Lesen des EEPROM's/Bus
i2c_stop();
……….

Jaecko
30.01.2010, 09:40
Es wundert mich, dass das so überhaupt funktioniert, da nirgendwo ein "normaler" Start vorkommt.
Dieses Delay würd ich auch erst nach dem Stop machen. Also Bus freigeben und dann erst warten.

s.o.
01.02.2010, 20:17
Sorry fürs Offtopic: darf ich mal fragen, wo du die Halterung für diese Chipkarten her hast?

madangdive
02.02.2010, 20:29
Chipkarten gibt's bei
http://at.rs-online.com
gruß mad