I2C on PSOC 4 BLE pioneer board | Cypress Semiconductor
I2C on PSOC 4 BLE pioneer board
I'm trying to use an SCB I2C on the 4200 BLE pioneer board and after doing I2C_Start() it doesn't appear as though the I2C bus becomes "non-busy". As a result, the first write never succeeds or completes. The check for bus state below always comes back as busy (I2C_I2C_MSTR_BUS_BUSY). I've hardwired a sensor onto the pioneer board at P3:sda and P3:scl pins and have those pulled up with external pullups. I never see those signals driven low on a scope. It's almost as though an internal status register is keeping the I2C component busy. Thoughts?
uint32 I2C_I2CMasterWriteBuf(uint32 slaveAddress, uint8 * wrData, uint32 cnt, uint32 mode)
errStatus = I2C_I2C_MSTR_NOT_READY;
if(NULL != wrData) /* Check buffer pointer */
/* Check FSM state and bus before generating Start/ReStart condition */
I2C_DisableInt(); /* Lock from interruption */
/* Check bus state */
errStatus = I2C_CHECK_I2C_STATUS(I2C_I2C_STATUS_BUS_BUSY) ?
I2C_I2C_MSTR_BUS_BUSY : I2C_I2C_MSTR_NO_ERROR;