I2Cm unable to read DS1307 | Cypress Semiconductor
I2Cm unable to read DS1307
I have a project using the UM I2Cm to communicate with the other devices on the bus. On this bus there is an RTC DS1307. My project is also using the BootLoaderI2C UM. The chip used is CY8C29466.
To develop the code I removed the bootloader and replaced it with the UM I2CHW which I renamed the same as the bootloader to make it compile. Now the code is using 78% of the available space. The problem seems to be related to the space used.
Now the problem: If I use the UM I2CHW I can read the RTC without any problem. If I put back the UM BootLdrI2C I can read my RTC 3 times without any problem and the next time the value returned by the RTC don't make any sense. If I reboot the circuit I will be able to read the RTC for 3 times sometimes 4 and sometimes on power-up the RTC values are wrong.
I check using a scope the I2C frame, just to make sure there is not any glitch on the bus. My architecture has multiple devices connected to it, so I disable any code related to the other devices leaving only the RTC without success.
I also tried to remove known working pieces of code unrelated to this problem and the problem disappeared. As I said before It seems space related.
Does anyone already encountered a problem like this?