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.

HDC2010: HDC2010 Readings

Part Number: HDC2010

HDC2010 read of Temperature and Humidity should result in the two LSB of the reads as 00.  While I do appear to be getting proper readings of Temperature and Humidity the two LSB of the reading are not 00.  Should I clear these before using the reading or is there something wrong with my reading?

  • Hi Donald,

    Where are you reading that the two LSB should be 00? I think this is a misunderstanding.

    Thanks,
    Ren
  • Hi Ren,

    Thanks for the speedy response.  

    I am reading the upper and lower bytes of the Temperature and Humidity registers.

    I am using single acquisition mode with 11 bit resolution.  What I found was that when I was writing h01 to trigger a measurement in the 0F Configuration register I may also have been switching resolution back to 14 bit and that may have confused the chip.  Some experimenting shows that is not the case.  I am not aware of a way to change one bit in a I2C device without affecting the other 7 bits unless you rewrite the whole byte with what you need.

     

    Those last two digits are of little practical value to me but I did expect them to be 00. 

     

    Thanks for any light you can shine on this.

     

    Don Pierman

     

    PS:

     

    I also found that when reading the four registers for Temp and Humidity using an HCS08 NXP MC you must turn off Transmit Acknowledge in the MC before reading the Humidity High Byte which is the last of the four or IIC_Stop will not happen and the SDA line will be pulled low and stay there until the power is removed and reconnected.

  • I think some of the confusion from me is the use of LSB when I should have used lsb as this was about the least two bits not bytes. Documentation should have used lsb as well. It also appears that in Application Report SNAA312 August 2018 on page 3, the Example Flowchart For A Single Acquisition Configuration, the second instruction down the flowchart refers to correctly using address OF but the example to the right of that uses erroneously, address OE.
  • Donald -
    You are right about the typos in the document for 0x0E vs 0x0F register reference in Figures 1-3. I had recently asked for those to be updated, so that is in process. Where the bits are discussed, i can sort of see what you mean, but we directly speak to the bits right after using the acronym LSB in a couple sections - i think this is what you are referring to and i think it is correct - but I will check with our documentation standards folks and get their ruling on this and update the areas where this is being done if they agree with using lsb or LSBit versus the way it is being done now.
  • Thanks Josh,
    What started this line of questioning are the least significant two bits in the least significant byte of the temperature register and the same in the humidity register. I'm getting data in both of those rather than 00's.

    I have setup the HDC2010 to use 11 bit resolution for temperature and for humidity but I am getting data all the way out to the least significant bit of temperature and humidity readings. Using 11 bit resolution I should have five "0's" in the least significant positions of both temperature and humidity registers. Eleven bits should use less power than 14 bit resolution.

    I'm guessing that when you write to the OF register to set the Trigger bit to start conversion you must also include setting the resolution bits (that are already set) or you will change the resolution, unless my guess is wrong.

    Any help on this subject will be greatly appreciated.

    Don Pierman
  • Don -
    You are correct, you must write the entire register (all the bits) when writing the 0x0F register (or any of the registers with this device) it is not possible to do individual bit-wise operations.

    So in your case, you would write 01010001, to represent: 

    temp resolution = 11 bit = 01

    humidity resolution = 11 bit = 01

    bit 3 is reserved, so = 0

    measurement config = temp and humidity = 00

    measurement trigger = start measurement = 1

    01010001b = 0x51h

  • Thanks Josh,

    That is what I did, and it is working great.

    Don