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.

HDC2021: DRDY_STATUS never goes high in Status Reg. Temperature registers always read 0x00, 0x00.

Part Number: HDC2021

We have tried to get a temperature reading from the device over the I2C bus, but always read zeros.

Confirmed what we are reading using a scope on the clock and data signals.  Also, we read the expected data from registers 0xFC, 0xFD, 0xFE, 0xFF.

Here is a sequence that we have tried:

0x82, 0x0E, 0x80 (soft reset)

0x82, 0x07, 0x80 (DRDY_ENABLE = 1)

0x82, 0x0E, 0x54 (1 sample every second, enable DRDY pin)

0x83, 0x04, read 1 byte (data bit 7 always 0 no matter how many times we read it)

Here is a second sequence that we tried (skip reading the status bit):

0x82, 0x0E, 0x80 (soft reset)

0x82, 0x07, 0x80 (DRDY_ENABLE = 1)

0x82, 0x0E, 0x54 (1 sample every second, enable DRDY pin)

0x83, 0x00, read 2 bytes (data always 0)

Here is a third sequence that we tried (one shot):

0x82, 0x0E, 0x80 (soft reset)

0x82, 0x07, 0x80 (DRDY_ENABLE = 1)

0x82, 0x0E, 0x04 (one-shot, enable DRDY pin)

0x83, 0x00, read 2 bytes (data always 0 no matter how long we keep reading it)

Is there a sequence that we should use to get valid temperature readings and the DRDY_STATUS bit on?

  • Hi Charles,

    Could you please answer the following questions to help me troubleshoot this issue: 

    1. What is the operating supply voltage? 
    2. Is the ADDR pin connected to VDD?
    3. Could you please share the scope shots showing this behavior?

    Regards,
    Pavani Tenneti

  • We added a write to the Measurement Configuration Register (0x0F), and are now getting non-zero data from the Temperature register.

    0x82, 0x0E, 0x80 (soft reset)

    0x82, 0x07, 0x80 (DRDY_ENABLE = 1)

    0x82, 0x0E, 0x04 (one-shot, enable DRDY pin)

    0x82, 0x0F, 0x01 (MEAS_TRIG)

    0x83, 0x00, read 2 bytes