I have a project that I am playing with.
I am using an Arduino Nano connecting to an eeprom using I2C.
The eeproms are 24LC256 and 24AA00.
The datasheet:
https://ww1.microchip.com/downloads/aemDocuments/documents/MPD/ProductDocuments/DataSheets/24AA00-24LC00-24C00-Data-Sheet-20001178J.pdfI can read from both 24LC256 and 24AA00
I can write to the 24LC256 with out any problem
When I try to write to the 24AA00 it will either write 01 to the first byte or mostly overwrite the 1st byte with whatever was suppose to go to other addresses/positions. it will only write to byte address 0 no matter what I try and set it to. If I send multiple bytes to it it will keep overwriting each byte to the first address.
I thought it might be the eeprom, so I stuck it in a t48 programmer and the t48 has no problem writing to it or reading from it.
I have considered the following:
1. it could be a coding issue, but then why does the same exact code work on the 24LC256.
2. it could be the circuit
- its in a breadboard, I have tried others, and the 24LC256 works fine
- maybe the pullup resistors are wrong, I have tried from 10k down to 680ohm
- bus capacitance, its suppose to be less than 400pF, I have no idea how or where to measure that, amd would it even help on a breadboard, investigating this currently......
I will include the measurement images from the scope for these two eeproms, as you will see there is a clear issue on the right hand image.
Both of these eeproms were sent 2 bytes to address 0, 0x1F and 0x2F. exact same code was used to send it to both.
I have considered sticking the scope on the t48 to compare, but as soon as i connect the probes it says the pins are not available
If anyone have any ideas it would be much appreciated.