35#include "drv_digital_out.h"
36#include "drv_digital_in.h"
37#include "drv_i2c_master.h"
59#define CAPSENSE2_REG_MAIN_STATUS_CONTROL 0x00
60#define CAPSENSE2_REG_BUTTON_STATUS_1 0x03
61#define CAPSENSE2_REG_BUTTON_STATUS_2 0x04
62#define CAPSENSE2_REG_BUILD_REVISION 0x05
63#define CAPSENSE2_REG_SLIDER_POSITION_DATA 0x06
64#define CAPSENSE2_REG_VENDOR_ID 0x08
65#define CAPSENSE2_REG_VOLUMETRIC_STEP 0x09
66#define CAPSENSE2_REG_NOISE_STATUS_1 0x0A
67#define CAPSENSE2_REG_NOISE_STATUS_2 0x0B
68#define CAPSENSE2_REG_LID_CLOSURE_STATUS_1 0x0C
69#define CAPSENSE2_REG_LID_CLOSURE_STATUS_2 0x0D
70#define CAPSENSE2_REG_GPIO_STATUS 0x0E
71#define CAPSENSE2_REG_GROUP_STATUS 0x0F
72#define CAPSENSE2_REG_SENSOR_1_DELTA_COUNT 0x10
73#define CAPSENSE2_REG_SENSOR_2_DELTA_COUNT 0x11
74#define CAPSENSE2_REG_SENSOR_3_DELTA_COUNT 0x12
75#define CAPSENSE2_REG_SENSOR_4_DELTA_COUNT 0x13
76#define CAPSENSE2_REG_SENSOR_5_DELTA_COUNT 0x14
77#define CAPSENSE2_REG_SENSOR_6_DELTA_COUNT 0x15
78#define CAPSENSE2_REG_SENSOR_7_DELTA_COUNT 0x16
79#define CAPSENSE2_REG_SENSOR_8_DELTA_COUNT 0x17
80#define CAPSENSE2_REG_SENSOR_9_DELTA_COUNT 0x18
81#define CAPSENSE2_REG_SENSOR_10_DELTA_COUNT 0x19
82#define CAPSENSE2_REG_SENSOR_11_DELTA_COUNT 0x1A
83#define CAPSENSE2_REG_SENSOR_12_DELTA_COUNT 0x1B
84#define CAPSENSE2_REG_SENSOR_13_DELTA_COUNT 0x1C
85#define CAPSENSE2_REG_SENSOR_14_DELTA_COUNT 0x1D
86#define CAPSENSE2_REG_QUEUE_CONTROL 0x1E
87#define CAPSENSE2_REG_DATA_SENSITIVITY 0x1F
88#define CAPSENSE2_REG_CONFIGURATION 0x20
89#define CAPSENSE2_REG_SENSOR_ENABLE 0x21
90#define CAPSENSE2_REG_BUTTON_CONFIGURATION 0x22
91#define CAPSENSE2_REG_GROUP_CONFIGURATION_1 0x23
92#define CAPSENSE2_REG_GROUP_CONFIGURATION_2 0x24
93#define CAPSENSE2_REG_CALIBRATION_ENABLE 0x25
94#define CAPSENSE2_REG_CALIBRATION_ACTIVATE 0x26
95#define CAPSENSE2_REG_INTERRUPT_ENABLE_1 0x27
96#define CAPSENSE2_REG_INTERRUPT_ENABLE_2 0x28
97#define CAPSENSE2_REG_SLEEP_CHANNEL_CONTROL 0x29
98#define CAPSENSE2_REG_MULTIPLE_PRESS_CONFIGURATION 0x2A
99#define CAPSENSE2_REG_LID_CLOSURE_CONFIGURATION 0x2B
100#define CAPSENSE2_REG_LID_CLOSURE_QUEUE_CONTROL 0x2C
101#define CAPSENSE2_REG_LID_CLOSURE_PATTERN_1 0x2D
102#define CAPSENSE2_REG_LID_CLOSURE_PATTERN_2 0x2E
103#define CAPSENSE2_REG_RECALIBRATION_CONFIGURATION 0x2F
104#define CAPSENSE2_REG_SENSOR_1_THRESHOLD 0x30
105#define CAPSENSE2_REG_SENSOR_2_THRESHOLD 0x31
106#define CAPSENSE2_REG_SENSOR_3_THRESHOLD 0x32
107#define CAPSENSE2_REG_SENSOR_4_THRESHOLD 0x33
108#define CAPSENSE2_REG_SENSOR_5_THRESHOLD 0x34
109#define CAPSENSE2_REG_SENSOR_6_THRESHOLD 0x35
110#define CAPSENSE2_REG_SENSOR_7_THRESHOLD 0x36
111#define CAPSENSE2_REG_GROUP_THRESHOLD 0x37
112#define CAPSENSE2_REG_BUTTON_NOISE_THRESHOLD_1 0x38
113#define CAPSENSE2_REG_BUTTON_NOISE_THRESHOLD_2 0x39
114#define CAPSENSE2_REG_LID_CLOSURE_THRESHOLD_1 0x3A
115#define CAPSENSE2_REG_LID_CLOSURE_THRESHOLD_2 0x3B
116#define CAPSENSE2_REG_LID_CLOSURE_THRESHOLD_3 0x3C
117#define CAPSENSE2_REG_LID_CLOSURE_THRESHOLD_4 0x3D
118#define CAPSENSE2_REG_SLIDER_VELOCITY_CONFIGURATION 0x3E
119#define CAPSENSE2_REG_DIGITAL_RECALIBRATION 0x3F
120#define CAPSENSE2_REG_CONFIGURATION_2 0x40
121#define CAPSENSE2_REG_GROUPED_CHANNEL_SENSOR_ENABLE 0x41
122#define CAPSENSE2_REG_PROXIMITY_CONTROL 0x42
123#define CAPSENSE2_REG_GROUPED_SENSOR_CALIB_ACTIVATE 0x46
124#define CAPSENSE2_REG_SAMPLING_CHANNEL_SELECT 0x4E
125#define CAPSENSE2_REG_SAMPLING_CONFIGURATION 0x4F
126#define CAPSENSE2_REG_SENSOR_1_BASE_COUNT 0x50
127#define CAPSENSE2_REG_SENSOR_2_BASE_COUNT 0x51
128#define CAPSENSE2_REG_SENSOR_3_BASE_COUNT 0x52
129#define CAPSENSE2_REG_SENSOR_4_BASE_COUNT 0x53
130#define CAPSENSE2_REG_SENSOR_5_BASE_COUNT 0x54
131#define CAPSENSE2_REG_SENSOR_6_BASE_COUNT 0x55
132#define CAPSENSE2_REG_SENSOR_7_BASE_COUNT 0x56
133#define CAPSENSE2_REG_SENSOR_8_BASE_COUNT 0x57
134#define CAPSENSE2_REG_SENSOR_9_BASE_COUNT 0x58
135#define CAPSENSE2_REG_SENSOR_10_BASE_COUNT 0x59
136#define CAPSENSE2_REG_SENSOR_11_BASE_COUNT 0x5A
137#define CAPSENSE2_REG_SENSOR_12_BASE_COUNT 0x5B
138#define CAPSENSE2_REG_SENSOR_13_BASE_COUNT 0x5C
139#define CAPSENSE2_REG_SENSOR_14_BASE_COUNT 0x5D
140#define CAPSENSE2_REG_LED_STATUS_1 0x60
141#define CAPSENSE2_REG_LED_STATUS_2 0x61
142#define CAPSENSE2_REG_LED_DIRECTION 0x70
143#define CAPSENSE2_REG_LED_OUTPUT_TYPE 0x71
144#define CAPSENSE2_REG_GPIO_INPUT 0x72
145#define CAPSENSE2_REG_LED_OUTPUT_CONTROL_1 0x73
146#define CAPSENSE2_REG_LED_OUTPUT_CONTROL_2 0x74
147#define CAPSENSE2_REG_LED_POLARITY_1 0x75
148#define CAPSENSE2_REG_LED_POLARITY_2 0x76
149#define CAPSENSE2_REG_LINKED_LED_TRANSITION_CONTROL_1 0x77
150#define CAPSENSE2_REG_LINKED_LED_TRANSITION_CONTROL_2 0x78
151#define CAPSENSE2_REG_LED_MIRROR_CONTROL_1 0x79
152#define CAPSENSE2_REG_LED_MIRROR_CONTROL_2 0x7A
153#define CAPSENSE2_REG_SENSOR_LED_LINKING 0x80
154#define CAPSENSE2_REG_LED_BEHAVIOR_1 0x81
155#define CAPSENSE2_REG_LED_BEHAVIOR_2 0x82
156#define CAPSENSE2_REG_LED_BEHAVIOR_3 0x83
157#define CAPSENSE2_REG_LED_PULSE_1_PERIOD 0x84
158#define CAPSENSE2_REG_LED_PULSE_2_PERIOD 0x85
159#define CAPSENSE2_REG_LED_BREATHE_PERIOD 0x86
160#define CAPSENSE2_REG_LED_CONFIGURATION 0x88
161#define CAPSENSE2_REG_LED_PULSE_1_DUTY_CYCLE 0x90
162#define CAPSENSE2_REG_LED_PULSE_2_DUTY_CYCLE 0x91
163#define CAPSENSE2_REG_LED_BREATHE_DUTY_CYCLE 0x92
164#define CAPSENSE2_REG_LED_DIRECT_DUTY_CYCLE 0x93
165#define CAPSENSE2_REG_LED_DIRECT_RAMP_RATES 0x94
166#define CAPSENSE2_REG_LED_OFF_DELAY 0x95
167#define CAPSENSE2_REG_SENSOR_1_CALIBRATION 0xB1
168#define CAPSENSE2_REG_SENSOR_2_CALIBRATION 0xB2
169#define CAPSENSE2_REG_SENSOR_3_CALIBRATION 0xB3
170#define CAPSENSE2_REG_SENSOR_4_CALIBRATION 0xB4
171#define CAPSENSE2_REG_SENSOR_5_CALIBRATION 0xB5
172#define CAPSENSE2_REG_SENSOR_6_CALIBRATION 0xB6
173#define CAPSENSE2_REG_SENSOR_7_CALIBRATION 0xB7
174#define CAPSENSE2_REG_SENSOR_8_CALIBRATION 0xB8
175#define CAPSENSE2_REG_SENSOR_9_CALIBRATION 0xB9
176#define CAPSENSE2_REG_SENSOR_10_CALIBRATION 0xBA
177#define CAPSENSE2_REG_SENSOR_11_CALIBRATION 0xBB
178#define CAPSENSE2_REG_SENSOR_12_CALIBRATION 0xBC
179#define CAPSENSE2_REG_SENSOR_13_CALIBRATION 0xBD
180#define CAPSENSE2_REG_SENSOR_14_CALIBRATION 0xBE
181#define CAPSENSE2_REG_PRODUCT_ID 0xFD
182#define CAPSENSE2_REG_MANUFACTURER_ID 0xFE
183#define CAPSENSE2_REG_REVISION 0xFF
201#define CAPSENSE2_MAIN_STATUS_CONTROL_DEACT 0x40
202#define CAPSENSE2_MAIN_STATUS_CONTROL_SLEEP 0x20
203#define CAPSENSE2_MAIN_STATUS_CONTROL_DSLEEP 0x10
204#define CAPSENSE2_MAIN_STATUS_CONTROL_PWR_LED 0x02
205#define CAPSENSE2_MAIN_STATUS_CONTROL_INT 0x01
211#define CAPSENSE2_BUTTON_STATUS_1_UP_SLIDER 0x80
212#define CAPSENSE2_BUTTON_STATUS_1_DOWN_SLIDER 0x40
213#define CAPSENSE2_BUTTON_STATUS_1_BUTTON_2 0x02
214#define CAPSENSE2_BUTTON_STATUS_1_BUTTON_1 0x01
220#define CAPSENSE2_MULTIPLE_PRESS_CONFIG_ENABLE 0x80
221#define CAPSENSE2_MULTIPLE_PRESS_CONFIG_BUTTONS_1 0x00
222#define CAPSENSE2_MULTIPLE_PRESS_CONFIG_BUTTONS_2 0x04
223#define CAPSENSE2_MULTIPLE_PRESS_CONFIG_BUTTONS_3 0x08
224#define CAPSENSE2_MULTIPLE_PRESS_CONFIG_BUTTONS_4 0x0C
225#define CAPSENSE2_MULTIPLE_PRESS_CONFIG_GROUP_2 0x00
226#define CAPSENSE2_MULTIPLE_PRESS_CONFIG_GROUP_3 0x01
227#define CAPSENSE2_MULTIPLE_PRESS_CONFIG_GROUP_4 0x02
228#define CAPSENSE2_MULTIPLE_PRESS_CONFIG_GROUP_1 0x03
234#define CAPSENSE2_CONFIGURATION_TIMEOUT 0x80
235#define CAPSENSE2_CONFIGURATION_POS_VOL 0x40
236#define CAPSENSE2_CONFIGURATION_BLK_DIG_NOISE 0x20
237#define CAPSENSE2_CONFIGURATION_BLK_ANA_NOISE 0x10
238#define CAPSENSE2_CONFIGURATION_MAX_DUR_EN_B 0x08
239#define CAPSENSE2_CONFIGURATION_RPT_EN_B 0x04
240#define CAPSENSE2_CONFIGURATION_MAX_DUR_EN_G 0x02
241#define CAPSENSE2_CONFIGURATION_RPT_EN_G 0x01
247#define CAPSENSE2_SLIDER_VELOCITY_CONFIG_EXTRA_INT_EN 0x80
248#define CAPSENSE2_SLIDER_VELOCITY_CONFIG_MAX_INT_0 0x00
249#define CAPSENSE2_SLIDER_VELOCITY_CONFIG_MAX_INT_1 0x10
250#define CAPSENSE2_SLIDER_VELOCITY_CONFIG_MAX_INT_2 0x20
251#define CAPSENSE2_SLIDER_VELOCITY_CONFIG_MAX_INT_3 0x30
252#define CAPSENSE2_SLIDER_VELOCITY_CONFIG_MAX_INT_4 0x40
253#define CAPSENSE2_SLIDER_VELOCITY_CONFIG_MAX_INT_5 0x50
254#define CAPSENSE2_SLIDER_VELOCITY_CONFIG_MAX_INT_6 0x60
255#define CAPSENSE2_SLIDER_VELOCITY_CONFIG_MAX_INT_7 0x70
256#define CAPSENSE2_SLIDER_VELOCITY_CONFIG_SLIDE_TIME_350 0x00
257#define CAPSENSE2_SLIDER_VELOCITY_CONFIG_SLIDE_TIME_560 0x04
258#define CAPSENSE2_SLIDER_VELOCITY_CONFIG_SLIDE_TIME_770 0x08
259#define CAPSENSE2_SLIDER_VELOCITY_CONFIG_SLIDE_TIME_980 0x0C
265#define CAPSENSE2_LED_DIRECTION_OUTPUT_LED1 0x01
266#define CAPSENSE2_LED_DIRECTION_OUTPUT_LED2 0x02
267#define CAPSENSE2_LED_DIRECTION_OUTPUT_LED3 0x04
268#define CAPSENSE2_LED_DIRECTION_OUTPUT_LED4 0x08
269#define CAPSENSE2_LED_DIRECTION_OUTPUT_LED5 0x10
270#define CAPSENSE2_LED_DIRECTION_OUTPUT_LED6 0x20
271#define CAPSENSE2_LED_DIRECTION_OUTPUT_LED7 0x40
272#define CAPSENSE2_LED_DIRECTION_OUTPUT_LED8 0x80
278#define CAPSENSE2_SENSOR_LED_LINKING_CS1_LED1 0x01
279#define CAPSENSE2_SENSOR_LED_LINKING_CS2_LED2 0x02
280#define CAPSENSE2_SENSOR_LED_LINKING_CS3_LED3 0x04
281#define CAPSENSE2_SENSOR_LED_LINKING_CS4_LED4 0x08
282#define CAPSENSE2_SENSOR_LED_LINKING_CS5_LED5 0x10
283#define CAPSENSE2_SENSOR_LED_LINKING_CS6_LED6 0x20
284#define CAPSENSE2_SENSOR_LED_LINKING_CS7_LED7 0x40
285#define CAPSENSE2_SENSOR_LED_LINKING_UP_DOWN_LINK 0x80
291#define CAPSENSE2_VENDOR_ID 0x5D
292#define CAPSENSE2_MANUFACTURER_ID 0x5D
293#define CAPSENSE2_PRODUCT_ID 0x3A
300#define CAPSENSE2_SET_DEV_ADDR 0x28
318#define CAPSENSE2_MAP_MIKROBUS( cfg, mikrobus ) \
319 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
320 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
321 cfg.rst = MIKROBUS( mikrobus, MIKROBUS_RST ); \
322 cfg.alt = MIKROBUS( mikrobus, MIKROBUS_INT )
capsense2_return_value_t
CapSense 2 Click return value data.
Definition: capsense2.h:369
@ CAPSENSE2_ERROR
Definition: capsense2.h:371
@ CAPSENSE2_OK
Definition: capsense2.h:370
uint8_t capsense2_get_alert_pin(capsense2_t *ctx)
CapSense 2 get alert pin function.
err_t capsense2_default_cfg(capsense2_t *ctx)
CapSense 2 default configuration function.
err_t capsense2_read_register(capsense2_t *ctx, uint8_t reg, uint8_t *data_out)
CapSense 2 read register function.
err_t capsense2_generic_write(capsense2_t *ctx, uint8_t reg, uint8_t *tx_buf, uint8_t tx_len)
CapSense 2 I2C writing function.
void capsense2_cfg_setup(capsense2_cfg_t *cfg)
CapSense 2 configuration object setup function.
err_t capsense2_clear_interrupt(capsense2_t *ctx)
CapSense 2 clear interrupt function.
err_t capsense2_write_register(capsense2_t *ctx, uint8_t reg, uint8_t data_in)
CapSense 2 write register function.
err_t capsense2_init(capsense2_t *ctx, capsense2_cfg_t *cfg)
CapSense 2 initialization function.
void capsense2_set_reset_pin(capsense2_t *ctx, uint8_t state)
CapSense 2 set reset pin function.
err_t capsense2_generic_read(capsense2_t *ctx, uint8_t reg, uint8_t *rx_buf, uint8_t rx_len)
CapSense 2 I2C reading function.
err_t capsense2_check_communication(capsense2_t *ctx)
CapSense 2 check communication function.
void capsense2_reset_device(capsense2_t *ctx)
CapSense 2 reset device function.
CapSense 2 Click configuration object.
Definition: capsense2.h:352
pin_name_t alt
Definition: capsense2.h:357
uint32_t i2c_speed
Definition: capsense2.h:359
pin_name_t scl
Definition: capsense2.h:353
pin_name_t sda
Definition: capsense2.h:354
pin_name_t rst
Definition: capsense2.h:356
uint8_t i2c_address
Definition: capsense2.h:360
CapSense 2 Click context object.
Definition: capsense2.h:332
digital_in_t alt
Definition: capsense2.h:337
i2c_master_t i2c
Definition: capsense2.h:340
digital_out_t rst
Definition: capsense2.h:334
uint8_t slave_address
Definition: capsense2.h:343