I2C SSP_ERR_ASSERTION after SSP_ERR_TRANSFER_ABORTED

Hello everyone,

I'm having an issue with my I2C Framework peripheral. When I do an operation, where an SSP_ERR_TRANSFER_ABORTED error arises, the whole bus seems to be broken afterwards. Let's say I have a bus with 2 ICs, one is a SHT-31 Humidity/Temperature Sensor and the other is an MCP23017 GPIO extender. Seperately, they are working fine, but when I Read more than once from the Sensor, the MCP23017 functions return SSP_ERR_ASSERTION.

The problem is, to find out when a conversion of the SHT-31 is ready, I have to issue a read command and only when the IC answers with ACK, I can read out the data. So the way to go is:read until there is no more SSP_ERR_TRANSFER_ABORTED. In my example let's say I read once, I get SSP_ERR_TRANSFER_ABORTED, I read the second time and I get SSP_SUCCESS. I also get the values from the IC just fine. But afterwards the communication with the MCP23017 doesn't work anymore.

If I only read once (after waiting e.g. 100ms, so the conversion result is definitely ready), the problems don't arise (there is of course no SSP_ERR_TRANSFER_ABORTED either).

Issuing a Reset from the framework api doesn't help. What would be the correct way to go to achieve the Read-Condition Polling with the Synergy I2C Framework? How can a SSP_ERR_TRANSFER_ABORTED error cause such problems in another IC of the framework?

Kind Regards,

Christoph B

Parents Reply Children