SBOA631 August   2025 HDC1010 , HDC1080 , HDC2010 , HDC2021 , HDC2022 , HDC2080 , HDC3020 , HDC3020-Q1 , HDC3021 , HDC3021-Q1 , HDC3022 , HDC3022-Q1 , HDC3120 , HDC3120-Q1

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
  5. 2Digital I2C Interface Overview
    1. 2.1 Register Map Protocol
      1. 2.1.1 A Quick Overview of I2C Register Map Protocol
        1. 2.1.1.1 HDC1x
        2. 2.1.1.2 HDC2x
          1. 2.1.1.2.1 Interfacing in Trigger-On Demand Mode
          2. 2.1.1.2.2 Interfacing Using Auto Measurement Mode (AMM)
    2. 2.2 Command Protocol
      1. 2.2.1 HDC302x
        1. 2.2.1.1 Interfacing in Trigger-On Demand Mode (One-Shot)
        2. 2.2.1.2 Interfacing in Auto Measurement Mode (AMM)
        3.       How to Check Measurement Data With CRC
  6. 3Analog Interface Overview
    1. 3.1 HDC3120
  7. 4Summary
  8. 5Development Support and Documentation
    1. 5.1 Software Support
    2. 5.2 References

Interfacing in Auto Measurement Mode (AMM)

This section outlines how to configure the HDC302x for AMM and explains the key differences compared to Trigger-On Demand mode.

The main distinction between Auto Measurement Mode and Trigger-On Demand is if users intend to read from the HDC302x sensor in a fixed interval, Auto Measurement Mode would be more suitable for its programmable output interval. Figure 2-8 illustrates the command sequence for programming an HDC302x to output a single measurement every second with the lowest noise and highest repeatability.

 HDC302x Auto Measurement Mode (AMM) Communication StructureFigure 2-8 HDC302x Auto Measurement Mode (AMM) Communication Structure
// configure HDC302x for Auto Measurement Mode (1 measurement/sec)
// lowest noise, highest repeatability 
void deviceInit() {

    Wire.beginTransmission(0x44);
    Wire.write(0x21); //send MSB of command
    Wire.write(0x30); //command LSB
    Wire.endTransmission();
    delay(15); //wait 15ms before reading

}

After the device is configured for Auto Measurement Mode, and sufficient time has passed for a conversion to complete (one second in this case), the following function is used to request the stored measurement data:

// Helper function for requesting data when in Auto Measurement Mode
void requestData() {

    Wire.beginTransmission(DEVICE_ADDR); // initiate communication
    Wire.write(0xE0); // send MSB of read command
    Wire.write(0x00); // send LSB of read command
    Wire.endTransmission();

}

To continuously poll the device in AMM, you can issue the read command to retrieve the latest measurement data at the configured sampling rate (measurements per second).

A complete Arduino example demonstrating HDC302x operation in AMM – including device configuration, measurement polling, and data readout is available in the TI GitHub™ repository for environmental sensors here.