I2C EEPROM Adressierung

OP #284275
Lesenswert?

Ich bin nicht ganz schlüssig, wie ich in eine I2C-EEPROM schreiben soll.
Hab mir die Routinen von P. Fleury dazu angesehen und da war auch ein
Beispiel dabei. Allerdings braucht das von mir verwendete EEProm zwei
Adressbytes. Ich bin mir jetzt nur nicht ganz sicher, ob man nun das
höherwertige Byte zuerst senden muss, oder das niederwertige...

void eeprom_writebyte(uint16_t addr, uint8_t value)
{
  i2c_start_wait(Dev24C256+I2C_WRITE);  // Device auswählen zum
Schreiben
  i2c_write(addr&0xFF);          // Adresse Lo-Byte
  i2c_write((addr&0xFF00)>>8);      // Adresse Hi-Byte

  i2c_write(value);
  i2c_stop();
}
#284278
Lesenswert?

Moin,

ich hatte das gleiche Problem und "glaube",
dass dies eine Lösung ist.
Dabei soll zuerst die ersten 8 Bits übertragen und
dann die letzten 8 Bits.
Die Routinen stammen von Fleury und sind nur
modifiziert.

Falls die "Aufteilung" der 16 Bits in
zwei mal 8 Bits nicht stimmt  bitte ich um Rückmeldeung.

Bis dann
Matthias
Angehängte Dateien:
Gast #284281
Lesenswert?

"leider reden die da aber nur von Bits, im speziellen von
MSB und LSB. Und zwar kommt das MSB zuerst."

Da hast Du doch die Antwort: Das MSB einer 16-Bit Adresse ist nun
einmal im oberen Byte und das LSB im unteren.
Gast #284283
Lesenswert?

Standard-Wörterbuch benutzt?

Die sind in dieser Branche nur bedingt hilfreich. Die Bedeutung des
Begriffs MSB ist in der DV dankenswert eindeutig. Auch bei Prozessoren,
deren Bit 0 links und Bit 31/63 rechts liegt (z.B. PowerPC), ist MSB
links.
Gast #284285
Lesenswert?

Wieso? Auf PowerPC hat das Bit 0 den höchsten Stellenwert, Bit 63 den
geringsten, die Bitnummer ist einfach nur eine Nummer, kein
Stellenwert. Die Arithmetik hat IBM ja nicht neu erfunden, nur die
Nummerierung ist anders.

Generell landet man leicht in Teufel's Küche, wenn man zwar das
oberste Byte aber das unterste Bit mit 0 numeriert (umgekehrt auch, das
ward aber noch nicht gesichtet). Motorola hatte das bei 68000 verbrochen
und durfte beim 68020 deshalb umnummerieren - alte Bit-Befehle rechts
nach links, neue Bitfeldbefehle links nach rechts.

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