I’ve recently been experimenting with FRAM memory. The chip that I got has 8MB although my ESP32 only sees 4MB. However, wen I run a sketch to find I2C devices, it comes back with 2 addresses for the FRAM memory. I’ve tested it and I can write to either of the two halve which are both 4MB.
What I am curious about is why it is 4MB. I’ve done a search, and I can’t find the answer. Is it a limitation of the ESP32, or is it something that is a feature of FRAM memory? Since it has two I2C addresses, I assume that this is a feature of the memory chip.
When i run the I2C sketch to find adresses, it came back with 0x50 and 0x7C.
I ran a test on both of them and it reported 32,768 bytes.
Is it just giving an alternative address, but using the same memory?
I was using the 0x7C, just because that's where I ended up after playing around with it when I first got it.
I've just changed it to the 0x50 and re-uploaded the sketch. I half expected to find that all the data that I had stored would be gone, but it is still there.
I have had a few instances whilst I have been experimenting where the data has got corrupted, I assumed it was my programming but perhaps it was the 0x7C address that was causing the problem.
The MB85RC256V does indeed respond to 0x7C.
It is the address used to retrieve the device ID
Nothing bad will happen if you access that address.
Mystery solved