Shop OBEX P1 Docs P2 Docs Learn Events
New eeprom question! — Parallax Forums

New eeprom question!

HenrymouHenrymou Posts: 128
edited 2007-08-17 09:56 in General Discussion
Ok I have successfully ordered 2 24LC16B EEPROM chips for my SX cartographer robot!
I know that the slave ID for the 24LC1B is $A0, how do I find the slave IDs for other EEPROM chips so that I don't have
to just use the 24LC16B for external data logging?
-Henry scool.gif

Comments

  • Mike GreenMike Green Posts: 23,101
    edited 2007-08-16 06:01
    The basic ID code for all I2C EEPROMs is $A0. Those EEPROMs that have address select lines will use IDs $A2, $A4, $A6, $A8, $AA, $AC, and $AE depending on which address select lines are connected to Vdd. In other words, there might be as many as 3 address lines: A2, A1, A0 that can be set to logic 1 or logic 0 and the ID code is of the form: % 1 / 0 / 1 / 0 / A2 / A1 / A0 / RW. Not all EEPROMs have all 3 address select lines.

    When in doubt, check the EEPROM datasheet for a description of addressing.
  • HenrymouHenrymou Posts: 128
    edited 2007-08-16 07:47
    ok, now i've heard that I can connect multiple 24LC16B's together on the same set of I/O lines, how do I do this?
  • Dave HeinDave Hein Posts: 6,347
    edited 2007-08-16 12:06
    You connect the A2, A1 and A0 pins differently on the two chips, and then configure three bits in the device address to select the chips.· The mapping is shown below.· The "P" bits in the device address refer the the "A" pins on the chip.
    301 x 210 - 5K
  • JonnyMacJonnyMac Posts: 8,940
    edited 2007-08-16 13:57
    Not on the 24LC16B -- the address pins are not used; you can only have one per I2C buss. As Mike suggested above, it's important to consult the data sheet for any component one wants to use, and section 8.4 spells out that the A0, A1, and A2 pins of the 24LC16B are not used.

    ww1.microchip.com/downloads/en/devicedoc/21703d.pdf
  • Dave HeinDave Hein Posts: 6,347
    edited 2007-08-16 14:23
    JonnyMac said...
    Not on the 24LC16B -- the address pins are not used; you can only have one per I2C buss.
    Yes, you are correct. Next time I'll wait till I have a couple of cups of coffee before sending a response.

    The 24LC16B is a 2Kx8 device, which requires 11 address bits. The 3 most significant address bits are incorporated into the device address. If you need more memory you would have to go to a larger device. You would also need to send an additional address byte for the MSB of the address.

    Dave
  • HenrymouHenrymou Posts: 128
    edited 2007-08-17 05:40
    thanks guys, I've successfully wired both the chips to my sx robot!
    have a good life
    -Henry
  • Guenther DaubachGuenther Daubach Posts: 1,321
    edited 2007-08-17 09:56
    Please also be aware that addressing of similar EEPROMs can even differ depending on the manufacturer.

    For example, a 24xx02 from Microchip does not decode the three addres pins - they are defined as don't care, where a 24xx02 from other manufacturers, like ST or Ceramate do decode those pins. Maybe, the Microchip designers had in mind that it does not make sense putting two or more of those low-capacity EEPROMS on one bus where one of them could always be replaced by a pin-compatible bigger one.

    A 24xx04 from Microchip only decodes the A0 pin, where A1, and A2 are don't care, and the 24xx08 does only decode A1 and A0, leaving A2 as don't care where similar types from other manufacturers decode of all three pins.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Greetings from Germany,

    G
Sign In or Register to comment.