Other Parts Discussed in Thread: MSP430F5438A
We are able to write to an I2C device with no problem, but the issue is that SCL runs at an incorrect (slower) speed when not in debugger mode. When in debugger mode SCL clocks at the correct rate. The problem occurs even if no I2C device is connected (only a pullup resistor exists on SCL and SCA). You may be able to duplicate the problem using other conditions, but our specific conditions are:
o MSP430F5438A rev D in Experimenter Board.
o Pullup resistors on SCL (P3.2), SCA (P3.1): 3.3K
o SMCLK = 1.8432 MHz.
o UCB0 sourced from SMCLK, Transmit mode.
o UCB0BRW = 6, so SCL freq should be 1.8432MHz/6 = 307.2 kHz, so T_low = T_high = 1.63 us.
o MSP430F5438A is I2C master in transmit mode, 7-bit addressing.
o Slave address = 0x0038 (loaded into UCB0I2CSA).
Measured SCL T_high = T_low = 1.6 usec when in debug mode thru FET tool (either continuous run mode or stepping through) which is correct, but when debugger exits and the board is reset, the SCL high and low times are about 4.3 usec as captured on a storage scope. These SCL clock periods remain the same whether any I2C device is connected to the bus or not (you should be able to observe SCL even if there is no ACK from another device).
Please let me know if you are able to observe the SCL high and low times with and without the debugger on an MSP430F5438A Experimenter Board, and if they are correct in debug mode and still correct standalone (after hardware reset or power cycling).
This problem is insidious because everything works correctly when in debugger mode, but when not in debugger mode it runs differently (SCL is almost 3x slower, but still functions correctly other than the speed drop). So it *seems* as if everything is working fine; unless you go back after exiting the debugger and detect the slow SCL clock you might never know there is a problem.
Can you duplicate this problem? (slower-than-normal SCL rate when not using debugger)