Hi,
Is it possible to use an EEPROM with I2C address other than 0xA0. For example can I use an EEPROM with I2C address : 0xA4?
I need to do this due to following:
I want to move to an 1MB EEPROM. That will need addresses : 0xA0 and 0xA2 free.
But my 0xA1 address is occupied by an RTC(PCF85063TP). This address is fixed for the RTC and can't be changed.
Thanks,
Sanika
Please call my Skype: nissim.test
It is NOT possible to use an EEPROM with I2C address other than 0xA0.
For Since CSR1010 is expecting to load the code from this address.
Since 0xA1 address is occupied by your RTC PCF85063TP you can connect to other PIOs and dynamically assign the new 2 PIO lines to be used as peripheral I2C
Hi Dr. Nissim,
Thank you for the clarification.
Would it be possible to use common I2C_SCL and seperate I2C_SDA for RTC and EEPROM? I have ran out of PIOs and hence wanted to check. I will make sure programatically that both are not addresses at the same time.
Thanks,
Sanika
Hi Sanika
I have looked at both chips and I don't think you have a problem (unless I misunderstand you). The EEPROM will occupy 0xA0 and 0xA1 (write and read addresses respectively). The 85063 RTC addresses are 0xA2 and 0xA3. (I2C devices have a 7-bit address and the LS bit detrmines read or write).
You could also consider flash memory chips using the SPI interface. It costs two more PIO pins but may have other advantages such as larger chips and maybe lower costs. Beware however that the SPI flash interface and I2C interfaces can interfere with each other - I have posted on this elsewhere. After a lot of work I have a solution that appears to work.
Regards - Charles
Hi Charles, Thanks for the feedback. Actually I need addresses 0xA0 to 0xA3 free as my EEPROM size is 1MBit.
I followed Dr. Nissim's advise and changed my I2C connections.
Since I only have one spare PIO left, I have kept SCL common between EEPROM and RTC.
I am using different SDA pins for EEPROM and RTC. As I need to read and write RTC only occasionaly, I init I2C for RTC SDA pin when needed and re-init I2C to default I2C_SDA pin after transaction completes. So far this seems to be working for me.
Thanks,
Sanika