Help understanding 24LC256 Addressing

Can anyone verify if my understanding of the address pins of a 24LC256 is correct?

I believe the address pins do not have to be manipulated in order to address/access all 256k of the device. (aka 32k 8 bit bytes) Is this correct?

Is the below wiring correct?


I want to finish my PCB design before I receive my parts, so I cannot test to verify.


24LC256 (microchip)

You have to tie WP low in order to allow memory writing.

Thank you,

I was so focused on the addresses I hadn't looked at the other pins.


You have not mentioned about what would be the 7-bit device address if all the address lines ae tied to GND pin.

The address for the internal memory locations would remain at : 0x0000 - 0x7FFF ( 0 - 32767) regardless of the device's I2C Bus Address.

1. When WP is tied to GND, both read/write is allowed.
2. When WP is tied to Vcc, only read is allowed (write protected).

To expand on this, I would connect the WP pin to an output pin on the MCU with an external pull-up. The output pin is obviously to allow the program to switch between write protected and not write protected. The external pull-up is to ensure that the write protection is on while the pin is floating (power on, reset, brownout, etc.)

I'd pull down the WP pin unless the module is used as ROM.

What would you do if some noise were to be interpreted as a write, which in turn corrupts the data?

If noise can cause the required I2C protocol for changing the data then something is very wrong.

What do you expect to reside initially in the chip if it's used as RAM?

I don't think I would use an EEPROM as RAM?

Edit: Noise does happen, also on I2C busses. In most cases they're not permanent though, but it would be here. I'm not gonna argue this further, do what you wish, it just seems like such a tiny thing for some additional reassurance.

Thanks guys,

The PCB I'm designing is simply for local data acquisition storage, (EEPROM + SD), RTC and Display. The I2C lines are very so short I don't expect I2C noise to be much of an issue. In any case if I loose a data point or two it will have minimal effect on the overall data usefulness.