shishiker
Junior Member level 1
Hello,
I had a problem when implementing I2C communication between NXP Kinetis K50 micro-controller and Honeywell Humidlcon I2C RH sensor. The RH sensor doesn't acknowledge when receiving the default address 0x27. After testing SCL and SDA signals with oscilloscope, I realized the sensor failed to acknowledgebecause the SDA line fluctuated between around VDD and VDD/2. In my program, the RH sensor receives a measurement command and a read command alternately for every 100ms. In general the signal rises to VDD after the write-bit (logic LOW) following the 7-bit address, whereas drops to about VDD/2 after the read-bit (logic HIGH) following the 7-bit address. Waveform of the SDA line fluctuation (with larger time scale), and detailed I2C SCL and impaired SDA signals are attached.
My pull-up resistors are 2.2K as suggested by the datasheet, current drawn by the RH sensor is below 1mA during I2C communication. This same I2C interface ever worked well with Sensirion SHT35 sensor. After we switched to Honeywell RH sensor, I did minor modification to the code, because Honeywell RH sensors perform measurement and return data without command, but controlled by the last bit of the first byte received from the master. The application circuit of the sensor can be find at
https://sensing.honeywell.com/index.php?ci_id=147072
and the communication document can be found at
https://sensing.honeywell.com/i2c-comms-humidicon-tn-009061-2-en-final-07jun12.pdf
Really couldn't figure out how to fix the problem, please help!
I had a problem when implementing I2C communication between NXP Kinetis K50 micro-controller and Honeywell Humidlcon I2C RH sensor. The RH sensor doesn't acknowledge when receiving the default address 0x27. After testing SCL and SDA signals with oscilloscope, I realized the sensor failed to acknowledgebecause the SDA line fluctuated between around VDD and VDD/2. In my program, the RH sensor receives a measurement command and a read command alternately for every 100ms. In general the signal rises to VDD after the write-bit (logic LOW) following the 7-bit address, whereas drops to about VDD/2 after the read-bit (logic HIGH) following the 7-bit address. Waveform of the SDA line fluctuation (with larger time scale), and detailed I2C SCL and impaired SDA signals are attached.
My pull-up resistors are 2.2K as suggested by the datasheet, current drawn by the RH sensor is below 1mA during I2C communication. This same I2C interface ever worked well with Sensirion SHT35 sensor. After we switched to Honeywell RH sensor, I did minor modification to the code, because Honeywell RH sensors perform measurement and return data without command, but controlled by the last bit of the first byte received from the master. The application circuit of the sensor can be find at
https://sensing.honeywell.com/index.php?ci_id=147072
and the communication document can be found at
https://sensing.honeywell.com/i2c-comms-humidicon-tn-009061-2-en-final-07jun12.pdf
Really couldn't figure out how to fix the problem, please help!