KETCube
ketCube_hdcX080.h
Go to the documentation of this file.
1 
51 /* Define to prevent recursive inclusion -------------------------------------*/
52 #ifndef __KETCUBE_HDCX080_H
53 #define __KETCUBE_HDCX080_H
54 
55 #include "ketCube_cfg.h"
56 #include "ketCube_common.h"
57 
73 typedef enum {
78 
85  uint8_t RFU[6];
87 
89 
90 /* ============================================ */
91 
95 #define KETCUBE_HDCX080_I2C_TIMEOUT 0x1000
98 /* ============================================ */
99 
103 typedef enum {
104  KETCUBE_HDCX080_HTR_ON = (uint8_t) 0x01,
105  KETCUBE_HDCX080_HTR_OFF = (uint8_t) 0x00
107 
111 typedef enum {
112  KETCUBE_HDCX080_RST_RESET = (uint8_t) 0x01,
113  KETCUBE_HDCX080_RST_NONE = (uint8_t) 0x00
115 
119 typedef enum {
120  KETCUBE_HDCX080_HRES_8BIT = (uint8_t) 0x02,
121  KETCUBE_HDCX080_HRES_11BIT = (uint8_t) 0x01,
122  KETCUBE_HDCX080_HRES_14BIT = (uint8_t) 0x00
124 
125 /* ============================================ */
126 
127 
137 #define KETCUBE_HDC1080_I2C_ADDRESS (uint8_t) (0x40 << 1)
138 
142 typedef enum {
152 
156 typedef enum {
157  KETCUBE_HDC1080_TRES_11BIT = (uint8_t) 0x01,
158  KETCUBE_HDC1080_TRES_14BIT = (uint8_t) 0x00
160 
164 typedef enum {
165  KETCUBE_HDC1080_AQ_SEPARATE = (uint8_t) 0x00,
166  KETCUBE_HDC1080_AQ_SEQ = (uint8_t) 0x01
168 
172 typedef enum {
173  KETCUBE_HDC1080_BAT_HIGH = (uint8_t) 0x00,
174  KETCUBE_HDC1080_BAT_LOW = (uint8_t) 0x01
176 
180 typedef enum {
181  KETCUBE_HDC1080_PUSHPULL = (uint8_t) 0x00,
182  KETCUBE_HDC1080_OPENDRAIN = (uint8_t) 0x40
184 
185 #define IS_KETCUBE_HDC1080_OutputType(MODE) ((MODE == KETCUBE_HDC1080_PUSHPULL) || (MODE == KETCUBE_HDC1080_OPENDRAIN))
186 
190 typedef enum {
191  KETCUBE_HDC1080_HIGH_LVL = (uint8_t) 0x00,
192  KETCUBE_HDC1080_LOW_LVL = (uint8_t) 0x80
194 
195 #define IS_KETCUBE_HDC1080_DrdyLevelType(MODE) ((MODE == KETCUBE_HDC1080_HIGH_LVL) || (MODE == KETCUBE_HDC1080_LOW_LVL))
196 
197 
198 
202 #ifdef __ARMCC_VERSION
203 #pragma anon_unions
204 #endif
205 typedef struct {
206  uint8_t rawData;
207  struct {
210  ketCube_hdc1080_Bat_t BatteryStatus:1; //< read-only field
213  uint8_t RFU:1;
215  };
217 
222 /* ============================================ */
223 
232 #define KETCUBE_HDC2080_I2C_ADDRESS (uint8_t) (0x40 << 1)
233 
234 
238 typedef enum {
243 
244  /* Registers UNUSED in this module */
245 
248 
249  /* Registers UNUSED in this module */
250 
256 
260 typedef enum {
261  KETCUBE_HDC2080_TRES_9BIT = (uint8_t) 0x02,
262  KETCUBE_HDC2080_TRES_11BIT = (uint8_t) 0x01,
263  KETCUBE_HDC2080_TRES_14BIT = (uint8_t) 0x00
265 
270 typedef enum {
271  KETCUBE_HDC2080_AMM_DIS = 0, //< disabled
272  KETCUBE_HDC2080_AMM_0_008 = 1, //< 1/120 Hz
273  KETCUBE_HDC2080_AMM_0_016 = 2, //< 1/60 Hz
274  KETCUBE_HDC2080_AMM_0_1 = 3, //< 0.1 Hz
275  KETCUBE_HDC2080_AMM_0_2 = 4, //< 0.2 Hz
280 
284 typedef enum {
285  KETCUBE_HDC2080_INTEN_HZ = (uint8_t) 0x0,
286  KETCUBE_HDC2080_INTEN_EN = (uint8_t) 0x1
288 
292 typedef enum {
293  KETCUBE_HDC2080_INTPOL_LOW = (uint8_t) 0x0,
294  KETCUBE_HDC2080_INTPOL_HIGH = (uint8_t) 0x1
296 
300 typedef enum {
301  KETCUBE_HDC2080_INTPOL_LS = (uint8_t) 0x0,
302  KETCUBE_HDC2080_INTPOL_CMP = (uint8_t) 0x1
304 
308 typedef enum {
309  KETCUBE_HDC2080_MEASCFG_RHT = (uint8_t) 0x0,
310  KETCUBE_HDC2080_MEASCFG_T = (uint8_t) 0x1
312 
316 typedef enum {
318  KETCUBE_HDC2080_MEASTRIG_START = (uint8_t) 0x1
320 
324 #ifdef __ARMCC_VERSION
325 #pragma anon_unions
326 #endif
327 typedef struct {
328  struct {
335  };
336  struct {
339  uint8_t RFU:1;
342  };
344 
362  *** msg);
365  uint8_t * len);
366 
375 #endif /* __KETCUBE_HDCX080_H */
KETCUBE_HDC2080_TRES_14BIT
@ KETCUBE_HDC2080_TRES_14BIT
Definition: ketCube_hdcX080.h:263
ketCube_hdc2080_Init_t::SoftwareReset
ketCube_hdcX080_Rst_t SoftwareReset
Definition: ketCube_hdcX080.h:334
KETCUBE_HDCX080_HRES_11BIT
@ KETCUBE_HDCX080_HRES_11BIT
Definition: ketCube_hdcX080.h:121
ketCube_hdc2080_MeasCfg_t
ketCube_hdc2080_MeasCfg_t
Measurement Configuration.
Definition: ketCube_hdcX080.h:308
KETCUBE_HDCX080_TYPE_AUTODETECT
@ KETCUBE_HDCX080_TYPE_AUTODETECT
Definition: ketCube_hdcX080.h:74
KETCUBE_HDC2080_TEMPERATURE_REG_L
@ KETCUBE_HDC2080_TEMPERATURE_REG_L
Definition: ketCube_hdcX080.h:239
ketCube_hdc2080_Init_t::Heater
ketCube_hdcX080_Htr_t Heater
Definition: ketCube_hdcX080.h:332
ketCube_hdcX080_Init
ketCube_cfg_ModError_t ketCube_hdcX080_Init(ketCube_InterModMsg_t ***msg)
ketCube_hdc1080_Init_t::BatteryStatus
ketCube_hdc1080_Bat_t BatteryStatus
Definition: ketCube_hdcX080.h:210
ketCube_hdc2080_IntEn_t
ketCube_hdc2080_IntEn_t
DRDY/INT_EN mode.
Definition: ketCube_hdcX080.h:284
KETCUBE_HDC1080_TRES_14BIT
@ KETCUBE_HDC1080_TRES_14BIT
Definition: ketCube_hdcX080.h:158
ketCube_hdc1080_OutputType_t
ketCube_hdc1080_OutputType_t
Push-pull/Open Drain selection on DRDY pin.
Definition: ketCube_hdcX080.h:180
KETCUBE_HDC2080_AMM_1_0
@ KETCUBE_HDC2080_AMM_1_0
Definition: ketCube_hdcX080.h:276
ketCube_InterModMsg_t
KETCube inter-module message.
Definition: ketCube_cfg.h:116
ketCube_hdc2080_Init_t::RFU
uint8_t RFU
Definition: ketCube_hdcX080.h:339
KETCUBE_HDC1080_LOW_LVL
@ KETCUBE_HDC1080_LOW_LVL
Definition: ketCube_hdcX080.h:192
ketCube_hdc1080_Bat_t
ketCube_hdc1080_Bat_t
Battery voltage.
Definition: ketCube_hdcX080.h:172
KETCUBE_HDC1080_OPENDRAIN
@ KETCUBE_HDC1080_OPENDRAIN
Definition: ketCube_hdcX080.h:182
KETCUBE_HDC2080_CFG_REG
@ KETCUBE_HDC2080_CFG_REG
Definition: ketCube_hdcX080.h:246
ketCube_hdc2080_TRes_t
ketCube_hdc2080_TRes_t
Temperature resolution configuration.
Definition: ketCube_hdcX080.h:260
KETCUBE_HDC1080_CONFIGURATION_REG
@ KETCUBE_HDC1080_CONFIGURATION_REG
Definition: ketCube_hdcX080.h:145
ketCube_hdc1080_Init_t::rawData
uint8_t rawData
Definition: ketCube_hdcX080.h:206
KETCUBE_HDC2080_TEMPERATURE_REG_H
@ KETCUBE_HDC2080_TEMPERATURE_REG_H
Definition: ketCube_hdcX080.h:240
ketCube_hdc2080_AMM_t
ketCube_hdc2080_AMM_t
HDC2080 Auto Measurement Mode (AMM)
Definition: ketCube_hdcX080.h:270
ketCube_hdc1080_Aq_t
ketCube_hdc1080_Aq_t
AQ mode.
Definition: ketCube_hdcX080.h:164
KETCUBE_HDC2080_MEASTRIG_START
@ KETCUBE_HDC2080_MEASTRIG_START
Definition: ketCube_hdcX080.h:318
ketCube_hdc2080_IntMode_t
ketCube_hdc2080_IntMode_t
Interrupt mode.
Definition: ketCube_hdcX080.h:300
ketCube_hdc1080_Init_t::ModeOfAcquisition
ketCube_hdc1080_Aq_t ModeOfAcquisition
Definition: ketCube_hdcX080.h:211
KETCUBE_HDC1080_HIGH_LVL
@ KETCUBE_HDC1080_HIGH_LVL
Definition: ketCube_hdcX080.h:191
KETCUBE_HDC2080_HUMIDITY_REG_L
@ KETCUBE_HDC2080_HUMIDITY_REG_L
Definition: ketCube_hdcX080.h:241
KETCUBE_HDC2080_AMM_5_0
@ KETCUBE_HDC2080_AMM_5_0
Definition: ketCube_hdcX080.h:278
KETCUBE_HDC2080_INTEN_EN
@ KETCUBE_HDC2080_INTEN_EN
Definition: ketCube_hdcX080.h:286
ketCube_cfg_ModuleCfgByte_t
KETCube module configuration byte.
Definition: ketCube_cfg.h:147
ketCube_hdc2080_Init_t::TemperatureMeasurementResolution
ketCube_hdc2080_TRes_t TemperatureMeasurementResolution
Definition: ketCube_hdcX080.h:341
ketCube_hdc1080_Init_t::RFU
uint8_t RFU
Definition: ketCube_hdcX080.h:213
KETCUBE_HDC2080_INTPOL_LOW
@ KETCUBE_HDC2080_INTPOL_LOW
Definition: ketCube_hdcX080.h:293
KETCUBE_HDCX080_RST_NONE
@ KETCUBE_HDCX080_RST_NONE
Definition: ketCube_hdcX080.h:113
ketCube_hdcX080_moduleCfg_t
KETCube module configuration.
Definition: ketCube_hdcX080.h:82
KETCUBE_HDCX080_HTR_ON
@ KETCUBE_HDCX080_HTR_ON
Definition: ketCube_hdcX080.h:104
ketCube_hdc1080_DrdyLevel_t
ketCube_hdc1080_DrdyLevel_t
Active level of DRDY pin.
Definition: ketCube_hdcX080.h:190
KETCUBE_HDC1080_AQ_SEQ
@ KETCUBE_HDC1080_AQ_SEQ
Definition: ketCube_hdcX080.h:166
ketCube_hdc1080_Init_t
HDC1080 Init structure definition.
Definition: ketCube_hdcX080.h:205
KETCUBE_HDC2080_MEASCFG_RHT
@ KETCUBE_HDC2080_MEASCFG_RHT
Definition: ketCube_hdcX080.h:309
ketCube_hdc2080_IntPol_t
ketCube_hdc2080_IntPol_t
Interrupt polarity.
Definition: ketCube_hdcX080.h:292
KETCUBE_HDC1080_BAT_LOW
@ KETCUBE_HDC1080_BAT_LOW
Definition: ketCube_hdcX080.h:174
KETCUBE_HDC1080_BAT_HIGH
@ KETCUBE_HDC1080_BAT_HIGH
Definition: ketCube_hdcX080.h:173
ketCube_hdcX080_sensType_t
ketCube_hdcX080_sensType_t
List of sensors supported by this driver.
Definition: ketCube_hdcX080.h:73
KETCUBE_HDC2080_AMM_0_2
@ KETCUBE_HDC2080_AMM_0_2
Definition: ketCube_hdcX080.h:275
KETCUBE_HDCX080_HRES_14BIT
@ KETCUBE_HDCX080_HRES_14BIT
Definition: ketCube_hdcX080.h:122
ketCube_hdc2080_Init_t::HumidityMeasurementResolution
ketCube_hdcX080_HRes_t HumidityMeasurementResolution
Definition: ketCube_hdcX080.h:340
KETCUBE_HDC2080_HUMIDITY_REG_H
@ KETCUBE_HDC2080_HUMIDITY_REG_H
Definition: ketCube_hdcX080.h:242
KETCUBE_HDC1080_SERIAL_ID_MID_REG
@ KETCUBE_HDC1080_SERIAL_ID_MID_REG
Definition: ketCube_hdcX080.h:149
ketCube_hdc2080_Init_t::IntEn
ketCube_hdc2080_IntEn_t IntEn
Definition: ketCube_hdcX080.h:331
ketCube_hdc1080_Init_t::SoftwareReset
ketCube_hdcX080_Rst_t SoftwareReset
Definition: ketCube_hdcX080.h:214
ketCube_hdcX080_ReadData
ketCube_cfg_ModError_t ketCube_hdcX080_ReadData(uint8_t *buffer, uint8_t *len)
KETCUBE_HDCX080_TYPE_HDC1080
@ KETCUBE_HDCX080_TYPE_HDC1080
Definition: ketCube_hdcX080.h:75
KETCUBE_HDC2080_MEASCFG_T
@ KETCUBE_HDC2080_MEASCFG_T
Definition: ketCube_hdcX080.h:310
KETCUBE_HDC1080_DEVICE_ID_REG
@ KETCUBE_HDC1080_DEVICE_ID_REG
Definition: ketCube_hdcX080.h:147
ketCube_hdcX080_moduleCfg_t::coreCfg
ketCube_cfg_ModuleCfgByte_t coreCfg
Definition: ketCube_hdcX080.h:83
KETCUBE_HDCX080_HTR_OFF
@ KETCUBE_HDCX080_HTR_OFF
Definition: ketCube_hdcX080.h:105
KETCUBE_HDC2080_INTPOL_CMP
@ KETCUBE_HDC2080_INTPOL_CMP
Definition: ketCube_hdcX080.h:302
ketCube_hdc1080_TRes_t
ketCube_hdc1080_TRes_t
Temperature resolution configuration.
Definition: ketCube_hdcX080.h:156
ketCube_hdcX080_moduleCfg
ketCube_hdcX080_moduleCfg_t ketCube_hdcX080_moduleCfg
KETCUBE_HDCX080_RST_RESET
@ KETCUBE_HDCX080_RST_RESET
Definition: ketCube_hdcX080.h:112
KETCUBE_HDC2080_MANUFACTURER_ID_REG_H
@ KETCUBE_HDC2080_MANUFACTURER_ID_REG_H
Definition: ketCube_hdcX080.h:252
KETCUBE_HDC2080_AMM_2_0
@ KETCUBE_HDC2080_AMM_2_0
Definition: ketCube_hdcX080.h:277
ketCube_hdc1080_RegMap_t
ketCube_hdc1080_RegMap_t
HDC1080 register File.
Definition: ketCube_hdcX080.h:142
ketCube_hdc1080_Init_t::Heater
ketCube_hdcX080_Htr_t Heater
Definition: ketCube_hdcX080.h:212
ketCube_common.h
KETCube common definitions.
KETCUBE_HDC1080_TEMPERATURE_REG
@ KETCUBE_HDC1080_TEMPERATURE_REG
Definition: ketCube_hdcX080.h:143
ketCube_hdc2080_Init_t::IntMode
ketCube_hdc2080_IntMode_t IntMode
Definition: ketCube_hdcX080.h:329
KETCUBE_HDC2080_INTEN_HZ
@ KETCUBE_HDC2080_INTEN_HZ
Definition: ketCube_hdcX080.h:285
KETCUBE_HDC2080_AMM_0_008
@ KETCUBE_HDC2080_AMM_0_008
Definition: ketCube_hdcX080.h:272
ketCube_hdc2080_Init_t::IntPol
ketCube_hdc2080_IntPol_t IntPol
Definition: ketCube_hdcX080.h:330
KETCUBE_HDC1080_TRES_11BIT
@ KETCUBE_HDC1080_TRES_11BIT
Definition: ketCube_hdcX080.h:157
KETCUBE_HDC2080_INTPOL_LS
@ KETCUBE_HDC2080_INTPOL_LS
Definition: ketCube_hdcX080.h:301
ketCube_hdc1080_Init_t::HumidityMeasurementResolution
ketCube_hdcX080_HRes_t HumidityMeasurementResolution
Definition: ketCube_hdcX080.h:208
KETCUBE_HDC2080_TRES_9BIT
@ KETCUBE_HDC2080_TRES_9BIT
Definition: ketCube_hdcX080.h:261
KETCUBE_HDC2080_TRES_11BIT
@ KETCUBE_HDC2080_TRES_11BIT
Definition: ketCube_hdcX080.h:262
KETCUBE_HDC1080_PUSHPULL
@ KETCUBE_HDC1080_PUSHPULL
Definition: ketCube_hdcX080.h:181
KETCUBE_HDC2080_INTPOL_HIGH
@ KETCUBE_HDC2080_INTPOL_HIGH
Definition: ketCube_hdcX080.h:294
ketCube_hdcX080_moduleCfg_t::sensType
ketCube_hdcX080_sensType_t sensType
Definition: ketCube_hdcX080.h:84
KETCUBE_HDC2080_AMM_DIS
@ KETCUBE_HDC2080_AMM_DIS
Definition: ketCube_hdcX080.h:271
KETCUBE_HDC2080_MEASCFG_REG
@ KETCUBE_HDC2080_MEASCFG_REG
Definition: ketCube_hdcX080.h:247
ketCube_hdcX080_moduleCfg_t::RFU
uint8_t RFU[6]
Definition: ketCube_hdcX080.h:85
KETCUBE_HDC1080_HUMIDITY_REG
@ KETCUBE_HDC1080_HUMIDITY_REG
Definition: ketCube_hdcX080.h:144
ketCube_hdcX080_Rst_t
ketCube_hdcX080_Rst_t
Reset.
Definition: ketCube_hdcX080.h:111
ketCube_hdc1080_Init_t::TemperatureMeasurementResolution
ketCube_hdc1080_TRes_t TemperatureMeasurementResolution
Definition: ketCube_hdcX080.h:209
KETCUBE_HDC2080_MANUFACTURER_ID_REG_L
@ KETCUBE_HDC2080_MANUFACTURER_ID_REG_L
Definition: ketCube_hdcX080.h:251
ketCube_hdc2080_Init_t::MeasCfg
ketCube_hdc2080_MeasCfg_t MeasCfg
Definition: ketCube_hdcX080.h:338
KETCUBE_HDC2080_DEVICE_ID_REG_L
@ KETCUBE_HDC2080_DEVICE_ID_REG_L
Definition: ketCube_hdcX080.h:253
KETCUBE_HDC2080_DEVICE_ID_REG_H
@ KETCUBE_HDC2080_DEVICE_ID_REG_H
Definition: ketCube_hdcX080.h:254
ketCube_hdcX080_moduleCfg_t
struct ketCube_hdcX080_moduleCfg_t ketCube_hdcX080_moduleCfg_t
KETCube module configuration.
ketCube_cfg.h
This file contains definitions for the KETCube configuration.
KETCUBE_HDC1080_MANUFACTURER_ID_REG
@ KETCUBE_HDC1080_MANUFACTURER_ID_REG
Definition: ketCube_hdcX080.h:146
KETCUBE_HDC2080_AMM_0_016
@ KETCUBE_HDC2080_AMM_0_016
Definition: ketCube_hdcX080.h:273
ketCube_hdc2080_Init_t::AutoMeasMode
ketCube_hdc2080_AMM_t AutoMeasMode
Definition: ketCube_hdcX080.h:333
ketCube_hdc2080_Init_t::MeasTrig
ketCube_hdc2080_MeasTrig_t MeasTrig
Definition: ketCube_hdcX080.h:337
KETCUBE_HDC1080_SERIAL_ID_FIRST_REG
@ KETCUBE_HDC1080_SERIAL_ID_FIRST_REG
Definition: ketCube_hdcX080.h:148
KETCUBE_HDC1080_SERIAL_ID_LAST_REG
@ KETCUBE_HDC1080_SERIAL_ID_LAST_REG
Definition: ketCube_hdcX080.h:150
KETCUBE_HDC2080_AMM_0_1
@ KETCUBE_HDC2080_AMM_0_1
Definition: ketCube_hdcX080.h:274
ketCube_hdcX080_HRes_t
ketCube_hdcX080_HRes_t
RH resolution configuration.
Definition: ketCube_hdcX080.h:119
ketCube_hdcX080_Htr_t
ketCube_hdcX080_Htr_t
Heater On/Off.
Definition: ketCube_hdcX080.h:103
ketCube_cfg_ModError_t
ketCube_cfg_ModError_t
Error code type.
Definition: ketCube_cfg.h:100
KETCUBE_HDC2080_MEASTRIG_NONE
@ KETCUBE_HDC2080_MEASTRIG_NONE
Definition: ketCube_hdcX080.h:317
KETCUBE_HDCX080_TYPE_HDC2080
@ KETCUBE_HDCX080_TYPE_HDC2080
Definition: ketCube_hdcX080.h:76
ketCube_hdc2080_RegMap_t
ketCube_hdc2080_RegMap_t
HDC2080 Register File.
Definition: ketCube_hdcX080.h:238
ketCube_hdcX080_UnInit
ketCube_cfg_ModError_t ketCube_hdcX080_UnInit(void)
KETCUBE_HDC1080_AQ_SEPARATE
@ KETCUBE_HDC1080_AQ_SEPARATE
Definition: ketCube_hdcX080.h:165
KETCUBE_HDCX080_HRES_8BIT
@ KETCUBE_HDCX080_HRES_8BIT
Definition: ketCube_hdcX080.h:120
ketCube_hdc2080_MeasTrig_t
ketCube_hdc2080_MeasTrig_t
Measurement Trigger.
Definition: ketCube_hdcX080.h:316
ketCube_hdc2080_Init_t
HDC2080 Init structure definition.
Definition: ketCube_hdcX080.h:327