Hallo, ich arbeite zum erstem Mal mit einem 1Mbit Eeprom und bin ehrlich gesagt gerade etwas verwirrt. Wie kann ich die Daten im zweitem Bereich des EEproms lesen bzw. schreiben? Wenn ich das richtig verstehe muss dem eigentlichen Sendungspaket das Device Select vorran gestellt werden. Erst dann darf R/W aktiviert werden, oder? Mit dem Adressbit A16 im Device Select Adressiere ich dann ob ich im oberen oder unteren Bereich schreibe, oder? Also muss die Reihenfolge dann: Stadt anfordern Device Select schreiben R/W Schreiben Adresse Daten sein? Grüße Jens
Eigentlich nichts besonderes. Schreiben: A16 ist im Device-select enthalten, wie du richtig erkannt hast. Für den Master stellet sich das dar wie 2 getrennte ICs am Bus, der eine hat die I2C-Adresse A0, der andere A2 (wenn beide Hardware-Adresspins auf Masse liegen). Ansonsten ist das wie bei kleineren Eeproms.
Hallo Joachim, danke für die Antwort, Hallo Pete, ich habe das Datenblatt gelesen - und an manchen Stellen nicht verstanden - bzw. ich bin da gerade nicht sicher ob ich es richtig verstanden habe. Sowohl von ON als auch von ST. Deswegen frage ich doch. Hallo alle Anderen: Gut - ich schicke also das Device Select vorran. Muss ich das beim Senden irgendwie besonders Adresserieren? Grüße Jens
Schreiben, hier solltest du sinnvollerweise noch einen Parameter für obere oder untere Hälfte mitgeben oder direkt die Byteadresse als long übergeben und daraus die Device-Adresse ermitteln: void write_uchar_eeprom (unsigned int byte_adress, unsigned char data) {i2c_start(); i2c_write (0xA0); //für obere Hälfte 0xA2 i2c_write (byte_adress/256); i2c_write (byte_adress%256); i2c_write (data); i2c_stop(); } Und beim Lesen analog: unsigned char read_uchar_eeprom (unsigned int byte_adress) {i2c_start(); i2c_write (0xA0); i2c_write (byte_adress/256); i2c_write (byte_adress%256); i2c_start(); i2c_write (0xA0|1); //read byte return i2c_read(NO_ACK); }
Hallo Joachim, danke :) Das hilft mir jetzt sehr. So hab ich mir das fast auch schon gedacht. Noch eine Frage zum Abschluss - muss nicht passend das R/W bit mit gesetzt werden? Grüße Jens
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.