Taking a peek at the source C:\ProgramData\MatrixTSL\FlowcodeV9\CAL\ESP\ESP_CAL_I2C.c and I see that hardware mode isn't actually implemented yet:
For example showing a short function - but the pattern repeats:
Code: Select all
CALFUNCTION(void, FC_CAL_I2C_Master_Init_, (void))
{
#if (MX_I2C_CHANNEL_X == 0) //Use Master I2C Software
GET_PORT_PIN(MX_I2C_SDA_PORT_X, MX_I2C_SDA_PIN_X); //Configure SDA as Input
GET_PORT_PIN(MX_I2C_SCL_PORT_X, MX_I2C_SCL_PIN_X); //Configure SCL as Input
#endif
#if (MX_I2C_CHANNEL_X == 1) //Use Master I2C Hardware 1
#endif
}
I'm not sure if this counts as a bug, but a compiler warning to the effect that hardware channels are not implemented would be good. (I'm guessing this is a knock-on from ARM i2c not working in hardware mode too?)
Transaction mode looks to be implemented (again as per ARM) - but I couldn't get this to work either

Transaction_Write(.buf, 10)
Transaction_Uninit
</code>
sent 100 (only) - is this the correct way to use this?
Software mode (Start, TxByte etc) seems to work perfectly however!
Martin