SNAS649B October   2014  – December 2015 HDC1008

PRODUCTION DATA.  

  1. Features
  2. Applications
  3. Description
  4. Typical Application
  5. Revision History
  6. Pin Configuration and Functions
  7. Specifications
    1. 7.1 Absolute Maximum Ratings
    2. 7.2 ESD Ratings
    3. 7.3 Recommended Operating Conditions
    4. 7.4 Thermal Information
    5. 7.5 Electrical Characteristics
    6. 7.6 I2C Interface Electrical Characteristics
    7. 7.7 I2C Interface Timing Requirements
    8. 7.8 Typical Characteristics
  8. Detailed Description
    1. 8.1 Overview
    2. 8.2 Functional Block Diagram
    3. 8.3 Feature Description
      1. 8.3.1 Power Consumption
      2. 8.3.2 Voltage Supply Monitoring
      3. 8.3.3 Heater
    4. 8.4 Device Functional Modes
    5. 8.5 Programming
      1. 8.5.1 I2C Serial Bus Address Configuration
      2. 8.5.2 I2C Interface
        1. 8.5.2.1 Serial Bus Address
        2. 8.5.2.2 Read and Write Operations
        3. 8.5.2.3 Device Measurement Configuration
    6. 8.6 Register Map
      1. 8.6.1 Temperature Register
      2. 8.6.2 Humidity Register
      3. 8.6.3 Configuration Register
      4. 8.6.4 Serial Number Registers
  9. Application and Implementation
    1. 9.1 Application Information
    2. 9.2 Typical Application
      1. 9.2.1 Design Requirements
      2. 9.2.2 Detailed Design Procedure
      3. 9.2.3 Application Curve
    3. 9.3 Do's and Don'ts
      1. 9.3.1 Soldering
      2. 9.3.2 Hydration Procedure
      3. 9.3.3 Chemical Exposure
  10. 10Power Supply Recommendations
  11. 11Layout
    1. 11.1 Layout Guidelines
      1. 11.1.1 Surface Mount
      2. 11.1.2 Stencil Printing Process
    2. 11.2 Layout Example
  12. 12Device and Documentation Support
    1. 12.1 Documentation Support
      1. 12.1.1 Related Documentation
    2. 12.2 Community Resources
    3. 12.3 Trademarks
    4. 12.4 Electrostatic Discharge Caution
    5. 12.5 Glossary
  13. 13Mechanical, Packaging, and Orderable Information

Package Options

Mechanical Data (Package|Pins)
Thermal pad, mechanical data (Package|Pins)
Orderable Information

8 Detailed Description

8.1 Overview

The HDC1008 is a digital humidity sensor with integrated temperature sensor that provides excellent measurement accuracy at very low power and long term. The sensing element of the HDC1008 is placed on the bottom part of the device, which makes the HDC1008 more robust against dirt, dust, and other environmental contaminants. Measurement results can be read out through the I2C compatible interface. Resolution is based on the measurement time and can be 8, 11, or 14 bits for humidity; 11 or 14 bits for temperature.

8.2 Functional Block Diagram

HDC1008 BD.gif

8.3 Feature Description

8.3.1 Power Consumption

One of the key features of the HDC1008 is its low power consumption, which makes the device suitable in battery or power harvesting applications. In these applications the HDC1008 spends most of the time in sleep mode; with a typical 110nA of current consumption in sleep mode, the averaged current consumption is minimal. Moreover its low consumption in measurement mode minimizes any self-heating.

8.3.2 Voltage Supply Monitoring

The HDC1008 monitors the supply voltage level and indicates when the voltage supply of the HDC1008 is less than 2.8V. This information is useful in battery-powered systems in order to inform the user to replace the battery. This is reported in the BTST field (register address 0x02:bit[11]) which is updated after POR and after each measurement request.

8.3.3 Heater

The heater is an integrated resistive element that can be used to test the sensor or to drive condensation off the sensor. The heater can be activated using HEAT, bit 13 in Configuration Register. The heater helps in reducing the accumulated offset after long exposure at high humidity conditions.

Once enabled the heater is turned on only in the measurement mode. To have a reasonable increase of the temperature it is suggested to increase the measurement data rate.

8.4 Device Functional Modes

The HDC1008 has two modes of operation: sleep mode and measurement mode. After power up, the HDC1008 is in sleep mode. In this mode, the HDC1008 waits for I2C input including commands to configure the conversion times, read the status of the battery, trigger a measurement, and read measurements. Once it receives a command to trigger a measurement, the HDC1008 moves from sleep mode to measurement mode. In measurement mode, the HDC1008 acquires the configured measurements and sets the DRDYn line low when the measurement is complete. After completing the measurement and setting DRDYn low, the HDC1008 returns to sleep mode.

8.5 Programming

8.5.1 I2C Serial Bus Address Configuration

