Hello:
I'm using the CC3200 Launch Pad (Rev. 4.1) and trying to get the camera application up and running (which is provided as part of the SDK). I have built up my own Cam Boost board and connected it to the Launch Pad. I am able to compile and load the code just fine, but when I check the I2C interface to the camera with an oscilloscope, I see that only one bit of data is shifted out from the CC3200 to the camera.
When I investigate the issue in the code, I see that the data byte is loaded into the I2C data register and the I2C Master Interrupt is cleared with these functions (i2cconfig.c, line 212):
// Write the first byte to the controller. MAP_I2CMasterDataPut(I2CA0_BASE,ucBuffer[0]); MAP_I2CMasterIntClearEx(I2CA0_BASE, I2C_INT_MASTER);
Then at line 225, the code waits until the interrupt flag is set:
// Wait until the current byte has been transferred. while((MAP_I2CMasterIntStatusEx(I2CA0_BASE, false) & I2C_INT_MASTER) == 0) { }
The flag is read and returned in i2c.c at line 814 in the function I2CMasterIntStatusEx(uint32_t ui32Base, bool bMasked).
The problem appears that the interrupt flag is never getting set, so the code sits in the while loop at line 225 in i2cconfig.c. My guess is that the I2C interrupt is not getting enabled. I have not been able to find where the interrupt should get enabled, and since this application should work as is I though maybe this is a configuration issue. Has anyone seen this issue before, or can someone at TI shed some light on why the I2C function isn't working?
LP Rev. 4.1
SDK 1.0.0 with Service Pack 1.0.0.1.2
Thanks,
Will