This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

HDC3020: Stop condition is not generated in bus if NACK is sent to discard CRC byte.

Part Number: HDC3020
Other Parts Discussed in Thread: C2000WARE, TMS320F2800157

I am working on interfacing HDC3020 Temperature and Humidity sensor. In that I want to discard CRC byte and accord to the datasheet we need to send NACK to discard that.

For the command 0xE000(Already sent command for setting Auto measurement mode in the bus)., I am sending NACK after I receive LSB of Humidity. But it is working for 3 or 4 transactions and after that Stop condition is not generated in the bus (ie.SDA line is in low sate). Refer the attached image.

Note I am using TI 's TMS320F2800157 microcontroller as a master and using C2000Ware_v5.00.00.00 driver functions for doing the transactions. Let me know how I can resolve this issue.

 .

  • Ruthrapathy,

    You are not doing anything wrong, unfortunately we recently discovered this behavior as a bug in the part. We recently discovered that if the last bit before the NACK is issued is 0, then sending the NACK to discard the CRC will cause SDA to hang low and not recover without a reset event (which of course takes you out of auto measurement mode, so that's a big problem). You will need to accept the CRC for RH data to ensure this doesn't occur. I am currently working on revising the HDC302x datasheet to make clear that the CRC must be accepted. 

    Thank you

    -Alex Thompson