I am having difficulties programming the SRAM on the TPS23880 device on my embedded board. It appears that the ACK from the 23880 gets missed periodically. (Usually about 2/3 of the way through programming the main SRAM code). Looking at the signal on the scope, it appears that the master I2C clock is ok, but the ACK doesn't appear. From the perspective of my firmware, the I2C driver stalls (times out) and needs to be reset. At the moment, I am not able to resolve whether this is a hardware issue (my pullup resistors are wrong), a driver issue (the clocking is quite right in my firmware) or something isn't quite right in the 23880.
This issue is easily detectable in my firmware's state machine for programming the SRAM. Consequently, if I could successfully restart the I2C programming sequence from the middle, I could recover and complete the process. Is there any way that I could back up to an address that I know I have successfully written, reset the beginning address and continue programming from that point? Also, can the SRAM be programmed by sending blocks of data bytes, or does it have to be programmed one byte at a time?
Any hints as to how to identify the root cause of my problem would also be greatly appreciated. Also, workarounds that get me up and running in the short run would helpful.