To communicate with the HDC1008, the master must first address slave devices via a slave address byte. The slave address byte consists of seven address bits and a direction bit that indicates the intent to execute a read or write operation. The HDC1008 features two address pins to allow up to 4 devices to be addressed on a single bus. Table 1 describes the pin logic levels used to properly connect up to 4 devices. The state of the ADR0 and ADR1 pins is sampled on every bus communication and should be set before any activity on the interface occurs. The address pin is read at the start of each communication event.

Table 1. HDC1008 ADDRESS

ADR1 ADR0 ADDRESS (7-bit address)
0 0 1000000
0 1 1000001
1 0 1000010
1 1 1000011

8.5.2 I2C Interface

The HDC1008 operates only as a slave device on the I2C bus interface. It is not allowed to have on the I2C bus multiple devices with the same address. Connection to the bus is made via the open-drain I/O lines, SDA, and SCL. The SDA and SCL pins feature integrated spike-suppression filters and Schmitt triggers to minimize the effects of input spikes and bus noise. After power-up, the sensor needs at most 15 ms, to be ready to start RH and temperature measurement. During this power-up time the HDC1008 is only able to provide the content of the serial number registers (0xFB to 0xFF) if requested. After the power-up the sensor is in the sleep mode until a communication or measurement is performed. All data bytes are transmitted MSB first.

8.5.2.1 Serial Bus Address

To communicate with the HDC1008, the master must first address slave devices via a slave address byte. The slave address byte consists of seven address bits, and a direction bit that indicates the intent to execute a read or write operation.

8.5.2.2 Read and Write Operations

Access a particular register on the HDC1008 by writing the appropriate value to the Pointer Register. The pointer value is the first byte transferred after the slave address byte with the R/W bit low. Every write operation to the HDC1008 requires a value for the pointer register (refer to Figure 10).

When reading from the HDC1008, the last value stored in the pointer by a write operation is used to determine which register is read by a read operation. To change the pointer register for a read operation, a new value must be written to the pointer. This transaction is accomplished by issuing the slave address byte with the R/W bit low, followed by the pointer byte. No additional data is required (refer to Figure 11).

The master can then generate a START condition and send the slave address byte with the R/W bit high to initiate the read command. Note that register bytes are sent MSB first, followed by the LSB. A write operation in a read-only register such as (DEVICE ID, MANUFACTURER ID, SERIAL ID) returns a NACK after each data byte; read/write operation to unused address returns a NACK after the pointer; a read/write operation with incorrect I2C address returns a NACK after the I2C address.

HDC1008 WRTCONF.gif Figure 10. Writing Frame (Configuration Register)
HDC1008 RDCONF.gif Figure 11. Reading Frame (Configuration Register)

8.5.2.3 Device Measurement Configuration

By default the HDC1008 will first perform a temperature measurement followed by a humidity measurement. On power-up, the HDC1008 enters a low power sleep mode and is not actively measuring. Use the following steps to perform a measurement of both temperature and humidity and then retrieve the results:

  1. Configure the acquisition parameters in register address 0x02:
    1. Set the acquisition mode to measure both temperature and humidity by setting Bit[12] to 1.
    2. Set the desired temperature measurement resolution:
      • Set Bit[10] to 0 for 14 bit resolution.
      • Set Bit[10] to 1 for 11 bit resolution.
    3. Set the desired humidity measurement resolution:
      • Set Bit[9:8] to 00 for 14 bit resolution.
      • Set Bit[9:8] to 01 for 11 bit resolution.
      • Set Bit[9:8] to 10 for 8 bit resolution.
  2. Trigger the measurements by executing a pointer write transaction with the address pointer set to 0x00. Refer to Figure 12.
  3. Wait for the measurements to complete, based on the conversion time (refer to Electrical Characteristics for the conversion time). Alternatively, wait for the assertion of DRDYn.
  4. Read the output data:
  5. Read the temperature data from register address 0x00, followed by the humidity data from register address 0x01 in a single transaction as shown in Figure 14. A read operation will return a NACK if the contents of the registers have not been updated as shown in Figure 13.

To perform another acquisition with the same measurement configuration simply repeat steps 2 through 4.

If only a humidity or temperature measurement is desired, the following steps will perform a measurement and retrieve the result:

  1. Configure the acquisition parameters in register address 0x02:
    1. Set the acquisition mode to independently measure temperature or humidity by setting Bit[12] to 0.
    2. For a temperature measurement, set the desired temperature measurement resolution:
      • Set Bit[10] to 0 for 14 bit resolution.
      • Set Bit[10] to 1 for 11 bit resolution.
    3. For a humidity measurement, set the desired humidity measurement resolution:
      • Set Bit[9:8] to 00 for 14 bit resolution.
      • Set Bit[9:8] to 01 for 11 bit resolution.
      • Set Bit[9:8] to 10 for 8 bit resolution.
  2. Trigger the measurement by executing a pointer write transaction. Refer to Figure 12.
    • Set the address pointer to 0x00 for a temperature measurement.
    • Set the address pointer to 0x01 for a humidity measurement.
  3. Wait for the measurement to complete, based on the conversion time (refer to Electrical Characteristics for the conversion time). Alternatively, wait for the assertion of DRDYn.
  4. Read the output data:
  5. Retrieve the completed measurement result from register address 0x00 or 0x01, as appropriate, as shown in Figure 10. A read operation will return a NACK if the measurement result is not yet available, as shown in Figure 13.

