SNAS658C May 2015 – December 2015 HDC1050
PRODUCTION DATA.
The HDC1050 is a digital humidity sensor with integrated temperature sensor that provides excellent measurement accuracy at very low power. The sensing element of the HDC1050 is placed on the top part of the device. 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.
One of the key features of the HDC1050 is its low power consumption, which makes the device suitable in battery or power harvesting applications. In these applications the HDC1050 spends most of the time in sleep mode: with a typical 100nA of current consumption in sleep mode, the averaged current consumption is minimal. Its low consumption in measurement mode minimizes any self-heating.
The HDC1050 monitors the supply voltage level and indicates when the voltage supply of the HDC1050 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.
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 the 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 accelerate the temperature increase it is suggested to increase the measurement data rate.
The HDC1050 has two modes of operation: sleep mode and measurement mode. After power up, the HDC1050 is in sleep mode. In this mode, the HDC1050 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 HDC1050 moves from sleep mode to measurement mode. After completing the measurement the HDC1050 returns to sleep mode.
The HDC1050 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 HDC1050 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.
To communicate with the HDC1050, 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 I2C address of the HDC1050 is 1000000 (7-bit address).
To access a particular register on the HDC1050, write the desired register address 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 HDC1050 requires a value for the pointer register (refer to Figure 10).
When reading from the HDC1050, the last value stored in the pointer by a write operation is used to determine which register is accessed by a read operation. To change the pointer register for a read operation, a new value must be written to the pointer register. 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.
By default the HDC1050 will first perform a temperature measurement followed by a humidity measurement. On power-up, the HDC1050 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:
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:
Retrieve the completed measurement result from register address 0x00 or 0x01, as appropriate, as shown in Figure 11. 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 a 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.
The HDC1050 contains data registers that hold configuration information, temperature and humidity measurement results, and status information.
Pointer | Name | Reset value | Description |
---|---|---|---|
0x00 | Temperature | 0x0000 | Temperature measurement output |
0x01 | Humidity | 0x0000 | Relative Humidity measurement output |
0x02 | Configuration | 0x1000 | HDC1050 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 |
0xFE | Manufacturer ID | 0x5449 | ID of Texas Instruments |
0xFF | Device ID | 0x1050 | ID of HDC1050 device |
Registers addresses 0x03 to 0xFA are reserved and should not be written.
The HDC1050 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.
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. The accuracy of the result is related to the selected conversion time (refer to Electrical Characteristics). The temperature can be calculated from the output data with:
Name | Bits | Description | ||
---|---|---|---|---|
TEMPERATURE | [15:02] | Temperature | Temperature measurement (read only) | |
[01:00] | Reserved | Reserved, always 0 (read only) |
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:
Name | Bits | Description | ||
---|---|---|---|---|
HUMIDITY | [15:02] | Relative Humidity | Relative Humidity measurement (read only) | |
[01:00] | Reserved | Reserved, always 0 (read only) |
This register configures device functionality and returns status.
NAME | Bits | 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 |
These registers contain a 40bit unique serial number for each individual HDC1050.
Name | Bits | Description | ||
---|---|---|---|---|
SERIAL ID[40:25] | [15:0] | Serial Id bits | Device Serial Number bits from 40 to 25 (read only) |
Name | Bits | Description | ||
---|---|---|---|---|
SERIAL ID[24:9] | [15:0] | Serial Id bits | Device Serial Number bits from 24 to 9(read only) |
Name | Bits | Description | ||
---|---|---|---|---|
SERIAL ID[8:0] | [15:7] | Serial Id bits | Device Serial Number bits from 8 to 0 (read only) | |
[6:0] | Reserved | Reserved, always 0 (read only) |
This register contains a factory-programmable identification value that identifies this device as being manufactured by Texas Instruments. This register distinguishes this device from other devices that are on the same I2C bus. The manufacturer ID reads 0x5449.
Name | Bits | Description | ||
---|---|---|---|---|
MANUFACTURER ID | [15:0] | Manufacturer ID | 0x5449 | Texas instruments ID (read only) |
This register contains a factory-programmable identification value that identifies this device as a HDC1050. This register distinguishes this device from other devices that are on the same I2C bus. The Device ID for the HDC1050 is 0x1050.
Name | Bits | Description | ||
---|---|---|---|---|
DEVICE ID | [15:0] | Device ID | 0x1050 | HDC1050 Device ID (read only) |