Go to the documentation of this file.
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 )
547 #endif // CAPSENSE2_H
err_t capsense2_generic_write(capsense2_t *ctx, uint8_t reg, uint8_t *tx_buf, uint8_t tx_len)
CapSense 2 I2C writing function.
uint8_t slave_address
Definition: capsense2.h:343
i2c_master_t i2c
Definition: capsense2.h:340
uint32_t i2c_speed
Definition: capsense2.h:359
void capsense2_reset_device(capsense2_t *ctx)
CapSense 2 reset device function.
err_t capsense2_init(capsense2_t *ctx, capsense2_cfg_t *cfg)
CapSense 2 initialization function.
CapSense 2 Click configuration object.
Definition: capsense2.h:352
err_t capsense2_write_register(capsense2_t *ctx, uint8_t reg, uint8_t data_in)
CapSense 2 write register function.
CapSense 2 Click context object.
Definition: capsense2.h:332
pin_name_t alt
Definition: capsense2.h:357
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_clear_interrupt(capsense2_t *ctx)
CapSense 2 clear interrupt function.
@ CAPSENSE2_ERROR
Definition: capsense2.h:371
pin_name_t scl
Definition: capsense2.h:353
err_t capsense2_check_communication(capsense2_t *ctx)
CapSense 2 check communication function.
void capsense2_set_reset_pin(capsense2_t *ctx, uint8_t state)
CapSense 2 set reset pin function.
capsense2_return_value_t
CapSense 2 Click return value data.
Definition: capsense2.h:369
pin_name_t rst
Definition: capsense2.h:356
pin_name_t sda
Definition: capsense2.h:354
digital_out_t rst
Definition: capsense2.h:334
@ CAPSENSE2_OK
Definition: capsense2.h:370
uint8_t i2c_address
Definition: capsense2.h:360
digital_in_t alt
Definition: capsense2.h:337
void capsense2_cfg_setup(capsense2_cfg_t *cfg)
CapSense 2 configuration object setup 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_read(capsense2_t *ctx, uint8_t reg, uint8_t *rx_buf, uint8_t rx_len)
CapSense 2 I2C reading function.