Raspbery Pi pico external EEPROM?

Hi!
Anyone managed to connect an eeprom to the Raspbery Pi pico with the arduino IDE?

I've been trying to figure out how to do it but without sucesse. I have no experience with external eeproms on arduino so that might be the real problem :slight_smile:

I have a 24LC256 conneted to gpio 4 and 5 as SDA and SCL (i belive this are the default 0 i2c Wire pins on the pico). I followed the schematic in this page to connect the Pico to the eeprom How to Connect a 24LC256 EEPROM to an Arduino

I tried some codes i found around an also some libraries exemples, but looks like i can't make anything work...

Can any one point me in the right direction?

Thanks!

Also, I aware off Earle Philhower's EEPROM simulation on the flash memory EEPROM Library — Arduino-Pico 3.0.0 documentation

But the following statementt stressed me a little, since i plan on writing on the eeprom frequently: " Note that this is a simulated EEPROM and will only support the number of writes as the onboard flash chip, not the 100,000 or so of a real EEPROM. Therefore, do not frequently update the EEPROM or you may prematurely wear out the flash."

Pi Pico Guide 05 - How to Add an EEPROM to Raspberry Pi Pico | Add EEPROM to Pi Pico - YouTube

also:

RP2040 Brown-out detection - write to external EEPROM - Hardware - Arduino Forum

Thanks mrburnette,

I had already seen this.

The first video is a micropyton implementation. Can i use it with the arduino IDE?

The second seems like a power supply problem and does not concern the implementation of the eeprom reading and writing on the pico.

Hello,

On this page there is an implementation to access Microchip's 24LC* series EEPROMs, in the begin() procedure with parameters you can select the I2C pins,

  • bool begin(uint8_t sda, uint8_t scl) for ESP32 / ESP8266 / RP2040 and alike. Initializes the I2C bus with the specified pins, thereby overruling the default pins. Furthermore it checks if the deviceAddress is available on the I2C bus. Returns true if deviceAddress is found on the bus, false otherwise.

electric diagram:

24LCx A0 -> GND
24LCx A1 -> GND
24LCx A2 -> GND
24LCx WP -> GND
24LCx SCL -> Peak I2Cx SCL (no pull-up needed)
24LCx SDA -> Peak I2Cy SDA (no pull-up needed)

then:

begin(y, x);

greetings

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.