KETCube
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
ketCube_bmeX80.h File Reference

This file contains definitions for the BMEx80 (BME280 and BME680) driver. More...

#include "ketCube_cfg.h"
#include "ketCube_common.h"

Go to the source code of this file.

Data Structures

struct  ketCube_bmeX80_moduleCfg_t
 KETCube module configuration. More...
 
struct  ketCube_bmeX80_Calib_t
 Calibration data structure. More...
 

Macros

#define KETCUBE_BMEX80_SENSOR_TYPE_BME280
 
#define BME_CONCAT_BYTES(msb, lsb)   (((uint16_t)msb << 8) | (uint16_t)lsb)
 Macro to combine two 8 bit data's to form a 16 bit data. More...
 
#define BME680_T2_LSB_REG   1
 Array Index to Field data mapping for Calibration Data of BME680. More...
 
#define BME680_T2_MSB_REG   2
 
#define BME680_T3_REG   3
 
#define BME680_P1_LSB_REG   5
 
#define BME680_P1_MSB_REG   6
 
#define BME680_P2_LSB_REG   7
 
#define BME680_P2_MSB_REG   8
 
#define BME680_P3_REG   9
 
#define BME680_P4_LSB_REG   11
 
#define BME680_P4_MSB_REG   12
 
#define BME680_P5_LSB_REG   13
 
#define BME680_P5_MSB_REG   14
 
#define BME680_P7_REG   15
 
#define BME680_P6_REG   16
 
#define BME680_P8_LSB_REG   19
 
#define BME680_P8_MSB_REG   20
 
#define BME680_P9_LSB_REG   21
 
#define BME680_P9_MSB_REG   22
 
#define BME680_P10_REG   23
 
#define BME680_H2_MSB_REG   25
 
#define BME680_H2_LSB_REG   26
 
#define BME680_H1_LSB_REG   26
 
#define BME680_H1_MSB_REG   27
 
#define BME680_H3_REG   28
 
#define BME680_H4_REG   29
 
#define BME680_H5_REG   30
 
#define BME680_H6_REG   31
 
#define BME680_H7_REG   32
 
#define BME680_T1_LSB_REG   33
 
#define BME680_T1_MSB_REG   34
 
#define BME680_GH2_LSB_REG   35
 
#define BME680_GH2_MSB_REG   36
 
#define BME680_GH1_REG   37
 
#define BME680_GH3_REG   38
 
#define KETCUBE_BMEX80_I2C_ADDRESS   (uint8_t) (0x76 << 1) /* SDO pin LOW */
 I2C address. More...
 
#define KETCUBE_BMEX80_CALIB_2_LENGTH   16
 
#define KETCUBE_BMEX80_CHIP_ID   0x60
 
#define KETCUBE_BMEX80_CALIB_1_LENGTH   26
 
#define KETCUBE_BMEX80_MEASURING_SHIFT   3
 
#define KETCUBE_BMEX80_CHIP_ID_REG   0xD0
 
#define KETCUBE_BMEX80_CALIB_2_FIRST_REG   0xE1
 
#define KETCUBE_BMEX80_HUMIDITY_REG   0XFD
 
#define KETCUBE_BMEX80_TEMPERATURE_REG   0XFA
 
#define KETCUBE_BMEX80_PRESSURE_REG   0XF7
 
#define KETCUBE_BMEX80_CTRL_MEAS_REG   0XF4
 
#define KETCUBE_BMEX80_STATUS_REG   0XF3
 
#define KETCUBE_BMEX80_CTRL_HUM_REG   0XF2
 
#define KETCUBE_BMEX80_CALIB_1_FIRST_REG   0x88
 

Typedefs

typedef struct ketCube_bmeX80_moduleCfg_t ketCube_bmeX80_moduleCfg_t
 KETCube module configuration. More...
 

Enumerations

enum  ketCube_bmeX80_OS_H_t {
  KETCUBE_BMEX80_OS_H_X0 = (uint8_t) 0x00, KETCUBE_BMEX80_OS_H_X1 = (uint8_t) 0x01, KETCUBE_BMEX80_OS_H_X2 = (uint8_t) 0x02, KETCUBE_BMEX80_OS_H_X4 = (uint8_t) 0x03,
  KETCUBE_BMEX80_OS_H_X8 = (uint8_t) 0x04, KETCUBE_BMEX80_OS_H_X16 = (uint8_t) 0x05
}
 Relative humidity oversampling. More...
 
enum  ketCube_bmeX80_OS_T_t {
  KETCUBE_BMEX80_OS_T_X0 = (uint8_t) 0x00, KETCUBE_BMEX80_OS_T_X1 = (uint8_t) 0x01, KETCUBE_BMEX80_OS_T_X2 = (uint8_t) 0x02, KETCUBE_BMEX80_OS_T_X4 = (uint8_t) 0x03,
  KETCUBE_BMEX80_OS_T_X8 = (uint8_t) 0x04, KETCUBE_BMEX80_OS_T_X16 = (uint8_t) 0x05
}
 Temperature oversampling. More...
 
enum  ketCube_bmeX80_OS_P_t {
  KETCUBE_BMEX80_OS_P_X0 = (uint8_t) 0x00, KETCUBE_BMEX80_OS_P_X1 = (uint8_t) 0x01, KETCUBE_BMEX80_OS_P_X2 = (uint8_t) 0x02, KETCUBE_BMEX80_OS_P_X4 = (uint8_t) 0x03,
  KETCUBE_BMEX80_OS_P_X8 = (uint8_t) 0x04, KETCUBE_BMEX80_OS_P_X16 = (uint8_t) 0x05
}
 Pressure oversampling. More...
 

Functions

ketCube_cfg_ModError_t ketCube_bmeX80_Init (ketCube_InterModMsg_t ***msg)
 
ketCube_cfg_ModError_t ketCube_bmeX80_UnInit (void)
 
ketCube_cfg_ModError_t ketCube_bmeX80_ReadData (uint8_t *buffer, uint8_t *len)
 

Variables

ketCube_bmeX80_moduleCfg_t ketCube_bmeX80_moduleCfg
 

Detailed Description

This file contains definitions for the BMEx80 (BME280 and BME680) driver.

Author
Krystof Vanek
Version
alpha
Date
2018-09-20
Attention

© Copyright (c) 2018 University of West Bohemia in Pilsen All rights reserved.

Developed by: The SmartCampus Team Department of Technologies and Measurement www.smartcampus.cz | www.zcu.cz

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal with the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE SOFTWARE.

Macro Definition Documentation

◆ KETCUBE_BMEX80_SENSOR_TYPE_BME280

#define KETCUBE_BMEX80_SENSOR_TYPE_BME280