ChibiOS 21.11.4
hts221.h File Reference

HTS221 MEMS interface module header. More...

#include "ex_hygrometer.h"
#include "ex_thermometer.h"

Go to the source code of this file.

Data Structures

struct  HTS221Config
 HTS221 configuration structure. More...
struct  HTS221VMT
 HTS221 virtual methods table. More...
struct  HTS221Driver
 HTS221 2-axis hygrometer/thermometer class. More...

Macros

#define hts221HygrometerGetAxesNumber(devp)
 Return the number of axes of the BaseHygrometer.
#define hts221HygrometerReadRaw(devp, axes)
 Retrieves raw data from the BaseHygrometer.
#define hts221HygrometerReadCooked(devp, axes)
 Retrieves cooked data from the BaseHygrometer.
#define hts221HygrometerSetBias(devp, bp)
 Set bias values for the BaseHygrometer.
#define hts221HygrometerResetBias(devp)
 Reset bias values for the BaseHygrometer.
#define hts221HygrometerSetSensitivity(devp, sp)
 Set sensitivity values for the BaseHygrometer.
#define hts221HygrometerResetSensitivity(devp)
 Reset sensitivity values for the BaseHygrometer.
#define hts221ThermometerGetAxesNumber(devp)
 Return the number of axes of the BaseThermometer.
#define hts221ThermometerReadRaw(devp, axes)
 Retrieves raw data from the BaseThermometer.
#define hts221ThermometerReadCooked(devp, axes)
 Retrieves cooked data from the BaseThermometer.
#define hts221ThermometerSetBias(devp, bp)
 Set bias values for the BaseThermometer.
#define hts221ThermometerResetBias(devp)
 Reset bias values for the BaseThermometer.
#define hts221ThermometerSetSensitivity(devp, sp)
 Set sensitivity values for the BaseThermometer.
#define hts221ThermometerResetSensitivity(devp)
 Reset sensitivity values for the BaseThermometer.
Version identification
#define EX_HTS221_VERSION   "1.1.2"
 HTS221 driver version string.
#define EX_HTS221_MAJOR   1
 HTS221 driver version major number.
#define EX_HTS221_MINOR   1
 HTS221 driver version minor number.
#define EX_HTS221_PATCH   2
 HTS221 driver version patch number.
#define HTS221_HYGRO_NUMBER_OF_AXES   1U
 HTS221 hygrometer subsystem characteristics.
#define HTS221_HYGRO_SENS   0.00390625f
#define HTS221_HYGRO_BIAS   0.0f
#define HTS221_THERMO_NUMBER_OF_AXES   1U
 HTS221 thermometer subsystem characteristics.
#define HTS221_THERMO_SENS   0.0015625f
#define HTS221_THERMO_BIAS   0.0f
HTS221 communication interfaces related bit masks
#define HTS221_DI_MASK   0xFF
#define HTS221_DI(n)
#define HTS221_AD_MASK   0x3F
#define HTS221_AD(n)
#define HTS221_MS   (1 << 6)
#define HTS221_RW   (1 << 7)
#define HTS221_SUB_MS   (1 << 7)
#define HTS221_SAD   0x5F
HTS221 register addresses
#define HTS221_AD_WHO_AM_I   0x0F
#define HTS221_AD_AV_CONF   0x10
#define HTS221_AD_CTRL_REG1   0x20
#define HTS221_AD_CTRL_REG2   0x21
#define HTS221_AD_CTRL_REG3   0x22
#define HTS221_AD_STATUS_REG   0x27
#define HTS221_AD_HUMIDITY_OUT_L   0x28
#define HTS221_AD_HUMIDITY_OUT_H   0x29
#define HTS221_AD_TEMP_OUT_L   0x2A
#define HTS221_AD_TEMP_OUT_H   0x2B
#define HTS221_AD_CALIB_0   0x30
#define HTS221_AD_CALIB_1   0x31
#define HTS221_AD_CALIB_2   0x32
#define HTS221_AD_CALIB_3   0x33
#define HTS221_AD_CALIB_4   0x34
#define HTS221_AD_CALIB_5   0x35
#define HTS221_AD_CALIB_6   0x36
#define HTS221_AD_CALIB_7   0x37
#define HTS221_AD_CALIB_8   0x38
#define HTS221_AD_CALIB_9   0x39
#define HTS221_AD_CALIB_A   0x3A
#define HTS221_AD_CALIB_B   0x3B
#define HTS221_AD_CALIB_C   0x3C
#define HTS221_AD_CALIB_D   0x3D
#define HTS221_AD_CALIB_E   0x3E
#define HTS221_AD_CALIB_F   0x3F
HTS221_CTRL_REG1 register bits definitions
#define HTS221_CTRL_REG1_MASK   0x87
#define HTS221_CTRL_REG1_ODR0   (1 << 0)
#define HTS221_CTRL_REG1_ODR1   (1 << 1)
#define HTS221_CTRL_REG1_BDU   (1 << 2)
#define HTS221_CTRL_REG1_PD   (1 << 7)
HTS221_CTRL_REG2 register bits definitions
#define HTS221_CTRL_REG2_MASK   0x83
#define HTS221_CTRL_REG2_ONE_SHOT   (1 << 0)
#define HTS221_CTRL_REG2_HEATER   (1 << 1)
#define HTS221_CTRL_REG2_BOOT   (1 << 7)
HTS221_CTRL_REG3 register bits definitions
#define HTS221_CTRL_REG3_MASK   0xC4
#define HTS221_CTRL_REG3_DRDY   (1 << 2)
#define HTS221_CTRL_REG3_PP_OD   (1 << 6)
#define HTS221_CTRL_REG3_INT_H_L   (1 << 7)
Configuration options
#define HTS221_USE_SPI   FALSE
 HTS221 SPI interface switch.
