Go to the documentation of this file.
35 #include "mikrosdk_version.h"
38 #if mikroSDK_GET_VERSION < 20800ul
39 #include "rcu_delays.h"
45 #include "drv_digital_out.h"
46 #include "drv_digital_in.h"
47 #include "drv_i2c_master.h"
70 #define APC1SENSOR_ADDRESS_CMD 0x40
71 #define APC1SENSOR_ADDRESS_RESPONSE 0x47
72 #define APC1SENSOR_CMD_SET_MEAS_MODE 0xE1
73 #define APC1SENSOR_CMD_REQ_MEASUREMENT 0xE2
74 #define APC1SENSOR_CMD_SET_MODE 0xE4
75 #define APC1SENSOR_CMD_GET_INFO 0xE9
93 #define APC1SENSOR_HEADER_0 0x42
94 #define APC1SENSOR_HEADER_1 0x4D
100 #define APC1SENSOR_MEASUREMENT_PASSIVE 0x00
101 #define APC1SENSOR_MEASUREMENT_ACTIVE 0x01
107 #define APC1SENSOR_MODE_IDLE 0x00
108 #define APC1SENSOR_MODE_MEASUREMENT 0x01
109 #define APC1SENSOR_MODE_RESET 0x0F
115 #define APC1SENSOR_OPMODE_NORMAL 0
116 #define APC1SENSOR_OPMODE_DEEP_SLEEP 1
117 #define APC1SENSOR_OPMODE_RESET 2
124 #define APC1SENSOR_TX_DRV_BUFFER_SIZE 100
125 #define APC1SENSOR_RX_DRV_BUFFER_SIZE 300
132 #define APC1SENSOR_DEVICE_ADDRESS 0x12
150 #define APC1SENSOR_MAP_MIKROBUS( cfg, mikrobus ) \
151 cfg.tx_pin = MIKROBUS( mikrobus, MIKROBUS_TX ); \
152 cfg.rx_pin = MIKROBUS( mikrobus, MIKROBUS_RX ); \
153 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
154 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
155 cfg.set = MIKROBUS( mikrobus, MIKROBUS_CS ); \
156 cfg.rst = MIKROBUS( mikrobus, MIKROBUS_RST );
262 uint8_t module_name[ 7 ];
263 uint8_t serial_num[ 8 ];
264 uint8_t fw_version[ 2 ];
457 #endif // APC1SENSOR_H
digital_out_t rst
Definition: apc1sensor.h:179
float t_comp
Definition: apc1sensor.h:242
err_t apc1sensor_read_info(apc1sensor_t *ctx, apc1sensor_info_t *info)
APC1 Sensor read info function.
#define APC1SENSOR_RX_DRV_BUFFER_SIZE
Definition: apc1sensor.h:125
void apc1sensor_drv_interface_sel(apc1sensor_cfg_t *cfg, apc1sensor_drv_t drv_sel)
APC1 Sensor driver interface setup function.
pin_name_t tx_pin
Definition: apc1sensor.h:204
#define APC1SENSOR_TX_DRV_BUFFER_SIZE
APC1 Sensor driver buffer size.
Definition: apc1sensor.h:124
@ APC1SENSOR_DRV_SEL_UART
Definition: apc1sensor.h:168
uint16_t pm1_0
Definition: apc1sensor.h:228
@ APC1SENSOR_ERROR
Definition: apc1sensor.h:275
APC1 Sensor Demo context object.
Definition: apc1sensor.h:177
uint8_t slave_address
Definition: apc1sensor.h:184
uint32_t rs1
Definition: apc1sensor.h:247
bool uart_blocking
Definition: apc1sensor.h:213
uart_stop_bits_t stop_bit
Definition: apc1sensor.h:216
pin_name_t rx_pin
Definition: apc1sensor.h:203
err_t apc1sensor_read_measurement(apc1sensor_t *ctx, apc1sensor_measurement_t *measurement)
APC1 Sensor read measurement function.
pin_name_t set
Definition: apc1sensor.h:206
uint16_t pm10
Definition: apc1sensor.h:230
err_t apc1sensor_set_idle_mode(apc1sensor_t *ctx)
APC1 Sensor set idle mode function.
APC1 Sensor Demo measurement data object.
Definition: apc1sensor.h:227
uint32_t rs3
Definition: apc1sensor.h:249
@ APC1SENSOR_DRV_SEL_I2C
Definition: apc1sensor.h:167
uint16_t eco2
Definition: apc1sensor.h:241
uint32_t rs2
Definition: apc1sensor.h:248
uint8_t error_code
Definition: apc1sensor.h:252
uint16_t pm2_5
Definition: apc1sensor.h:229
uint16_t pm10_air
Definition: apc1sensor.h:233
uint32_t rs0
Definition: apc1sensor.h:246
void apc1sensor_reset_device(apc1sensor_t *ctx)
APC1 Sensor reset device function.
err_t apc1sensor_request_meas(apc1sensor_t *ctx)
APC1 Sensor request meas function.
uint16_t tvoc
Definition: apc1sensor.h:240
APC1 Sensor Demo configuration object.
Definition: apc1sensor.h:200
pin_name_t rst
Definition: apc1sensor.h:207
uart_parity_t parity_bit
Definition: apc1sensor.h:215
err_t apc1sensor_default_cfg(apc1sensor_t *ctx)
APC1 Sensor default configuration function.
apc1sensor_drv_t
APC1 Sensor Click driver selector.
Definition: apc1sensor.h:166
uint16_t part_over_0_5um
Definition: apc1sensor.h:235
apc1sensor_drv_t drv_sel
Definition: apc1sensor.h:189
void apc1sensor_cfg_setup(apc1sensor_cfg_t *cfg)
APC1 Sensor configuration object setup function.
pin_name_t sda
Definition: apc1sensor.h:202
digital_out_t set
Definition: apc1sensor.h:178
err_t apc1sensor_set_meas_mode(apc1sensor_t *ctx, uint8_t mode)
APC1 Sensor set meas mode function.
uint16_t pm2_5_air
Definition: apc1sensor.h:232
float rh_comp
Definition: apc1sensor.h:243
uint16_t part_over_10um
Definition: apc1sensor.h:239
err_t apc1sensor_sw_reset(apc1sensor_t *ctx)
APC1 Sensor sw reset function.
apc1sensor_drv_t drv_sel
Definition: apc1sensor.h:218
uart_t uart
Definition: apc1sensor.h:182
uint8_t version
Definition: apc1sensor.h:251
uint8_t meas_mode
Definition: apc1sensor.h:191
uart_data_bits_t data_bit
Definition: apc1sensor.h:214
uint32_t baud_rate
Definition: apc1sensor.h:212
uint16_t part_over_2_5um
Definition: apc1sensor.h:237
APC1 Sensor Demo module type, ID and firmware version object.
Definition: apc1sensor.h:261
void apc1sensor_set_opmode(apc1sensor_t *ctx, uint8_t opmode)
APC1 Sensor set opmode function.
uint16_t part_over_0_3um
Definition: apc1sensor.h:234
uint32_t i2c_speed
Definition: apc1sensor.h:209
err_t apc1sensor_start_measurement(apc1sensor_t *ctx)
APC1 Sensor start measurement function.
@ APC1SENSOR_OK
Definition: apc1sensor.h:274
i2c_master_t i2c
Definition: apc1sensor.h:181
err_t apc1sensor_init(apc1sensor_t *ctx, apc1sensor_cfg_t *cfg)
APC1 Sensor initialization function.
apc1sensor_return_value_t
APC1 Sensor Demo return value data.
Definition: apc1sensor.h:273
uint16_t part_over_1_0um
Definition: apc1sensor.h:236
uint8_t i2c_address
Definition: apc1sensor.h:210
uint16_t pm1_0_air
Definition: apc1sensor.h:231
float rh_raw
Definition: apc1sensor.h:245
float t_raw
Definition: apc1sensor.h:244
pin_name_t scl
Definition: apc1sensor.h:201
uint8_t aqi
Definition: apc1sensor.h:250
uint16_t part_over_5_0um
Definition: apc1sensor.h:238