ChibiOS/EX  1.2.0
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)   hygrometerGetAxesNumber(&((devp)->hygro_if))
 Return the number of axes of the BaseHygrometer. More...
 
#define hts221HygrometerReadRaw(devp, axes)   hygrometerReadRaw(&((devp)->hygro_if), axes)
 Retrieves raw data from the BaseHygrometer. More...
 
#define hts221HygrometerReadCooked(devp, axes)   hygrometerReadCooked(&((devp)->hygro_if), axes)
 Retrieves cooked data from the BaseHygrometer. More...
 
#define hts221HygrometerSetBias(devp, bp)   hygrometerSetBias(&((devp)->hygro_if), bp)
 Set bias values for the BaseHygrometer. More...
 
#define hts221HygrometerResetBias(devp)   hygrometerResetBias(&((devp)->hygro_if))
 Reset bias values for the BaseHygrometer. More...
 
#define hts221HygrometerSetSensitivity(devp, sp)   hygrometerSetSensitivity(&((devp)->hygro_if), sp)
 Set sensitivity values for the BaseHygrometer. More...
 
#define hts221HygrometerResetSensitivity(devp)   hygrometerResetSensitivity(&((devp)->hygro_if))
 Reset sensitivity values for the BaseHygrometer. More...
 
#define hts221ThermometerGetAxesNumber(devp)   thermometerGetAxesNumber(&((devp)->thermo_if))
 Return the number of axes of the BaseThermometer. More...
 
#define hts221ThermometerReadRaw(devp, axes)   thermometerReadRaw(&((devp)->thermo_if), axes)
 Retrieves raw data from the BaseThermometer. More...
 
#define hts221ThermometerReadCooked(devp, axes)   thermometerReadCooked(&((devp)->thermo_if), axes)
 Retrieves cooked data from the BaseThermometer. More...
 
#define hts221ThermometerSetBias(devp, bp)   thermometerSetBias(&((devp)->thermo_if), bp)
 Set bias values for the BaseThermometer. More...
 
#define hts221ThermometerResetBias(devp)   thermometerResetBias(&((devp)->thermo_if))
 Reset bias values for the BaseThermometer. More...
 
#define hts221ThermometerSetSensitivity(devp, sp)   thermometerSetSensitivity(&((devp)->thermo_if), sp)
 Set sensitivity values for the BaseThermometer. More...
 
#define hts221ThermometerResetSensitivity(devp)   thermometerResetSensitivity(&((devp)->thermo_if))
 Reset sensitivity values for the BaseThermometer. More...
 
Version identification
#define EX_HTS221_VERSION   "1.1.2"
 HTS221 driver version string. More...
 
#define EX_HTS221_MAJOR   1
 HTS221 driver version major number. More...
 
#define EX_HTS221_MINOR   1
 HTS221 driver version minor number. More...
 
#define EX_HTS221_PATCH   2
 HTS221 driver version patch number. More...
 
#define HTS221_HYGRO_NUMBER_OF_AXES   1U
 HTS221 hygrometer subsystem characteristics. More...
 
#define HTS221_THERMO_NUMBER_OF_AXES   1U
 HTS221 thermometer subsystem characteristics. More...
 
HTS221 communication interfaces related bit masks
#define HTS221_DI_MASK   0xFF
 
#define HTS221_DI(n)   (1 << n)
 
#define HTS221_AD_MASK   0x3F
 
#define HTS221_AD(n)   (1 << 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. More...
 
#define HTS221_SHARED_SPI   FALSE
 HTS221 shared SPI switch. More...
 
#define HTS221_USE_I2C   TRUE
 HTS221 I2C interface switch. More...
 
#define HTS221_SHARED_I2C   FALSE
 HTS221 shared I2C switch. More...
 
#define HTS221_USE_ADVANCED   FALSE
 HTS221 advanced configurations switch. More...
 

Functions

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

HTS221 data structures and types.

#define _hts221_methods_alone
 HTS221 specific methods. More...
 
#define _hts221_methods
 HTS221 specific methods with inherited ones. More...
 
#define _hts221_data
 HTS221Driver specific data. More...
 
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. More...
 

Detailed Description

HTS221 MEMS interface module header.

Definition in file hts221.h.