#define HTS221_SHARED_SPI   FALSE
 HTS221 shared SPI switch.
#define HTS221_USE_I2C   TRUE
 HTS221 I2C interface switch.
#define HTS221_SHARED_I2C   FALSE
 HTS221 shared I2C switch.
#define HTS221_USE_ADVANCED   FALSE
 HTS221 advanced configurations switch.

Functions

void hts221ObjectInit (HTS221Driver *devp)
 Initializes an instance.
void hts221Start (HTS221Driver *devp, const HTS221Config *config)
 Configures and activates HTS221 Complex Driver peripheral.
void hts221Stop (HTS221Driver *devp)
 Deactivates the HTS221 Complex Driver peripheral.

HTS221 data structures and types.

#define _hts221_methods_alone
 HTS221 specific methods.
#define _hts221_methods
 HTS221 specific methods with inherited ones.
#define _hts221_data
 HTS221Driver specific data.
enum  hts221_odr_t { HTS221_ODR_ONE_SHOT = 0x00 , HTS221_ODR_1HZ = 0x01 , HTS221_ODR_7HZ = 0x02 , HTS221_ODR_12P5HZ = 0x03 }
 HTS221 output data rate and bandwidth. More...
enum  hts221_avgh_t {
  HTS221_AVGH_4 = 0x00 , HTS221_AVGH_8 = 0x01 , HTS221_AVGH_16 = 0x02 , HTS221_AVGH_32 = 0x03 ,
  HTS221_AVGH_64 = 0x04 , HTS221_AVGH_128 = 0x05 , HTS221_AVGH_256 = 0x06 , HTS221_AVGH_512 = 0x07
}
 HTS221 humidity resolution. More...
enum  hts221_avgt_t {
  HTS221_AVGT_2 = 0x00 , HTS221_AVGT_4 = 0x08 , HTS221_AVGT_8 = 0x10 , HTS221_AVGT_16 = 0x18 ,
  HTS221_AVGT_32 = 0x20 , HTS221_AVGT_64 = 0x28 , HTS221_AVGT_128 = 0x30 , HTS221_AVGT_256 = 0x38
}
 HTS221 temperature resolution. More...
enum  hts221_bdu_t { HTS221_BDU_CONTINUOUS = 0x00 , HTS221_BDU_BLOCKED = 0x40 }
 HTS221 block data update. More...
enum  hts221_state_t { HTS221_UNINIT = 0 , HTS221_STOP = 1 , HTS221_READY = 2 }
 Driver state machine possible states. More...
typedef struct HTS221Driver HTS221Driver
 Structure representing a HTS221 driver.

Detailed Description

HTS221 MEMS interface module header.

Definition in file hts221.h.