touchpad4  2.0.0.0
touchpad4.h
Go to the documentation of this file.
1 /****************************************************************************
2 ** Copyright (C) 2020 MikroElektronika d.o.o.
3 ** Contact: https://www.mikroe.com/contact
4 **
5 ** Permission is hereby granted, free of charge, to any person obtaining a copy
6 ** of this software and associated documentation files (the "Software"), to deal
7 ** in the Software without restriction, including without limitation the rights
8 ** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 ** copies of the Software, and to permit persons to whom the Software is
10 ** furnished to do so, subject to the following conditions:
11 ** The above copyright notice and this permission notice shall be
12 ** included in all copies or substantial portions of the Software.
13 **
14 ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
16 ** OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
18 ** DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
19 ** OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20 ** USE OR OTHER DEALINGS IN THE SOFTWARE.
21 ****************************************************************************/
22 
28 #ifndef TOUCHPAD4_H
29 #define TOUCHPAD4_H
30 
31 #ifdef __cplusplus
32 extern "C"{
33 #endif
34 
35 #include "drv_digital_out.h"
36 #include "drv_digital_in.h"
37 #include "drv_i2c_master.h"
38 
59 #define TOUCHPAD4_REG_INFO_FLAGS 0x10
60 #define TOUCHPAD4_REG_GESTURES 0x11
61 #define TOUCHPAD4_REG_RELATIVE_X 0x12
62 #define TOUCHPAD4_REG_RELATIVE_Y 0x13
63 #define TOUCHPAD4_REG_FINGER1_X 0x14
64 #define TOUCHPAD4_REG_FINGER1_Y 0x15
65 #define TOUCHPAD4_REG_FINGER1_TOUCH_STR 0x16
66 #define TOUCHPAD4_REG_FINGER1_AREA 0x17
67 #define TOUCHPAD4_REG_FINGER2_X 0x18
68 #define TOUCHPAD4_REG_FINGER2_Y 0x19
69 #define TOUCHPAD4_REG_FINGER2_TOUCH_STR 0x1A
70 #define TOUCHPAD4_REG_FINGER2_AREA 0x1B
71 #define TOUCHPAD4_REG_TOUCH_STATUS0 0x20
72 #define TOUCHPAD4_REG_TOUCH_STATUS1 0x21
73 #define TOUCHPAD4_REG_TOUCH_STATUS2 0x22
74 #define TOUCHPAD4_REG_ALP_CHANNEL_COUNT 0x23
75 #define TOUCHPAD4_REG_ALP_CHANNEL_LTA 0x24
76 #define TOUCHPAD4_REG_ALP_COUNT_A 0x25
77 #define TOUCHPAD4_REG_ALP_COUNT_B 0x26
78 #define TOUCHPAD4_REG_TRACKPAD_ATI_MULT_DIV 0x30
79 #define TOUCHPAD4_REG_TRACKPAD_ATI_COMP_DIV 0x31
80 #define TOUCHPAD4_REG_TRACKPAD_ATI_TARGET 0x32
81 #define TOUCHPAD4_REG_TRACKPAD_REF_DRIFT_LIMIT 0x33
82 #define TOUCHPAD4_REG_TRACKPAD_MIN_CNT_REATI_VAL 0x34
83 #define TOUCHPAD4_REG_REATI_RETRY_TIME 0x35
84 #define TOUCHPAD4_REG_ALP_ATI_MULT_DIV 0x36
85 #define TOUCHPAD4_REG_ALP_ATI_COMP_DIV 0x37
86 #define TOUCHPAD4_REG_ALP_ATI_TARGET 0x38
87 #define TOUCHPAD4_REG_ALP_ATI_DRIFT_LIMIT 0x39
88 #define TOUCHPAD4_REG_ALP_ATI_COMP_A 0x3A
89 #define TOUCHPAD4_REG_ALP_ATI_COMP_B 0x3B
90 #define TOUCHPAD4_REG_ACTIVE_MODE_REPORT_RATE 0x40
91 #define TOUCHPAD4_REG_IDLE_TOUCH_MODE_REPORT_RATE 0x41
92 #define TOUCHPAD4_REG_IDLE_MODE_REPORT_RATE 0x42
93 #define TOUCHPAD4_REG_LP1_MODE_REPORT_RATE 0x43
94 #define TOUCHPAD4_REG_LP2_MODE_REPORT_RATE 0x44
95 #define TOUCHPAD4_REG_ACTIVE_MODE_TIMEOUT 0x45
96 #define TOUCHPAD4_REG_IDLE_TOUCH_MODE_TIMEOUT 0x46
97 #define TOUCHPAD4_REG_IDLE_MODE_TIMEOUT 0x47
98 #define TOUCHPAD4_REG_LP1_MODE_TIMEOUT 0x48
99 #define TOUCHPAD4_REG_REFERENCE_UPDATE_TIME 0x49
100 #define TOUCHPAD4_REG_I2C_TIMEOUT 0x4A
101 #define TOUCHPAD4_REG_SYSTEM_CONTROL 0x50
102 #define TOUCHPAD4_REG_CONFIG_SETTINGS 0x51
103 #define TOUCHPAD4_REG_OTHER_SETTINGS 0x52
104 #define TOUCHPAD4_REG_TOUCH_CLEAR_SET_THRESH 0x53
105 #define TOUCHPAD4_REG_ALP_THRESH 0x54
106 #define TOUCHPAD4_REG_OPEN_0 0x55
107 #define TOUCHPAD4_REG_ALP_CLEAR_SET_DEBOUNCE 0x56
108 #define TOUCHPAD4_REG_OPEN_1 0x57
109 #define TOUCHPAD4_REG_TRACKPAD_CONVER_FREQ 0x58
110 #define TOUCHPAD4_REG_ALP_CONVER_FREQ 0x59
111 #define TOUCHPAD4_REG_TRACKPAD_HW_SETTINGS 0x5A
112 #define TOUCHPAD4_REG_ALP_HW_SETTINGS 0x5B
113 #define TOUCHPAD4_REG_TOTAL_RXS_TRACKPAD_SETTINGS 0x60
114 #define TOUCHPAD4_REG_MAX_MULTITOUCHES_TOTAL_TXS 0x61
115 #define TOUCHPAD4_REG_X_RES 0x62
116 #define TOUCHPAD4_REG_Y_RES 0x63
117 #define TOUCHPAD4_REG_XY_DYNAMIC_FILTER_BOT_SPEED 0x64
118 #define TOUCHPAD4_REG_XY_DYNAMIC_FILTER_TOP_SPEED 0x65
119 #define TOUCHPAD4_REG_STATIC_FILTER_VAL_DYNAMIC_FILTER_BOT 0x66
120 #define TOUCHPAD4_REG_FINGER_SPLIT_STAT_TOUCH_MOVE_THRESH 0x67
121 #define TOUCHPAD4_REG_X_TRIM_VALUE 0x68
122 #define TOUCHPAD4_REG_Y_TRIM_VALUE 0x69
123 #define TOUCHPAD4_REG_ALP_COUNT_FILTER_BETA 0x70
124 #define TOUCHPAD4_REG_LP2_LP1_BETA 0x71
125 #define TOUCHPAD4_REG_ALP_SETUP 0x72
126 #define TOUCHPAD4_REG_ALP_TX_ENABLE 0x73
127 #define TOUCHPAD4_REG_SETTINGS_MAJOR_MINOR_VER 0x74
128 #define TOUCHPAD4_REG_GESTURE_ENABLE 0x80
129 #define TOUCHPAD4_REG_TAP_TIME 0x81
130 #define TOUCHPAD4_REG_TAP_DIST 0x82
131 #define TOUCHPAD4_REG_HOLD_TIME 0x83
132 #define TOUCHPAD4_REG_SWIPE_TIME 0x84
133 #define TOUCHPAD4_REG_SWIPE_X_DIST 0x85
134 #define TOUCHPAD4_REG_SWIPE_Y_DIST 0x86
135 #define TOUCHPAD4_REG_SWIPE_ANGLE 0x87
136 #define TOUCHPAD4_REG_RXTX_MAP_1_0 0x90
137 #define TOUCHPAD4_REG_RXTX_MAP_3_2 0x91
138 #define TOUCHPAD4_REG_RXTX_MAP_5_4 0x92
139 #define TOUCHPAD4_REG_RXTX_MAP_7_6 0x93
140 #define TOUCHPAD4_REG_RXTX_MAP_9_8 0x94
141 #define TOUCHPAD4_REG_RXTX_MAP_11_10 0x95
142 #define TOUCHPAD4_REG_RXTX_MAP_13_12 0x96
143 #define TOUCHPAD4_REG_1st_CHANNEL_FOR_CYCLE0 0xA0
144 #define TOUCHPAD4_REG_2nd_CHANNEL_FOR_CYCLE0 0xA1
145 #define TOUCHPAD4_REG_2nd1st_CHANNEL_FOR_CYCLE1 0xA2
146 #define TOUCHPAD4_REG_1st_CHANNEL_FOR_CYCLE2 0xA3
147 #define TOUCHPAD4_REG_2nd_CHANNEL_FOR_CYCLE2 0xA4
148 #define TOUCHPAD4_REG_2nd1st_CHANNEL_FOR_CYCLE3 0xA5
149 #define TOUCHPAD4_REG_1st_CHANNEL_FOR_CYCLE4 0xA6
150 #define TOUCHPAD4_REG_2nd_CHANNEL_FOR_CYCLE4 0xA7
151 #define TOUCHPAD4_REG_2nd1st_CHANNEL_FOR_CYCLE5 0xA8
152 #define TOUCHPAD4_REG_1st_CHANNEL_FOR_CYCLE6 0xA9
153 #define TOUCHPAD4_REG_2nd_CHANNEL_FOR_CYCLE6 0xAA
154 #define TOUCHPAD4_REG_2nd1st_CHANNEL_FOR_CYCLE7 0xAB
155 #define TOUCHPAD4_REG_1st_CHANNEL_FOR_CYCLE8 0xAC
156 #define TOUCHPAD4_REG_2nd_CHANNEL_FOR_CYCLE8 0xAD
157 #define TOUCHPAD4_REG_2nd1st_CHANNEL_FOR_CYCLE9 0xAE
158 #define TOUCHPAD4_REG_1st_CHANNEL_FOR_CYCLE10 0xB0
159 #define TOUCHPAD4_REG_2nd_CHANNEL_FOR_CYCLE10 0xB1
160 #define TOUCHPAD4_REG_2nd1st_CHANNEL_FOR_CYCLE11 0xB2
161 #define TOUCHPAD4_REG_1st_CHANNEL_FOR_CYCLE12 0xB3
162 #define TOUCHPAD4_REG_2nd_CHANNEL_FOR_CYCLE12 0xB4
163 #define TOUCHPAD4_REG_2nd1st_CHANNEL_FOR_CYCLE13 0xB5
164 #define TOUCHPAD4_REG_1st_CHANNEL_FOR_CYCLE14 0xB6
165 #define TOUCHPAD4_REG_2nd_CHANNEL_FOR_CYCLE14 0xB7
166 #define TOUCHPAD4_REG_2nd1st_CHANNEL_FOR_CYCLE15 0xB8
167 #define TOUCHPAD4_REG_1st_CHANNEL_FOR_CYCLE16 0xB9
168 #define TOUCHPAD4_REG_2nd_CHANNEL_FOR_CYCLE16 0xBA
169 #define TOUCHPAD4_REG_2nd1st_CHANNEL_FOR_CYCLE17 0xBB
170 #define TOUCHPAD4_REG_TRACKPAD_COUNT_VAL 0xE0
171 #define TOUCHPAD4_REG_TRACKPAD_REF_VAL 0xE1
172 #define TOUCHPAD4_REG_TRACKPAD_DELTA_VAL 0xE2
173 #define TOUCHPAD4_REG_TRACKPAD_ATI_COMPENSATION_VAL 0xE3
174  // touchpad4_reg
176 
191 #define TOUCHPAD4_TP_ATI_MULTIPLIERS_DIVIDERS_0 0xE1
192 #define TOUCHPAD4_TP_ATI_MULTIPLIERS_DIVIDERS_1 0x3B
193 #define TOUCHPAD4_TP_COMPENSATION_DIV_0 0x0F
194 #define TOUCHPAD4_TP_COMPENSATION_DIV_1 0x00
195 #define TOUCHPAD4_TP_ATI_TARGET_0 0xFA
196 #define TOUCHPAD4_TP_ATI_TARGET_1 0x00
197 #define TOUCHPAD4_TP_REF_DRIFT_LIMIT_0 0x32
198 #define TOUCHPAD4_TP_REF_DRIFT_LIMIT_1 0x00
199 #define TOUCHPAD4_TP_MIN_COUNT_REATI_0 0x32
200 #define TOUCHPAD4_TP_MIN_COUNT_REATI_1 0x00
201 #define TOUCHPAD4_REATI_RETRY_TIME_0 0x05
202 #define TOUCHPAD4_REATI_RETRY_TIME_1 0x00
203 #define TOUCHPAD4_ALP_ATI_MULTIPLIERS_DIVIDERS_0 0x82
204 #define TOUCHPAD4_ALP_ATI_MULTIPLIERS_DIVIDERS_1 0x28
205 #define TOUCHPAD4_ALP_COMPENSATION_DIV_0 0x05
206 #define TOUCHPAD4_ALP_COMPENSATION_DIV_1 0x00
207 #define TOUCHPAD4_ALP_ATI_TARGET_0 0xFA
208 #define TOUCHPAD4_ALP_ATI_TARGET_1 0x00
209 #define TOUCHPAD4_ALP_LTA_DRIFT_LIMIT_0 0x14
210 #define TOUCHPAD4_ALP_LTA_DRIFT_LIMIT_1 0x00
211 
216 #define TOUCHPAD4_ALP_COMPENSATION_A_0 0xC4
217 #define TOUCHPAD4_ALP_COMPENSATION_A_1 0x01
218 #define TOUCHPAD4_ALP_COMPENSATION_B_0 0xE8
219 #define TOUCHPAD4_ALP_COMPENSATION_B_1 0x01
220 
225 #define TOUCHPAD4_ACTIVE_MODE_REPORT_RATE_0 0x0A
226 #define TOUCHPAD4_ACTIVE_MODE_REPORT_RATE_1 0x00
227 #define TOUCHPAD4_IDLE_TOUCH_MODE_REPORT_RATE_0 0x32
228 #define TOUCHPAD4_IDLE_TOUCH_MODE_REPORT_RATE_1 0x00
229 #define TOUCHPAD4_IDLE_MODE_REPORT_RATE_0 0x32
230 #define TOUCHPAD4_IDLE_MODE_REPORT_RATE_1 0x00
231 #define TOUCHPAD4_LP1_MODE_REPORT_RATE_0 0x32
232 #define TOUCHPAD4_LP1_MODE_REPORT_RATE_1 0x00
233 #define TOUCHPAD4_LP2_MODE_REPORT_RATE_0 0x64
234 #define TOUCHPAD4_LP2_MODE_REPORT_RATE_1 0x00
235 #define TOUCHPAD4_ACTIVE_MODE_TIMEOUT_0 0x0A
236 #define TOUCHPAD4_ACTIVE_MODE_TIMEOUT_1 0x00
237 #define TOUCHPAD4_IDLE_TOUCH_MODE_TIMEOUT_0 0x3C
238 #define TOUCHPAD4_IDLE_TOUCH_MODE_TIMEOUT_1 0x00
239 #define TOUCHPAD4_IDLE_MODE_TIMEOUT_0 0x14
240 #define TOUCHPAD4_IDLE_MODE_TIMEOUT_1 0x00
241 #define TOUCHPAD4_LP1_MODE_TIMEOUT_0 0x0A
242 #define TOUCHPAD4_LP1_MODE_TIMEOUT_1 0x00
243 #define TOUCHPAD4_REF_UPDATE_TIME_0 0x08
244 #define TOUCHPAD4_REF_UPDATE_TIME_1 0x00
245 #define TOUCHPAD4_I2C_TIMEOUT_0 0x64
246 #define TOUCHPAD4_I2C_TIMEOUT_1 0x00
247 
252 #define TOUCHPAD4_SYSTEM_CONTROL_0 0x00
253 #define TOUCHPAD4_SYSTEM_CONTROL_1 0x00
254 #define TOUCHPAD4_CONFIG_SETTINGS0 0x3C
255 #define TOUCHPAD4_CONFIG_SETTINGS1 0x06
256 #define TOUCHPAD4_OTHER_SETTINGS_0 0x20
257 #define TOUCHPAD4_OTHER_SETTINGS_1 0xFF
258 #define TOUCHPAD4_TRACKPAD_TOUCH_SET_THRESHOLD 0x1A
259 #define TOUCHPAD4_TRACKPAD_TOUCH_CLEAR_THRESHOLD 0x14
260 #define TOUCHPAD4_ALP_THRESHOLD_0 0x08
261 #define TOUCHPAD4_ALP_THRESHOLD_1 0x00
262 #define TOUCHPAD4_OPEN_0_0 0xFF
263 #define TOUCHPAD4_OPEN_0_1 0xFF
264 #define TOUCHPAD4_ALP_SET_DEBOUNCE 0x02
265 #define TOUCHPAD4_ALP_CLEAR_DEBOUNCE 0x04
266 #define TOUCHPAD4_OPEN_1_0 0xFF
267 #define TOUCHPAD4_OPEN_1_1 0xFF
268 #define TOUCHPAD4_TP_CONVERSION_FREQUENCY_UP_PASS_LENGTH 0x05
269 #define TOUCHPAD4_TP_CONVERSION_FREQUENCY_FRACTION_VALUE 0x7F
270 #define TOUCHPAD4_ALP_CONVERSION_FREQUENCY_UP_PASS_LENGTH 0x05
271 #define TOUCHPAD4_ALP_CONVERSION_FREQUENCY_FRACTION_VALUE 0x7F
272 #define TOUCHPAD4_TRACKPAD_HARDWARE_SETTINGS_0 0x01
273 #define TOUCHPAD4_TRACKPAD_HARDWARE_SETTINGS_1 0x0D
274 #define TOUCHPAD4_ALP_HARDWARE_SETTINGS_0 0x65
275 #define TOUCHPAD4_ALP_HARDWARE_SETTINGS_1 0x1D
276 
281 #define TOUCHPAD4_TRACKPAD_SETTINGS_0_0 0x28
282 #define TOUCHPAD4_TRACKPAD_SETTINGS_0_1 0x04
283 #define TOUCHPAD4_TRACKPAD_SETTINGS_1_0 0x05
284 #define TOUCHPAD4_TRACKPAD_SETTINGS_1_1 0x01
285 #define TOUCHPAD4_X_RESOLUTION_0 0x00
286 #define TOUCHPAD4_X_RESOLUTION_1 0x03
287 #define TOUCHPAD4_Y_RESOLUTION_0 0x00
288 #define TOUCHPAD4_Y_RESOLUTION_1 0x04
289 #define TOUCHPAD4_XY_DYNAMIC_FILTER_BOTTOM_SPEED_0 0x06
290 #define TOUCHPAD4_XY_DYNAMIC_FILTER_BOTTOM_SPEED_1 0x00
291 #define TOUCHPAD4_XY_DYNAMIC_FILTER_TOP_SPEED_0 0x7C
292 #define TOUCHPAD4_XY_DYNAMIC_FILTER_TOP_SPEED_1 0x00
293 #define TOUCHPAD4_XY_DYNAMIC_FILTER_BOTTOM_BETA 0x07
294 #define TOUCHPAD4_XY_DYNAMIC_FILTER_STATIC_FILTER_BETA 0x80
295 #define TOUCHPAD4_STATIONARY_TOUCH_MOV_THRESHOLD 0x14
296 #define TOUCHPAD4_FINGER_SPLIT_FACTOR 0x00
297 #define TOUCHPAD4_X_TRIM_VALUE_0 0x14
298 #define TOUCHPAD4_X_TRIM_VALUE_1 0x00
299 #define TOUCHPAD4_Y_TRIM_VALUE_0 0x14
300 #define TOUCHPAD4_Y_TRIM_VALUE_1 0x00
301 
306 #define TOUCHPAD4_ALP_COUNT_FILTER_BETA_0 0xB4
307 #define TOUCHPAD4_OPEN_0 0x00
308 #define TOUCHPAD4_ALP_LTA_BETA_LP1 0x06
309 #define TOUCHPAD4_ALP_LTA_BETA_LP2 0x04
310 #define TOUCHPAD4_ALP_SETUP_0 0x33
311 #define TOUCHPAD4_ALP_SETUP_1 0x03
312 #define TOUCHPAD4_ALP_TX_ENABLE_0 0x40
313 #define TOUCHPAD4_ALP_TX_ENABLE_1 0x05
314 
319 #define TOUCHPAD4_MINOR_VERSION 0x00
320 #define TOUCHPAD4_MAJOR_VERSION 0x01
321 
326 #define TOUCHPAD4_GESTURE_ENABLE_0 0x3F
327 #define TOUCHPAD4_GESTURE_ENABLE_1 0x0F
328 #define TOUCHPAD4_TAP_TIME_0 0x96
329 #define TOUCHPAD4_TAP_TIME_1 0x00
330 #define TOUCHPAD4_TAP_DISTANCE_0 0x32
331 #define TOUCHPAD4_TAP_DISTANCE_1 0x00
332 #define TOUCHPAD4_HOLD_TIME_0 0x2C
333 #define TOUCHPAD4_HOLD_TIME_1 0x01
334 #define TOUCHPAD4_SWIPE_TIME_0 0x96
335 #define TOUCHPAD4_SWIPE_TIME_1 0x00
336 #define TOUCHPAD4_SWIPE_X_DISTANCE_0 0xC8
337 #define TOUCHPAD4_SWIPE_X_DISTANCE_1 0x00
338 #define TOUCHPAD4_SWIPE_Y_DISTANCE_0 0xC8
339 #define TOUCHPAD4_SWIPE_Y_DISTANCE_1 0x00
340 #define TOUCHPAD4_SWIPE_ANGLE_0 0x17
341 #define TOUCHPAD4_GESTURE_OPEN_0 0x00
342 
347 #define TOUCHPAD4_RX_TX_MAP_0 0x05
348 #define TOUCHPAD4_RX_TX_MAP_1 0x04
349 #define TOUCHPAD4_RX_TX_MAP_2 0x01
350 #define TOUCHPAD4_RX_TX_MAP_3 0x00
351 #define TOUCHPAD4_RX_TX_MAP_4 0x0A
352 #define TOUCHPAD4_RX_TX_MAP_5 0x09
353 #define TOUCHPAD4_RX_TX_MAP_6 0x08
354 #define TOUCHPAD4_RX_TX_MAP_7 0x07
355 #define TOUCHPAD4_RX_TX_MAP_8 0x06
356 #define TOUCHPAD4_RX_TX_MAP_9 0x0A
357 #define TOUCHPAD4_RX_TX_MAP_10 0x09
358 #define TOUCHPAD4_RX_TX_MAP_11 0x08
359 #define TOUCHPAD4_RX_TX_MAP_12 0x00
360 #define TOUCHPAD4_RX_TX_MAP_13 0x00
361 
366 #define TOUCHPAD4_PLACEHOLDER_0 0x05
367 #define TOUCHPAD4_CH_1_CYCLE_0 0x00
368 #define TOUCHPAD4_CH_2_CYCLE_0 0x02
369 #define TOUCHPAD4_PLACEHOLDER_1 0x05
370 #define TOUCHPAD4_CH_1_CYCLE_1 0x01
371 #define TOUCHPAD4_CH_2_CYCLE_1 0x03
372 #define TOUCHPAD4_PLACEHOLDER_2 0x05
373 #define TOUCHPAD4_CH_1_CYCLE_2 0x04
374 #define TOUCHPAD4_CH_2_CYCLE_2 0x06
375 #define TOUCHPAD4_PLACEHOLDER_3 0x05
376 #define TOUCHPAD4_CH_1_CYCLE_3 0x05
377 #define TOUCHPAD4_CH_2_CYCLE_3 0x07
378 #define TOUCHPAD4_PLACEHOLDER_4 0x05
379 #define TOUCHPAD4_CH_1_CYCLE_4 0x08
380 #define TOUCHPAD4_CH_2_CYCLE_4 0x0A
381 #define TOUCHPAD4_PLACEHOLDER_5 0x05
382 #define TOUCHPAD4_CH_1_CYCLE_5 0x09
383 #define TOUCHPAD4_CH_2_CYCLE_5 0x0B
384 #define TOUCHPAD4_PLACEHOLDER_6 0x05
385 #define TOUCHPAD4_CH_1_CYCLE_6 0x0C
386 #define TOUCHPAD4_CH_2_CYCLE_6 0x0E
387 #define TOUCHPAD4_PLACEHOLDER_7 0x05
388 #define TOUCHPAD4_CH_1_CYCLE_7 0x0D
389 #define TOUCHPAD4_CH_2_CYCLE_7 0x0F
390 #define TOUCHPAD4_PLACEHOLDER_8 0x05
391 #define TOUCHPAD4_CH_1_CYCLE_8 0x10
392 #define TOUCHPAD4_CH_2_CYCLE_8 0x12
393 #define TOUCHPAD4_PLACEHOLDER_9 0x05
394 #define TOUCHPAD4_CH_1_CYCLE_9 0x11
395 #define TOUCHPAD4_CH_2_CYCLE_9 0x13
396 
401 #define TOUCHPAD4_PLACEHOLDER_10 0x05
402 #define TOUCHPAD4_CH_1_CYCLE_10 0xFF
403 #define TOUCHPAD4_CH_2_CYCLE_10 0xFF
404 #define TOUCHPAD4_PLACEHOLDER_11 0x05
405 #define TOUCHPAD4_CH_1_CYCLE_11 0xFF
406 #define TOUCHPAD4_CH_2_CYCLE_11 0xFF
407 #define TOUCHPAD4_PLACEHOLDER_12 0x05
408 #define TOUCHPAD4_CH_1_CYCLE_12 0xFF
409 #define TOUCHPAD4_CH_2_CYCLE_12 0xFF
410 #define TOUCHPAD4_PLACEHOLDER_13 0x05
411 #define TOUCHPAD4_CH_1_CYCLE_13 0xFF
412 #define TOUCHPAD4_CH_2_CYCLE_13 0xFF
413 #define TOUCHPAD4_PLACEHOLDER_14 0x05
414 #define TOUCHPAD4_CH_1_CYCLE_14 0xFF
415 #define TOUCHPAD4_CH_2_CYCLE_14 0xFF
416 #define TOUCHPAD4_PLACEHOLDER_15 0x05
417 #define TOUCHPAD4_CH_1_CYCLE_15 0xFF
418 #define TOUCHPAD4_CH_2_CYCLE_15 0xFF
419 #define TOUCHPAD4_PLACEHOLDER_16 0x05
420 #define TOUCHPAD4_CH_1_CYCLE_16 0xFF
421 #define TOUCHPAD4_CH_2_CYCLE_16 0xFF
422 #define TOUCHPAD4_PLACEHOLDER_17 0x05
423 #define TOUCHPAD4_CH_1_CYCLE_17 0xFF
424 #define TOUCHPAD4_CH_2_CYCLE_17 0xFF
425 
431 #define TOUCHPAD4_SET_DEV_ADDR 0x56
432  // touchpad4_set
434 
449 #define TOUCHPAD4_MAP_MIKROBUS( cfg, mikrobus ) \
450  cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
451  cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
452  cfg.mclr = MIKROBUS( mikrobus, MIKROBUS_RST ); \
453  cfg.rdy = MIKROBUS( mikrobus, MIKROBUS_INT )
454  // touchpad4_map // touchpad4
457 
462 typedef struct
463 {
464  // Output pins
465  digital_out_t mclr;
467  // Input pins
468  digital_in_t rdy;
470  // Modules
471  i2c_master_t i2c;
473  // I2C slave address
474  uint8_t slave_address;
475  uint8_t event_enabled;
476 
477 } touchpad4_t;
478 
483 typedef struct
484 {
485  pin_name_t scl;
486  pin_name_t sda;
488  pin_name_t mclr;
489  pin_name_t rdy;
491  uint32_t i2c_speed;
492  uint8_t i2c_address;
495 
500 typedef struct
501 {
502  int16_t x;
503  int16_t y;
504  int16_t strength;
505  int16_t area;
508 
513 typedef struct
514 {
516  touchpad4_touch_t touches[ 4 ];
519 
524 typedef enum
525 {
527  TOUCHPAD4_ERROR = -1
528 
530 
547 
563 
578 
591 err_t touchpad4_generic_write ( touchpad4_t *ctx, uint8_t reg, uint16_t tx_data );
592 
605 err_t touchpad4_generic_read ( touchpad4_t *ctx, uint8_t reg, uint16_t *rx_data );
606 
615 
624 void touchpad4_set_rst ( touchpad4_t *ctx, uint8_t state );
625 
634 
648 
660 err_t touchpad_get_channels ( touchpad4_t *ctx, uint32_t *channels );
661 
662 #ifdef __cplusplus
663 }
664 #endif
665 #endif // TOUCHPAD4_H
666  // touchpad4
668 
669 // ------------------------------------------------------------------------ END
TOUCHPAD4_OK
@ TOUCHPAD4_OK
Definition: touchpad4.h:526
touchpad4_cfg_t::sda
pin_name_t sda
Definition: touchpad4.h:486
touchpad4_touch_t::x
int16_t x
Definition: touchpad4.h:502
touchpad4_t::rdy
digital_in_t rdy
Definition: touchpad4.h:468
touchpad4_init
err_t touchpad4_init(touchpad4_t *ctx, touchpad4_cfg_t *cfg)
Touchpad 4 initialization function.
TOUCHPAD4_ERROR
@ TOUCHPAD4_ERROR
Definition: touchpad4.h:527
touchpad4_cfg_t::rdy
pin_name_t rdy
Definition: touchpad4.h:489
touchpad4_generic_read
err_t touchpad4_generic_read(touchpad4_t *ctx, uint8_t reg, uint16_t *rx_data)
Touchpad 4 I2C reading function.
touchpad4_cfg_t::mclr
pin_name_t mclr
Definition: touchpad4.h:488
touchpad4_info_t::number_of_touches
uint8_t number_of_touches
Definition: touchpad4.h:515
touchpad4_t::slave_address
uint8_t slave_address
Definition: touchpad4.h:474
touchpad4_touch_t::strength
int16_t strength
Definition: touchpad4.h:504
touchpad4_cfg_t::i2c_speed
uint32_t i2c_speed
Definition: touchpad4.h:491
touchpad4_return_value_t
touchpad4_return_value_t
Touchpad 4 Click return value data.
Definition: touchpad4.h:525
touchpad4_set_rst
void touchpad4_set_rst(touchpad4_t *ctx, uint8_t state)
Set reset pin state.
touchpad4_cfg_t
Touchpad 4 Click configuration object.
Definition: touchpad4.h:484
touchpad4_touch_t::y
int16_t y
Definition: touchpad4.h:503
touchpad4_touch_t
Touchpad 4 Click touch object.
Definition: touchpad4.h:501
touchpad4_touch_t::area
int16_t area
Definition: touchpad4.h:505
touchpad4_get_touch
err_t touchpad4_get_touch(touchpad4_t *ctx, touchpad4_info_t *touch_info)
Read touch informations.
touchpad4_info_t
Touchpad 4 Click touchpad information object.
Definition: touchpad4.h:514
touchpad4_cfg_setup
void touchpad4_cfg_setup(touchpad4_cfg_t *cfg)
Touchpad 4 configuration object setup function.
touchpad4_t::mclr
digital_out_t mclr
Definition: touchpad4.h:465
touchpad4_reset
void touchpad4_reset(touchpad4_t *ctx)
Reset function.
touchpad4_default_cfg
err_t touchpad4_default_cfg(touchpad4_t *ctx)
Touchpad 4 default configuration function.
touchpad4_get_ready
uint8_t touchpad4_get_ready(touchpad4_t *ctx)
Get ready pin state.
touchpad4_t
Touchpad 4 Click context object.
Definition: touchpad4.h:463
touchpad4_t::i2c
i2c_master_t i2c
Definition: touchpad4.h:471
touchpad_get_channels
err_t touchpad_get_channels(touchpad4_t *ctx, uint32_t *channels)
Read channel information.
touchpad4_cfg_t::scl
pin_name_t scl
Definition: touchpad4.h:485
touchpad4_cfg_t::i2c_address
uint8_t i2c_address
Definition: touchpad4.h:492
touchpad4_generic_write
err_t touchpad4_generic_write(touchpad4_t *ctx, uint8_t reg, uint16_t tx_data)
Touchpad 4 I2C writing function.
touchpad4_t::event_enabled
uint8_t event_enabled
Definition: touchpad4.h:475