Could you please provide some detail about SensorI2CAccessDelay() function. Please check error status immediately after CyU3PI2cReceiveBytes(). I assume that the SENSOR_I2C_READ_ADDRESS & SENSOR_I2C_WRITE_ADDRESS are in the I2C spec.
Bit 7 - 1: Slave address.
Bit 0 : 0 - Indicating this is a write/read from master.
If not please confirm.
Thanks & Regards
-Which sensor are you going to interface with CX3? Please kindly check the hardware design according to the application note/datasheet from sensor vendor.
-Please check if the sensor is well initialized(reset and power) and if it is ready for receiving data from I2C port. Generally speaking, sensors will not ACK I2C command if it is not well intialized.
-Please check if you set the correct W/R slave address in firmware. It is common that a sensor has two or more I2C address according to different connection condition.
-It is strange that the amplitude of SCL/SDA drops from your screenshot. Check if anything abnormal on your I2C hardware part.
- I recommend you capture the I2C communication with logic analyzer. It is easy to check what happened on I2C port.
- Do you modify the definition of SensorI2CAccessDelay? Try to print the error code.
static void SensorI2CAccessDelay( CyU3PReturnStatus_t status)
// Add a 10us delay if the I2C operation that preceded this call was successful.
if (status == CY_U3P_SUCCESS)
thanks for the recommendation,
i think it could likely issue of value of i2c pull up... looks like that CX3 doesn't have internal pull for SDA and SCL. so i have to wire them externally.
Does CX3 have a recommendation for specific value of pull up resistor?
We don't need specific caution on CX3 I2C part. The values of 2.2k/4.7k which are commonly used should work.
the issue was resolved by proper value of pull-up resistor.
Congratulations to you. I will close this ticket later.