EFM32 Happy Gecko Software Documentation  efm32hg-doc-5.1.2
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
ccs811.h File Reference

Detailed Description

Driver for the Cambridge CMOS Sensors CCS811 gas and indoor air quality sensor.

Version
5.1.1

License

Copyright 2016 Silicon Laboratories, Inc. http://www.silabs.com

This file is licensed under the Silicon Labs License Agreement. See the file "Silabs_License_Agreement.txt" for details. Before using this software for any purpose, you must agree to the terms of that agreement.

Definition in file ccs811.h.

#include <stdbool.h>
#include "ccs811_config.h"

Go to the source code of this file.

Macros

#define CCS811_ADDR_ALG_RESULT_DATA   0x02
 
#define CCS811_ADDR_APP_START   0xF4
 
#define CCS811_ADDR_ENV_DATA   0x05
 
#define CCS811_ADDR_ERR_ID   0xE0
 
#define CCS811_ADDR_FW_APP_VERSION   0x24
 
#define CCS811_ADDR_FW_BOOT_VERSION   0x23
 
#define CCS811_ADDR_FW_ERASE   0xF1
 
#define CCS811_ADDR_FW_PROGRAM   0xF2
 
#define CCS811_ADDR_FW_VERIFY   0xF3
 
#define CCS811_ADDR_HW_ID   0x20
 
#define CCS811_ADDR_HW_VERSION   0x21
 
#define CCS811_ADDR_MEASURE_MODE   0x01
 
#define CCS811_ADDR_NTC   0x06
 
#define CCS811_ADDR_RAW_DATA   0x03
 
#define CCS811_ADDR_STATUS   0x00
 
#define CCS811_ADDR_SW_RESET   0xFF
 
#define CCS811_ADDR_THRESHOLDS   0x10
 
#define CCS811_CONFIG_FIRMWARE_UPDATE   (0)
 
#define CCS811_CONFIG_I2C_BUS_ADDRESS   (0xB4)
 
#define CCS811_CONFIG_I2C_BUS_TIMEOUT   (1000)
 
#define CCS811_CONFIG_I2C_DEVICE   (I2C0)
 
#define CCS811_ERROR_APPLICATION_NOT_PRESENT   0x0001
 
#define CCS811_ERROR_DRIVER_NOT_INITIALIZED   0x0003
 
#define CCS811_ERROR_FIRMWARE_UPDATE_FAILED   0x0006
 
#define CCS811_ERROR_I2C_TRANSACTION_FAILED   0x0004
 
#define CCS811_ERROR_INIT_FAILED   0x0005
 
#define CCS811_ERROR_NOT_IN_APPLICATION_MODE   0x0002
 
#define CCS811_FIRMWARE_UPDATE   (CCS811_CONFIG_FIRMWARE_UPDATE)
 
#define CCS811_HW_ID   0x81
 
#define CCS811_I2C_DEVICE   (CCS811_CONFIG_I2C_DEVICE)
 
#define CCS811_I2C_DEVICE_BUS_ADDRESS   (CCS811_CONFIG_I2C_BUS_ADDRESS)
 
#define CCS811_I2C_DEVICE_BUS_TIMEOUT   (CCS811_CONFIG_I2C_BUS_TIMEOUT)
 
#define CCS811_MEASURE_MODE_DRIVE_MODE_10SEC   0x20
 
#define CCS811_MEASURE_MODE_DRIVE_MODE_1SEC   0x10
 
#define CCS811_MEASURE_MODE_DRIVE_MODE_60SEC   0x30
 
#define CCS811_MEASURE_MODE_DRIVE_MODE_IDLE   0x00
 
#define CCS811_MEASURE_MODE_DRIVE_MODE_RAW   0x40
 
#define CCS811_MEASURE_MODE_DRIVE_MODE_SHIFT   4
 
#define CCS811_MEASURE_MODE_INTERRUPT   0x08
 
#define CCS811_MEASURE_MODE_THRESH   0x04
 
#define CCS811_OK   0x0000
 

Functions

uint32_t CCS811_deInit (void)
 De-initializes the chip. More...
 
void CCS811_dumpRegisters (void)
 Dumps the registers of the CSS811. More...
 
uint32_t CCS811_getHardwareID (uint8_t *hardwareID)
 Reads Hardware ID from the CSS811 sensor. More...
 
uint32_t CCS811_getMeasurement (uint16_t *eco2, uint16_t *tvoc)
 Reads measurement data (eCO2 and TVOC) from the CSS811 sensor. More...
 
uint32_t CCS811_getRawData (uint16_t *current, uint16_t *rawData)
 Gets the latest readings from the sense resistor of the CSS811 sensor. More...
 
uint32_t CCS811_getStatus (uint8_t *status)
 Reads the status of the CSS811 sensor. More...
 
uint32_t CCS811_init (void)
 Initializes the chip and performs firmware upgrade if required. More...
 
bool CCS811_isDataAvailable (void)
 Checks if new measurement data available. More...
 
uint32_t CCS811_readMailbox (uint8_t id, uint8_t length, uint8_t *data)
 Reads data from a specific Mailbox address. More...
 
uint32_t CCS811_setEnvData (int32_t tempData, uint32_t rhData)
 Writes temperature and humidity values to the environmental data regs. More...
 
uint32_t CCS811_setMeasureMode (uint8_t measMode)
 Sets the measurement mode of the CSS811 sensor. More...
 
uint32_t CCS811_softwareReset (void)
 Performs software reset on the CCS811. More...
 
uint32_t CCS811_startApplication (void)
 Switches the CSS811 chip from boot to application mode. More...