To perform another acquisition with the same measurement configuration repeat steps 2 through 4.

It is possible to read the output registers (addresses 0x00 and 0x01) during an Temperature or Relative Humidity measurement without affecting any ongoing measurement. Note that a write to address 0x00 or 0x01 while a measurement is ongoing will abort the ongoing measurement. If the newest acquired measurement is not read, DRDYn stays low until the next measurement is triggered.

HDC1008 TRIGRT.gif Figure 12. Trigger Humidity/Temperature Measurement
HDC1008 DTNR.gif Figure 13. Read Humidity/Temperature Measurement (Data Not Ready)
HDC1008 DTRHT.gif Figure 14. Read Humidity and Temperature Measurement (Data Ready)

8.6 Register Map

The HDC1008 contains data registers that hold configuration information, temperature and humidity measurement results, and status information.

Table 2. Register Map

POINTER NAME RESET VALUE DESCRIPTION
0x00 Temperature 0x0000 Temperature measurement output
0x01 Humidity 0x0000 Relative Humidity measurement output
0x02 Configuration 0x1000 HDC1008 configuration and status
0xFB Serial ID device dependent First 2 bytes of the serial ID of the part
0xFC Serial ID device dependent Mid 2 bytes of the serial ID of the part
0xFD Serial ID device dependent Last byte bit of the serial ID of the part

Registers from 0x03 to 0xFA are reserved and should not be written.

The HDC1008 has an 8-bit pointer used to address a given data register. The pointer identifies which of the data registers should respond to a read or write command on the two-wire bus. This register is set with every write command. A write command must be issued to set the proper value in the pointer before executing a read command. The power-on reset (POR) value of the pointer is 0x00, which selects a temperature measurement.

8.6.1 Temperature Register

The temperature register is a 16-bit result register in binary format (the 2 LSBs D1 and D0 are always 0). The result of the acquisition is always a 14 bit value, while the accuracy is related to the selected conversion time (refer to Electrical Characteristics). The temperature can be calculated from the output data with:

Equation 1. HDC1008 EQTEMP_2.gif

Table 3. Temperature Register Description (0x00)

NAME REGISTERS DESCRIPTION
TEMPERATURE [15:02] Temperature Temperature measurement (read only)
[01:00] Reserved Reserved, always 0 (read only)

8.6.2 Humidity Register

The humidity register is a 16-bit result register in binary format (the 2 LSBs D1 and D0 are always 0). The result of the acquisition is always a 14 bit value, while the accuracy is related to the selected conversion time (refer to Electrical Characteristics). The humidity can be calculated from the output data with:

Equation 2. HDC1008 EQRH_2.gif

Table 4. Humidity Register Description (0x01)

NAME REGISTERS DESCRIPTION
HUMIDITY [15:02] Relative Humidity Relative Humidity measurement (read only)
[01:00] Reserved Reserved, always 0 (read only)

8.6.3 Configuration Register

This register configures device functionality and returns status.

Table 5. Configuration Register Description (0x02)

NAME REGISTERS DESCRIPTION
RST [15] Software reset bit 0 Normal Operation, this bit self clears
1 Software Reset
Reserved [14] Reserved 0 Reserved, must be 0
HEAT [13] Heater 0 Heater Disabled
1 Heater Enabled
MODE [12] Mode of acquisition 0 Temperature or Humidity is acquired.
1 Temperature and Humidity are acquired in sequence, Temperature first.
BTST [11] Battery Status 0 Battery voltage > 2.8V (read only)
1 Battery voltage < 2.8V (read only)
TRES [10] Temperature Measurement Resolution 0 14 bit
1 11 bit
HRES [9:8] Humidity Measurement Resolution 00 14 bit
01 11 bit
10 8 bit
Reserved [7:0] Reserved 0 Reserved, must be 0

8.6.4 Serial Number Registers

These registers contain a 40bit unique serial number for each individual HDC1008.

Table 6. Serial Number Register Description (0xFB)

NAME REGISTERS DESCRIPTION
SERIAL ID[39:24] [15:0] Serial Id bits Device Serial Number bits from 39 to 24 (read only)

Table 7. Serial Number Register Description (0xFC)

NAME REGISTERS DESCRIPTION
SERIAL ID[23:8] [15:0] Serial Id bits Device Serial Number bits from 23 to 8 (read only)

Table 8. Serial Number Register Description (0xFD)

NAME REGISTERS DESCRIPTION
SERIAL ID[7:0] [15:7] Serial ID bits Device Serial Number bits from 7 to 0 (read only)
[6:0] Reserved Reserved, always 0 (read only)