Part Number: TMS320F28069
Hi All,
Still working on the project to add I2C communications to an existing product which uses the TMS320F28069.
The 28069 is a slave. It responds to quite a number of I2C requests for individual data registers sized between 3 and 4 bytes. Plus, there is one request that asks for all data registers at once. That one contains 96 data bytes in addition to the register address and a byte that tells the master how many bytes to expect.
This works perfectly, first time every time, when compiled and run in the debug configuration with the programmer/emulator connected.
Release configuration compiles without a problem and all of the product's functions operate normally, including all the individual I2C data requests. But the one request for all registers doesn't work.
I think what's happening is that the 28069 is taking so long to gather the data to send that the master times out and clears the bus. If that's it, should I be pulling the clock line low to stretch the clock until the 28069 is ready to send all data? What's a good way to do that?
Still that doesn't explain (to me anyway) how the system works fine in the debug configuration.
Stated concisely, in the debug configuration the I2C request for 99 bytes works perfectly, in the release configuration the 99 byte request fails.
Is this more likely a code problem, compile problem, I2C timing problem, optimization settings problem, or something different?
Thank in advance,
robin