After sending out the I2C START I can not send out the 1st data byte 0xa0. Instead, the KL17 I2C sends out 0x00. If I insert a delay between sending out the I2C START and sending out the 1st I2C byte, the data byte is sent as expected (0xa0)!
As far as I know, there is no way to tell if the KL17 is finished sending out the I2C START. In frustration, I have created code that waits for every bit in the I2C status register to clear to zero. This might work well for sending data. But no where does it say this is possible after sending I2C START. A fact proven by my test code.
There must be a better way than to simply insert an arbitrary delay. This sounds wrong and possibly dangerous in critical applications.