In I2C master mode, D1000 didn't send data to I2C slave device after sending address.
I checked the signals and found that I2C device sent ACK (high bit) but D1000 didn't recognize it as ACK. According to the datasheet, it seems that D1000 recognizes low bit as ACK.
Usually other I2C host accepts high bit as ACK from I2C device. Can you please let me know how I can make D1000 to accept high bit as ACK?
When I2C device sent ACK (High bit) while SCL line is also HIGH, D1000 should recognize this as NACK. According to the official I2C protocol, I2C host accepts LOW bit as ACK from I2C devices. Can I know more on your slave device so we could check on the datasheet as well ? Can you clarify as well what are other I2C host that accept high bit as ACK from I2C device ?
Slave device we used is PM2005 particle sensor.
datasheet http://diwellshop.cafe24.com/web/DATASHEET/01_subtitle/1_Sensor/4_Gas_Sensor/Dust/PM2005TestKit/PM20... http://diwellshop.cafe24.com/web/DATASHEET/01_subtitle/1_Sensor/4_Gas_Sensor/Dust/PM2005TestKit/PM20...
The I2C ACK should be active low where the slave need to pull down the SDA signal on the 9th SCL pulse. For the D1000 case as attached by you, it seem like the ACK bit is HIGH = NACK. While the other I2C device picture attached by you, the 9th SCL pulse is low = ACK and it is not active high. Hope this answer your question.