SparkFun Capacitive Soil Moisture Sensor - CY8CMBR3 Arduino Library
Library for the SparkFun Capacitive Soil Moisture Sensor - CY8CMBR3
Loading...
Searching...
No Matches
sfDevCY8CMBR3.h
Go to the documentation of this file.
1
33#pragma once
34
35#include <stdint.h>
36
37// include the sparkfun toolkit headers
38#include <sfTk/sfToolkit.h>
39
40// Bus interfaces
41#include <sfTk/sfTkII2C.h>
43// I2C Addressing
45const uint8_t kCY8CMBR3DefaultAddr = 0x37; // I2C address for the CY8CMBR3 device.
46const uint8_t kCY8CMBR3MinAddr = 0x08; // Minimum I2C address for the CY8CMBR3 device.
47const uint8_t kCY8CMBR3MaxAddr = 0x77; // Maximum I2C address for the CY8CMBR3 device.
48
49// These are the default expeced ID values for the 102 device (CY8CMBR3102)
50const uint8_t kDefaultCY8CMBR3102FamilyID = 0x9A; // When polling the FAMILY_ID register, this should be returned on boot.
51const uint16_t kDefaultCY8CMBR3102DeviceID = 0xA01; // When polling the DEVICE_ID register, this should be returned on boot.
52
54// Register Map
56const uint8_t ksfCY8CMBR3RegSensorEn = 0x00;
57const uint8_t ksfCY8CMBR3RegFssEn = 0x02;
58const uint8_t ksfCY8CMBR3RegToggleEn = 0x04;
59const uint8_t ksfCY8CMBR3RegLedOnEn = 0x06;
60const uint8_t ksfCY8CMBR3RegSensitivity0 = 0x08;
61const uint8_t ksfCY8CMBR3RegSensitivity1 = 0x09;
62const uint8_t ksfCY8CMBR3RegSensitivity2 = 0x0A;
63const uint8_t ksfCY8CMBR3RegSensitivity3 = 0x0B;
64const uint8_t ksfCY8CMBR3RegBaseThreshold0 = 0x0C;
65const uint8_t ksfCY8CMBR3RegBaseThreshold1 = 0x0D;
66const uint8_t ksfCY8CMBR3RegFingerThreshold2 = 0x0E;
67const uint8_t ksfCY8CMBR3RegFingerThreshold3 = 0x0F;
68const uint8_t ksfCY8CMBR3RegFingerThreshold4 = 0x10;
69const uint8_t ksfCY8CMBR3RegFingerThreshold5 = 0x11;
70const uint8_t ksfCY8CMBR3RegFingerThreshold6 = 0x12;
71const uint8_t ksfCY8CMBR3RegFingerThreshold7 = 0x13;
72const uint8_t ksfCY8CMBR3RegFingerThreshold8 = 0x14;
73const uint8_t ksfCY8CMBR3RegFingerThreshold9 = 0x15;
80const uint8_t ksfCY8CMBR3RegSensorDebounce = 0x1C;
81const uint8_t ksfCY8CMBR3RegButtonHys = 0x1D;
82const uint8_t ksfCY8CMBR3RegButtonLbr = 0x1F;
83const uint8_t ksfCY8CMBR3RegButtonNnt = 0x20;
84const uint8_t ksfCY8CMBR3RegButtonNt = 0x21;
85const uint8_t ksfCY8CMBR3RegProxEn = 0x26;
86const uint8_t ksfCY8CMBR3RegProxCfg = 0x27;
87const uint8_t ksfCY8CMBR3RegProxCfg2 = 0x28;
88const uint8_t ksfCY8CMBR3RegProxTouchTh0 = 0x2A;
89const uint8_t ksfCY8CMBR3RegProxTouchTh1 = 0x2C;
90const uint8_t ksfCY8CMBR3RegProxResolution0 = 0x2E;
91const uint8_t ksfCY8CMBR3RegProxResolution1 = 0x2F;
92const uint8_t ksfCY8CMBR3RegProxHys = 0x30;
93const uint8_t ksfCY8CMBR3RegProxLbr = 0x32;
94const uint8_t ksfCY8CMBR3RegProxNnt = 0x33;
95const uint8_t ksfCY8CMBR3RegProxNt = 0x34;
96const uint8_t ksfCY8CMBR3RegProxPositiveTh0 = 0x35;
97const uint8_t ksfCY8CMBR3RegProxPositiveTh1 = 0x36;
98const uint8_t ksfCY8CMBR3RegProxNegativeTh0 = 0x39;
99const uint8_t ksfCY8CMBR3RegProxNegativeTh1 = 0x3A;
100const uint8_t ksfCY8CMBR3RegLedOnTime = 0x3D;
101const uint8_t ksfCY8CMBR3RegBuzzerCfg = 0x3E;
102const uint8_t ksfCY8CMBR3RegBuzzerOnTime = 0x3F;
103const uint8_t ksfCY8CMBR3RegGpoCfg = 0x40;
112const uint8_t ksfCY8CMBR3RegSpoCfg = 0x4C;
113const uint8_t ksfCY8CMBR3RegDeviceCfg0 = 0x4D;
114const uint8_t ksfCY8CMBR3RegDeviceCfg1 = 0x4E;
115const uint8_t ksfCY8CMBR3RegDeviceCfg2 = 0x4F;
116const uint8_t ksfCY8CMBR3RegDeviceCfg3 = 0x50;
117const uint8_t ksfCY8CMBR3RegI2cAddr = 0x51;
118const uint8_t ksfCY8CMBR3RegRefreshCtrl = 0x52;
119const uint8_t ksfCY8CMBR3RegStateTimeout = 0x55;
120const uint8_t ksfCY8CMBR3RegSliderCfg = 0x5D;
121const uint8_t ksfCY8CMBR3RegSlider1Cfg = 0x61;
124const uint8_t ksfCY8CMBR3RegSlider2Cfg = 0x67;
127const uint8_t ksfCY8CMBR3RegSliderLbr = 0x71;
128const uint8_t ksfCY8CMBR3RegSliderNnt = 0x72;
129const uint8_t ksfCY8CMBR3RegSliderNt = 0x73;
130const uint8_t ksfCY8CMBR3RegScratchpad0 = 0x7A;
131const uint8_t ksfCY8CMBR3RegScratchpad1 = 0x7B;
132const uint8_t ksfCY8CMBR3RegConfigCrc = 0x7E;
133const uint8_t ksfCY8CMBR3RegGpoOutputState = 0x80;
134const uint8_t ksfCY8CMBR3RegSensorId = 0x82;
135const uint8_t ksfCY8CMBR3RegCtrlCmd = 0x86;
136const uint8_t ksfCY8CMBR3RegCtrlCmdStatus = 0x88;
137const uint8_t ksfCY8CMBR3RegCtrlCmdErr = 0x89;
138const uint8_t ksfCY8CMBR3RegSystemStatus = 0x8A;
139const uint8_t ksfCY8CMBR3RegPrevCtrlCmdCode = 0x8C;
140const uint8_t ksfCY8CMBR3RegFamilyId = 0x8F;
141const uint8_t ksfCY8CMBR3RegDeviceId = 0x90;
142const uint8_t ksfCY8CMBR3RegDeviceRev = 0x92;
143const uint8_t ksfCY8CMBR3RegCalcCrc = 0x94;
144const uint8_t ksfCY8CMBR3RegTotalWorkingSns = 0x97;
145const uint8_t ksfCY8CMBR3RegSnsCpHigh = 0x98;
146const uint8_t ksfCY8CMBR3RegSnsVddShort = 0x9A;
147const uint8_t ksfCY8CMBR3RegSnsGndShort = 0x9C;
148const uint8_t ksfCY8CMBR3RegSnsSnsShort = 0x9E;
149const uint8_t ksfCY8CMBR3RegCmodShieldTest = 0xA0;
150const uint8_t ksfCY8CMBR3RegButtonStat = 0xAA;
152const uint8_t ksfCY8CMBR3RegProxStat = 0xAE;
153const uint8_t ksfCY8CMBR3RegLatchedProxStat = 0xAF;
154const uint8_t ksfCY8CMBR3RegSlider1Position = 0xB0;
156const uint8_t ksfCY8CMBR3RegSlider2Position = 0xB2;
158const uint8_t ksfCY8CMBR3RegSyncCounter0 = 0xB9;
159const uint8_t ksfCY8CMBR3RegDiffCnt0 = 0xBA;
160const uint8_t ksfCY8CMBR3RegDiffCnt1 = 0xBC;
161const uint8_t ksfCY8CMBR3RegDiffCnt2 = 0xBE;
162const uint8_t ksfCY8CMBR3RegDiffCnt3 = 0xC0;
163const uint8_t ksfCY8CMBR3RegDiffCnt4 = 0xC2;
164const uint8_t ksfCY8CMBR3RegDiffCnt5 = 0xC4;
165const uint8_t ksfCY8CMBR3RegDiffCnt6 = 0xC6;
166const uint8_t ksfCY8CMBR3RegDiffCnt7 = 0xC8;
167const uint8_t ksfCY8CMBR3RegDiffCnt8 = 0xCA;
168const uint8_t ksfCY8CMBR3RegDiffCnt9 = 0xCC;
169const uint8_t ksfCY8CMBR3RegDiffCnt10 = 0xCE;
170const uint8_t ksfCY8CMBR3RegDiffCnt11 = 0xD0;
171const uint8_t ksfCY8CMBR3RegDiffCnt12 = 0xD2;
172const uint8_t ksfCY8CMBR3RegDiffCnt13 = 0xD4;
173const uint8_t ksfCY8CMBR3RegDiffCnt14 = 0xD6;
174const uint8_t ksfCY8CMBR3RegDiffCnt15 = 0xD8;
175const uint8_t ksfCY8CMBR3RegGpoData = 0xDA;
176const uint8_t ksfCY8CMBR3RegSyncCounter1 = 0xDB;
177const uint8_t ksfCY8CMBR3RegDebugSensorId = 0xDC;
178const uint8_t ksfCY8CMBR3RegDebugCp = 0xDD;
179const uint8_t ksfCY8CMBR3RegDebugDiffCnt0 = 0xDE;
180const uint8_t ksfCY8CMBR3RegDebugBaseline0 = 0xE0;
181const uint8_t ksfCY8CMBR3RegDebugRawCnt0 = 0xE2;
182const uint8_t ksfCY8CMBR3RegDebugAvgRawCnt0 = 0xE4;
183const uint8_t ksfCY8CMBR3RegSyncCounter2 = 0xE7;
184
186// Register Bit Definitions
187//
188// Feel free to submit a PR to add additional bitfield definitions and functions
189// as needed. For now, this library focuses on the registers necessary for basic
190// operation with the CY8CMBR3 for soil moisture sensing.
192
193// SENSOR_EN: Capacitive sensor enable/disable configuration.
194typedef union {
195 struct {
196 uint8_t CS0: 1;
197 uint8_t CS1: 1;
198 uint8_t CS2: 1;
199 uint8_t CS3: 1;
200 uint8_t CS4: 1;
201 uint8_t CS5: 1;
202 uint8_t CS6: 1;
203 uint8_t CS7: 1;
204 uint8_t CS8: 1;
205 uint8_t CS9: 1;
206 uint8_t CS10: 1;
207 uint8_t CS11: 1;
208 uint8_t CS12: 1;
209 uint8_t CS13: 1;
210 uint8_t CS14: 1;
211 uint8_t CS15: 1;
212 };
213 uint16_t word;
215
216// TOGGLE_EN: GPO toggle enable/disable.
217typedef union {
218 struct {
219 uint8_t GPO0: 1;
220 uint8_t GPO1: 1;
221 uint8_t GPO2: 1;
222 uint8_t GPO3: 1;
223 uint8_t GPO4: 1;
224 uint8_t GPO5: 1;
225 uint8_t GPO6: 1;
226 uint8_t GPO7: 1;
227 uint8_t reserved: 8;
228 };
229 uint16_t word;
231
232// LED_ON_EN: GPO extended LED ON duration enable/disable.
233typedef union {
234 struct {
235 uint8_t GPO0: 1;
236 uint8_t GPO1: 1;
237 uint8_t GPO2: 1;
238 uint8_t GPO3: 1;
239 uint8_t GPO4: 1;
240 uint8_t GPO5: 1;
241 uint8_t GPO6: 1;
242 uint8_t GPO7: 1;
243 uint8_t reserved: 8;
244 };
245 uint16_t word;
247
248// SENSITIVITY0: Sensitivities (units: counts/pF) for button sensors 0 - 3
249typedef union {
250 struct {
251 uint8_t CS0_SENSITIVITY: 2;
252 uint8_t CS1_SENSITIVITY: 2;
253 uint8_t CS2_SENSITIVITY: 2;
254 uint8_t CS3_SENSITIVITY: 2;
255 };
256 uint8_t byte;
258
259// BASE_THRESHOLDx: Base threshold for button sensors 0 - 1
260typedef union {
261 struct {
263 };
264 uint8_t byte;
266
267// FINGER_THRESHOLDx: Finger threshold for button sensors 2 - 15
268typedef union {
269 struct {
271 };
272 uint8_t byte;
274
275// BUTTON_HYS: Button hysteresis
276typedef union {
277 struct {
279 uint8_t RESERVED: 2;
280 uint8_t OVERRIDE: 1;
281 };
282 uint8_t byte;
284
285// BUTTON_LBR: Button low baseline reset
286typedef union {
287 struct {
289 uint8_t OVERRIDE: 1;
290 };
291 uint8_t byte;
293
294// BUTTON_NNT: Button negative noise threshold
295typedef union {
296 struct {
298 uint8_t OVERRIDE: 1;
299 };
300 uint8_t byte;
302
303// BUTTON_NT: Button noise threshold
304typedef union {
305 struct {
306 uint8_t NOISE_THRESHOLD: 7;
307 uint8_t OVERRIDE: 1;
308 };
309 uint8_t byte;
311
312// PROX_EN: Proximity sensor enable/disable configuration.
313typedef union {
314 struct {
315 uint8_t PS0: 1;
316 uint8_t PS1: 1;
317 uint8_t reserved: 6;
318 };
319 uint8_t byte;
321
322// ALP_FILTER_EN
323// RESERVED
324// PS1_WAKE_ON_APPROACH
325// PS0_WAKE_ON_APPROACH
326
327// PROX_CFG: Proximity sensor configuration
328typedef union {
329 struct {
332 uint8_t RESERVED: 5;
333 uint8_t ALP_FILTER_EN: 1;
334 };
335 uint8_t byte;
337
338// PROX_CFG2: Proximity sensor configuration 2
339typedef union {
340 struct {
341 uint8_t ALP_FILTER_K: 3;
342 uint8_t RESERVED: 5;
343 };
344 uint8_t byte;
346
347// PROX_RESOLUTIONx: Proximity sensor resolution for PS0 - PS1
348typedef union {
349 struct {
350 uint8_t PROX_RESOLUTION: 3;
351 uint8_t RESERVED: 5;
352 };
353 uint8_t byte;
355
356// PROX_HYS: Proximity sensor hysteresis
357typedef union {
358 struct {
359 uint8_t PROX_HYSTERESIS: 7;
360 uint8_t RESERVED: 1;
361 };
362 uint8_t byte;
364
365// PROX_LBR: Proximity sensor low baseline reset
366typedef union {
367 struct {
369 uint8_t OVERRIDE: 1;
370 };
371 uint8_t byte;
373
374// PROX_NNT: Proximity sensor negative noise threshold
375typedef union {
376 struct {
378 uint8_t OVERRIDE: 1;
379 };
380 uint8_t byte;
382
383// PROX_NT: Proximity sensor noise threshold
384typedef union {
385 struct {
386 uint8_t NOISE_THRESHOLD: 7;
387 uint8_t OVERRIDE: 1;
388 };
389 uint8_t byte;
391
392// LED_ON_TIME: LED on time configuration
393typedef union {
394 struct {
395 uint8_t LED_ON_TIME: 7;
396 uint8_t RESERVED: 1;
397 };
398 uint8_t byte;
400
401// GPO_CFG: GPO configuration
402typedef union {
403 struct {
404 uint8_t GPO_CTL: 1; // 0: GPO controlled by CS status, 1: GPO controlled by host via GPO_OUTPUT_STATE register
405 uint8_t GPO_PWM: 1; // 0: GPO output DC, 1: GPO output PWM
406 uint8_t DRIVE_MODE: 1; // 0: high = Hi-Z, low = strong drive; 1: high = strong drive, low = strong drive
407 uint8_t ACTIVE_STATE: 1; // 0: active low, 1: active high
408 uint8_t RESERVED: 4;
409 };
410 uint8_t byte;
412
413// PWM_DUTYCYCLE_CFGx: PWM duty cycle configuration for GPO0 - GPO7
414typedef union {
415 struct {
416 uint8_t HIGH_DUTY_CYCLE: 4;
417 uint8_t LOW_DUTY_CYCLE: 4;
418 };
419 uint8_t byte;
421
422// SPO_CFG: Secial purpose output configuration
423typedef union {
424 struct {
425 uint8_t SPO0: 3; // 0: disabled, 1: cap sens, 2: shield elec, 3: buzzer, 4: host int, 5: GPO
426 uint8_t RESERVED0: 1;
427 uint8_t SPO1: 3;
428 uint8_t RESERVED1: 1;
429 };
430 uint8_t byte;
432
433// DEVICE_CFG0: Button sensing filter enable/disable
434typedef union {
435 struct {
436 uint8_t MED_EN: 1;
437 uint8_t IIR_EN: 1;
438 uint8_t RESERVED: 6;
439 };
440 uint8_t byte;
442
443// DEVICE_CFG1: System diagnostics enable/disable
444typedef union {
445 struct {
446 uint8_t SYSD_EN: 1;
447 uint8_t RESERVED: 7;
448 };
449 uint8_t byte;
451
452// DEVICE_CFG2: Global sensing and processing configuration
453// PROXIMITY_ARST BUTTON_SLD_ARST ATH_EN EMC_EN GUARD_EN SHIELD_EN
454typedef union {
455 struct {
456 uint8_t SHIELD_EN: 1;
457 uint8_t GUARD_EN: 1;
458 uint8_t EMC_EN: 1;
459 uint8_t ATH_EN: 1;
460 uint8_t BUTTON_SLD_ARST: 2; // 0: auto-reset disabled, 1: auto-reset enabled 5sec timeout
461 uint8_t PROXIMITY_ARST: 2;
462 };
463 uint8_t byte;
465
466// DEVICE_CFG3: Device Power Configuration
467typedef union {
468 struct {
469 uint8_t LOW_POWER_MODE: 1; // 0: 1.8-5.5V internally regulated, 1: 1.8V externally regulated
470 uint8_t RESERVED: 7;
471 };
472 uint8_t byte;
474
475// I2C_ADDR: I2C Address configuration
476typedef union {
477 struct {
478 uint8_t I2C_ADDRESS: 7; // 7-bit I2C address
479 uint8_t RESERVED: 1;
480 };
481 uint8_t byte;
483
484// REFRESH_CTRL: Refresh control configuration
485typedef union {
486 struct {
487 uint8_t REFRESH_INTERVAL: 6; // Units of 20 ms
488 uint8_t RESERVED: 2;
489 };
490 uint8_t byte;
492
493// STATE_TIMEOUT: Timeout (units: seconds) of no touch activity in Active mode to trigger mode transition
494typedef union {
495 struct {
496 uint8_t TIMEOUT: 6;
497 uint8_t RESERVED: 2;
498 };
499 uint8_t byte;
501
502// CONFIG_CRC: Configuration CRC value
503typedef union {
504 struct {
505 uint8_t CRC_LSB: 8;
506 uint8_t CRC_MSB: 8;
507 };
508 uint16_t word;
510
511// GPO_OUTPUT_STATE: GPO output state control
512typedef union {
513 struct {
514 uint8_t GPO0: 1;
515 uint8_t GPO1: 1;
516 uint8_t GPO2: 1;
517 uint8_t GPO3: 1;
518 uint8_t GPO4: 1;
519 uint8_t GPO5: 1;
520 uint8_t GPO6: 1;
521 uint8_t GPO7: 1;
522 };
523 uint8_t byte;
525
526// DEVICE_ID: Device ID register
527typedef union {
528 struct {
529 uint8_t DEVICE_ID_LSB: 8;
530 uint8_t DEVICE_ID_MSB: 8;
531 };
532 uint16_t word;
534
535// DEVICE_REV: Device revision register
536typedef union {
537 struct {
538 uint8_t REVISION: 8;
539 uint8_t reserved: 8;
540 };
541 uint16_t word;
543
544// TOTAL_WORKING_SNS: System diagnostics results summary
545typedef union {
546 struct {
547 uint8_t SENSOR_COUNT: 5;
548 uint8_t RESERVED: 2;
549 uint8_t SYSD_ERR: 1;
550 };
551 uint8_t byte;
553
554// BUTTON_STAT: Button sensor status
555typedef union {
556 struct {
557 uint8_t CS0: 1;
558 uint8_t CS1: 1;
559 uint8_t CS2: 1;
560 uint8_t CS3: 1;
561 uint8_t CS4: 1;
562 uint8_t CS5: 1;
563 uint8_t CS6: 1;
564 uint8_t CS7: 1;
565 uint8_t CS8: 1;
566 uint8_t CS9: 1;
567 uint8_t CS10: 1;
568 uint8_t CS11: 1;
569 uint8_t CS12: 1;
570 uint8_t CS13: 1;
571 uint8_t CS14: 1;
572 uint8_t CS15: 1;
573 };
574 uint16_t word;
576
577// LATCHED_BUTTON_STAT: Latched button sensor status
578typedef union {
579 struct {
580 uint8_t CS0: 1;
581 uint8_t CS1: 1;
582 uint8_t CS2: 1;
583 uint8_t CS3: 1;
584 uint8_t CS4: 1;
585 uint8_t CS5: 1;
586 uint8_t CS6: 1;
587 uint8_t CS7: 1;
588 uint8_t CS8: 1;
589 uint8_t CS9: 1;
590 uint8_t CS10: 1;
591 uint8_t CS11: 1;
592 uint8_t CS12: 1;
593 uint8_t CS13: 1;
594 uint8_t CS14: 1;
595 uint8_t CS15: 1;
596 };
597 uint16_t word;
599
600// PROX_STAT: Proximity sensor status
601typedef union {
602 struct {
603 uint8_t PS0: 1;
604 uint8_t PS1: 1;
605 uint8_t RESERVED: 6;
606 };
607 uint8_t byte;
609
610// LATCHED_PROX_STAT: Latched proximity sensor status
611typedef union {
612 struct {
613 uint8_t PS0: 1;
614 uint8_t PS1: 1;
615 uint8_t RESERVED: 6;
616 };
617 uint8_t byte;
619
620// SYNC_COUNTER0: Synchronization counter 0
621typedef union {
622 struct {
623 uint8_t COUNTER: 4;
624 uint8_t RESERVED: 4;
625 };
626 uint8_t byte;
628
629// DIFFERENCE_COUNT_SENSOR0: Difference count for sensor 0
630typedef union {
631 struct {
632 uint8_t DIFF_COUNT_LSB: 8;
633 uint8_t DIFF_COUNT_MSB: 8;
634 };
635 uint16_t word;
637
638// GPO_DATA: Current GPO state values
639typedef union {
640 struct {
641 uint8_t GPO0: 1;
642 uint8_t GPO1: 1;
643 uint8_t GPO2: 1;
644 uint8_t GPO3: 1;
645 uint8_t GPO4: 1;
646 uint8_t GPO5: 1;
647 uint8_t GPO6: 1;
648 uint8_t GPO7: 1;
649 };
650 uint8_t byte;
652
653// SYNC_COUNTER1: Synchronization counter 1
654typedef union {
655 struct {
656 uint8_t COUNTER: 4;
657 uint8_t RESERVED: 4;
658 };
659 uint8_t byte;
661
662// DEBUG_CP: Debug capacitor measurement
664
665// DEBUG_DIFFERENCE_COUNT0: Debug difference count for sensor 0
666typedef union {
667 struct {
668 uint8_t DIFF_COUNT_LSB: 8;
669 uint8_t DIFF_COUNT_MSB: 8;
670 };
671 uint16_t word;
673
674// DEBUG_BASELINE0: Debug baseline count for sensor 0
675typedef union {
676 struct {
677 uint8_t BASELINE_LSB: 8;
678 uint8_t BASELINE_MSB: 8;
679 };
680 uint16_t word;
682
683// DEBUG_RAW_COUNT0: Debug raw count for sensor 0
684typedef union {
685 struct {
686 uint8_t RAW_COUNT_LSB: 8;
687 uint8_t RAW_COUNT_MSB: 8;
688 };
689 uint16_t word;
691
692// SYNC_COUNTER2: Synchronization counter 2
693typedef union {
694 struct {
695 uint8_t COUNTER: 4;
696 uint8_t RESERVED: 4;
697 };
698 uint8_t byte;
700
701// SYSTEM_STATUS: System configuration status indicators
702typedef union {
703 struct {
704 uint8_t F_DEFAULT: 1; // Indicates if default configuration is loaded
705 uint8_t RESERVED: 7;
706 };
707 uint8_t byte;
709
711// Enum Definitions
712//
713// Feel free to submit a PR to add additional enum definitions and functions
714// as needed. For now, this library focuses on the registers necessary for basic
715// operation with the CY8CMBR3 for soil moisture sensing.
717typedef enum {
718 SID_0 = 0x00,
719 SID_1 = 0x01,
720 SID_2 = 0x02,
721 SID_3 = 0x03,
722 SID_4 = 0x04,
723 SID_5 = 0x05,
724 SID_6 = 0x06,
725 SID_7 = 0x07,
726 SID_8 = 0x08,
727 SID_9 = 0x09,
728 SID_10 = 0x0A,
729 SID_11 = 0x0B,
730 SID_12 = 0x0C,
731 SID_13 = 0x0D,
732 SID_14 = 0x0E,
733 SID_15 = 0x0F,
734 SID_INVALID = 0xFF
736
737typedef enum {
738 CS_SENSITIVITY_500_COUNTS_PER_PF = 0, // 50 counts/0.1pF
739 CS_SENSITIVITY_250_COUNTS_PER_PF = 1, // 50 counts/0.2pF
740 CS_SENSITIVITY_167_COUNTS_PER_PF = 2, // 50 counts/0.3pF
741 CS_SENSITIVITY_125_COUNTS_PER_PF = 3 // 50 counts/0.4pF
743
744typedef enum {
745 // note: for the CY8CMBR3102 which is used in our soil moisture sensor, GPO_0 is the only valid GPO
746 // and is tied to the LED
747 GPO_0 = 0,
748 GPO_1 = 1,
749 GPO_2 = 2,
750 GPO_3 = 3,
751 GPO_4 = 4,
752 GPO_5 = 5,
753 GPO_6 = 6,
754 GPO_7 = 7
756
757typedef enum {
784
785// Host commands for the CTRL_CMD register
786typedef enum {
788 CTRL_CMD_SAVE_CONFIG = 2, //Checks CONFIG_CRC vs. a calculated CRC; if they match, saves current config to non-volatile memory
789 CTRL_CMD_CALC_CRC = 3, //Calculates CRC over config registers and stores result in CALC_CRC register
790 CTRL_CMD_DEEP_SLEEP = 7, //Puts device into Deep Sleep mode
791 CTRL_CMD_RESET_LATCH = 8, //Resets all latched button and proximity status bits
792 CTRL_CMD_ALP_RESET_PS0 = 9, //Resets ALP filter for proximity sensor 0
793 CTRL_CMD_ALP_RESET_PS1 = 10, //Resets ALP filter for proximity sensor 1
794 CTRL_CMD_SW_RESET = 255 //Performs a software reset of the entire device
796
797// Host command errors
798typedef enum {
804
805typedef enum {
811 SPO_GPO = 5
813
814typedef enum {
819
820
822
824{
825 public:
826 sfDevCY8CMBR3() : _last_data_pF{0}, _currentSensorId{SID_INVALID}, _theBus{nullptr}
827 {
828 }
829
833 bool begin(sfTkIBus *theBus = nullptr);
834
837 uint8_t getFamilyID(void);
838
841 uint16_t getDeviceID(void);
842
845 void setCommunicationBus(sfTkIBus *theBus);
846
849 bool isCtrlCommandComplete(void);
850
855 bool sendCtrlCommand(sfe_cy8cmbr3_ctrl_cmd_t command, bool waitForCompletion = true);
856
861 bool saveConfig(void);
862
867 bool reset(bool waitForCompletion = true);
868
874 bool readWithSyncCounter(uint8_t reg, uint8_t &data, uint8_t retries = 10);
875 bool readWithSyncCounter(uint8_t reg, uint16_t &data, uint8_t retries = 10);
876
882
887
894
899
904 bool setAutoThresholdEnable(bool enable = true);
905
911
916 bool setSystemDiagnosticsEnable(bool enable = true);
917
923
928
933 bool setProxEnable(bool enable = false, sfe_cy8cmbr3_sensor_id_t sensorId = SID_0);
934
940 bool setBaseThreshold(uint8_t threshold = 128, sfe_cy8cmbr3_sensor_id_t sensorId = SID_0);
941
947
951 bool setHysteresisOverride(bool override = false);
952
957 bool setHysteresis(uint8_t hysteresis = 0);
958
962 uint8_t getHysteresis(void);
963
967 bool setLowBaselineResetOverride(bool override = false);
968
973 bool setLowBaselineReset(uint8_t baseline = 0);
974
978 uint8_t getLowBaselineReset(void);
979
983 bool setNegativeNoiseThresholdOverride(bool override = false);
984
989 bool setNegativeNoiseThreshold(uint8_t threshold = 0);
990
994 uint8_t getNegativeNoiseThreshold(void);
995
999 bool setNoiseThresholdOverride(bool override = false);
1000
1005 bool setNoiseThreshold(uint8_t threshold = 0);
1006
1010 uint8_t getNoiseThreshold(void);
1011
1014 bool saveDefaultConfig(void);
1015
1022 bool setGPOConfig(bool controlByHost = true, bool pwmOutput = false, bool strongDrive = true, bool activeHigh = false);
1023
1029
1034 bool setGPOToggleEnable(bool enable = false, sfe_cy8cmbr3_gpo_t gpo = GPO_0);
1035
1040 uint8_t getGPOOutputState(void);
1041
1046 uint8_t getGPOData(void);
1047
1053 bool enable(sfe_cy8cmbr3_sensor_id_t sensorId = SID_0, bool enable = true);
1054
1060
1066
1072
1078
1083 uint16_t readRawCount(sfe_cy8cmbr3_sensor_id_t sensorId = SID_0);
1084
1089 bool ledOn(bool ledOn = true, sfe_cy8cmbr3_gpo_t gpo = GPO_0);
1090
1095 bool ledOff(sfe_cy8cmbr3_gpo_t gpo = GPO_0);
1096
1100 bool defaultMoistureSensorInit(void);
1101
1102 protected:
1108 bool _setI2CAddress(uint8_t i2cAddress);
1109
1114 bool _readI2CAddress(uint8_t &i2cAddress);
1115
1116 private:
1117 bool _writeWithRetry(uint8_t regAddress, uint8_t data);
1118 bool _writeWithRetry(uint8_t regAddress, uint16_t data);
1119 bool _readWithRetry(uint8_t regAddress, uint8_t &data);
1120 bool _readWithRetry(uint8_t regAddress, uint16_t &data);
1121
1122 sfe_cy8cmbr3_reg_debug_cp_t _last_data_pF; // Last read data from the sensor.
1123 sfe_cy8cmbr3_sensor_id_t _currentSensorId; // Current sensor Id for debug operations.
1124
1125 sfTkIBus *_theBus; // Pointer to bus device.
1126};
Definition: sfDevCY8CMBR3.h:824
sfe_cy8cmbr3_sensor_id_t getDebugSensorId(void)
Get the current debug sensor Id.
Definition: sfDevCY8CMBR3.cpp:448
bool setAutoThresholdEnable(bool enable=true)
Enable or disable the auto-threshold feature.
Definition: sfDevCY8CMBR3.cpp:572
bool setHysteresisOverride(bool override=false)
Set the hysteresis override. This allows manual control of the hysteresis value.
Definition: sfDevCY8CMBR3.cpp:673
bool _readI2CAddress(uint8_t &i2cAddress)
Read the I2C address of the sensor.
Definition: sfDevCY8CMBR3.cpp:119
bool setGPOToggleEnable(bool enable=false, sfe_cy8cmbr3_gpo_t gpo=GPO_0)
Enable or disable GPO toggle.
Definition: sfDevCY8CMBR3.cpp:955
bool setHysteresis(uint8_t hysteresis=0)
Set the hysteresis value.
Definition: sfDevCY8CMBR3.cpp:693
bool setRefreshInterval(sfe_cy8cmbr3_refresh_interval_t interval=REFRESH_INTERVAL_100MS)
Set the refresh interval for the sensor.
Definition: sfDevCY8CMBR3.cpp:886
bool ledOn(bool ledOn=true, sfe_cy8cmbr3_gpo_t gpo=GPO_0)
Turn on or off the LED.
Definition: sfDevCY8CMBR3.cpp:1145
sfe_cy8cmbr3_reg_gpo_cfg_t getGPOConfig(void)
Get the GPO configuration.
Definition: sfDevCY8CMBR3.cpp:942
uint8_t getNoiseThreshold(void)
Get the noise threshold value.
Definition: sfDevCY8CMBR3.cpp:875
bool setSensitivity(sfe_cy8cmbr3_sensitivity_t sensitivity=CS_SENSITIVITY_500_COUNTS_PER_PF, sfe_cy8cmbr3_sensor_id_t sensorId=SID_0)
Set sensitivity for the specified sensor Id.
Definition: sfDevCY8CMBR3.cpp:464
bool _setI2CAddress(uint8_t i2cAddress)
Set the I2C address of the sensor.
Definition: sfDevCY8CMBR3.cpp:83
bool setSystemDiagnosticsEnable(bool enable=true)
Enable or disable system diagnostics.
Definition: sfDevCY8CMBR3.cpp:619
uint8_t getBaseThreshold(sfe_cy8cmbr3_sensor_id_t sensorId=SID_0)
Get the base threshold for the specified sensor Id.
Definition: sfDevCY8CMBR3.cpp:656
bool defaultMoistureSensorInit(void)
Initialize the moisture sensor with default settings.
Definition: sfDevCY8CMBR3.cpp:328
bool setBaseThreshold(uint8_t threshold=128, sfe_cy8cmbr3_sensor_id_t sensorId=SID_0)
Set the base threshold for the specified sensor Id.
Definition: sfDevCY8CMBR3.cpp:639
uint16_t readRawCount(sfe_cy8cmbr3_sensor_id_t sensorId=SID_0)
Reads the raw count value from the sensor.
Definition: sfDevCY8CMBR3.cpp:1124
bool saveDefaultConfig(void)
Load the default configuration and save it to non-volatile memory.
Definition: sfDevCY8CMBR3.cpp:1346
uint8_t getGPOData(void)
Get the current GPO data.
Definition: sfDevCY8CMBR3.cpp:994
bool readWithSyncCounter(uint8_t reg, uint8_t &data, uint8_t retries=10)
Reads target register while waiting for the sync counter on either end of the target register to be e...
Definition: sfDevCY8CMBR3.cpp:227
bool setProxEnable(bool enable=false, sfe_cy8cmbr3_sensor_id_t sensorId=SID_0)
Enable or disable proximity sensing for the specified sensor Id.
Definition: sfDevCY8CMBR3.cpp:543
bool isCtrlCommandComplete(void)
Checks if the last sent control command is complete.
Definition: sfDevCY8CMBR3.cpp:135
bool setGPOConfig(bool controlByHost=true, bool pwmOutput=false, bool strongDrive=true, bool activeHigh=false)
Set the GPO configuration.
Definition: sfDevCY8CMBR3.cpp:922
sfe_cy8cmbr3_sensitivity_t getSensitivity(sfe_cy8cmbr3_sensor_id_t sensorId=SID_0)
Get sensitivity for the specified sensor Id.
Definition: sfDevCY8CMBR3.cpp:509
bool setNegativeNoiseThresholdOverride(bool override=false)
Set the negative noise threshold override. This allows manual control of the negative noise threshold...
Definition: sfDevCY8CMBR3.cpp:781
uint16_t readDebugDifferenceCount(sfe_cy8cmbr3_sensor_id_t sensorId=SID_0)
Reads the difference count value from the sensor.
Definition: sfDevCY8CMBR3.cpp:1082
uint8_t getGPOOutputState(void)
Get the current GPO output state.
Definition: sfDevCY8CMBR3.cpp:981
bool sendCtrlCommand(sfe_cy8cmbr3_ctrl_cmd_t command, bool waitForCompletion=true)
Sends a control command to the sensor.
Definition: sfDevCY8CMBR3.cpp:149
uint8_t getLowBaselineReset(void)
Get the low baseline reset value.
Definition: sfDevCY8CMBR3.cpp:770
bool enable(sfe_cy8cmbr3_sensor_id_t sensorId=SID_0, bool enable=true)
Enable or disable sensor by sensor Id.
Definition: sfDevCY8CMBR3.cpp:1007
uint8_t readCapacitancePF(sfe_cy8cmbr3_sensor_id_t sensorId=SID_0)
Reads the capacitance value in pF from the sensor.
Definition: sfDevCY8CMBR3.cpp:1034
uint16_t getDeviceID(void)
Requests the device ID from the sensor.
Definition: sfDevCY8CMBR3.cpp:50
bool setSPO0Config(sfe_cy8cmbr3_spo_config_t config=SPO_GPO)
Set the SPO0 configuration.
Definition: sfDevCY8CMBR3.cpp:903
uint8_t getHysteresis(void)
Get the hysteresis value.
Definition: sfDevCY8CMBR3.cpp:716
bool saveConfig(void)
Save the current configuration to non-volatile memory.
Definition: sfDevCY8CMBR3.cpp:205
bool setNegativeNoiseThreshold(uint8_t threshold=0)
Set the negative noise threshold value.
Definition: sfDevCY8CMBR3.cpp:800
bool setNoiseThreshold(uint8_t threshold=0)
Set the noise threshold value.
Definition: sfDevCY8CMBR3.cpp:853
uint8_t getNegativeNoiseThreshold(void)
Get the negative noise threshold value.
Definition: sfDevCY8CMBR3.cpp:822
uint8_t getFamilyID(void)
Requests the family ID from the sensor.
Definition: sfDevCY8CMBR3.cpp:64
bool setLowBaselineResetOverride(bool override=false)
Set the low baseline reset override. This allows manual control of the low baseline reset.
Definition: sfDevCY8CMBR3.cpp:727
bool setAutoResetEnable(bool enable=true, sfe_cy8cmbr3_auto_reset_timeout_t timeout=AUTO_RESET_TIMEOUT_5_SECONDS)
Enable or disable the auto-reset feature.
Definition: sfDevCY8CMBR3.cpp:593
void setCommunicationBus(sfTkIBus *theBus)
Sets the communication bus to the specified bus.
Definition: sfDevCY8CMBR3.cpp:78
bool setNoiseThresholdOverride(bool override=false)
Set the noise threshold override. This allows manual control of the noise threshold.
Definition: sfDevCY8CMBR3.cpp:833
uint16_t readDifferenceCount(sfe_cy8cmbr3_sensor_id_t sensorId=SID_0)
Reads the difference count value from the sensor.
Definition: sfDevCY8CMBR3.cpp:1063
bool setLowBaselineReset(uint8_t baseline=0)
Set the low baseline reset value.
Definition: sfDevCY8CMBR3.cpp:747
sfDevCY8CMBR3()
Definition: sfDevCY8CMBR3.h:826
uint16_t readBaselineCount(sfe_cy8cmbr3_sensor_id_t sensorId=SID_0)
Reads the baseline count value from the sensor.
Definition: sfDevCY8CMBR3.cpp:1103
bool ledOff(sfe_cy8cmbr3_gpo_t gpo=GPO_0)
Turn off the LED.
Definition: sfDevCY8CMBR3.cpp:1170
bool begin(sfTkIBus *theBus=nullptr)
This method is called to set the communication bus directly and initialize the sensor.
Definition: sfDevCY8CMBR3.cpp:35
bool setSensorId(sfe_cy8cmbr3_sensor_id_t sensorId=SID_0)
Set the sensor Id.
Definition: sfDevCY8CMBR3.cpp:425
bool reset(bool waitForCompletion=true)
Perform a software reset of the sensor.
Definition: sfDevCY8CMBR3.cpp:318
const uint8_t ksfCY8CMBR3RegDiffCnt14
Definition: sfDevCY8CMBR3.h:173
const uint8_t ksfCY8CMBR3RegProxResolution0
Definition: sfDevCY8CMBR3.h:90
const uint8_t ksfCY8CMBR3RegSnsVddShort
Definition: sfDevCY8CMBR3.h:146
const uint8_t ksfCY8CMBR3RegSnsSnsShort
Definition: sfDevCY8CMBR3.h:148
const uint8_t ksfCY8CMBR3RegRefreshCtrl
Definition: sfDevCY8CMBR3.h:118
const uint8_t ksfCY8CMBR3RegSensitivity2
Definition: sfDevCY8CMBR3.h:62
const uint8_t ksfCY8CMBR3RegProxResolution1
Definition: sfDevCY8CMBR3.h:91
const uint8_t ksfCY8CMBR3RegLiftoffSlider2Position
Definition: sfDevCY8CMBR3.h:157
const uint8_t ksfCY8CMBR3RegPwmDutyCycleCfg4
Definition: sfDevCY8CMBR3.h:108
const uint8_t ksfCY8CMBR3RegFingerThreshold15
Definition: sfDevCY8CMBR3.h:79
const uint8_t ksfCY8CMBR3RegProxTouchTh1
Definition: sfDevCY8CMBR3.h:89
const uint8_t ksfCY8CMBR3RegLedOnTime
Definition: sfDevCY8CMBR3.h:100
const uint8_t ksfCY8CMBR3RegFingerThreshold6
Definition: sfDevCY8CMBR3.h:70
const uint8_t ksfCY8CMBR3RegDeviceRev
Definition: sfDevCY8CMBR3.h:142
const uint8_t ksfCY8CMBR3RegLatchedProxStat
Definition: sfDevCY8CMBR3.h:153
const uint8_t ksfCY8CMBR3RegDiffCnt3
Definition: sfDevCY8CMBR3.h:162
const uint8_t ksfCY8CMBR3RegCtrlCmdStatus
Definition: sfDevCY8CMBR3.h:136
const uint8_t kCY8CMBR3DefaultAddr
Definition: sfDevCY8CMBR3.h:45
const uint8_t ksfCY8CMBR3RegSnsGndShort
Definition: sfDevCY8CMBR3.h:147
const uint8_t ksfCY8CMBR3RegPwmDutyCycleCfg5
Definition: sfDevCY8CMBR3.h:109
const uint8_t kCY8CMBR3MinAddr
Definition: sfDevCY8CMBR3.h:46
const uint8_t ksfCY8CMBR3RegProxNt
Definition: sfDevCY8CMBR3.h:95
const uint8_t ksfCY8CMBR3RegProxStat
Definition: sfDevCY8CMBR3.h:152
const uint8_t ksfCY8CMBR3RegDeviceId
Definition: sfDevCY8CMBR3.h:141
const uint8_t ksfCY8CMBR3RegProxCfg2
Definition: sfDevCY8CMBR3.h:87
const uint8_t ksfCY8CMBR3RegDiffCnt5
Definition: sfDevCY8CMBR3.h:164
const uint8_t ksfCY8CMBR3RegGpoCfg
Definition: sfDevCY8CMBR3.h:103
const uint8_t ksfCY8CMBR3RegDeviceCfg3
Definition: sfDevCY8CMBR3.h:116
const uint8_t ksfCY8CMBR3RegCtrlCmdErr
Definition: sfDevCY8CMBR3.h:137
const uint8_t ksfCY8CMBR3RegSliderLbr
Definition: sfDevCY8CMBR3.h:127
const uint8_t ksfCY8CMBR3RegSensorEn
Definition: sfDevCY8CMBR3.h:56
const uint8_t ksfCY8CMBR3RegDeviceCfg1
Definition: sfDevCY8CMBR3.h:114
const uint8_t ksfCY8CMBR3RegFingerThreshold8
Definition: sfDevCY8CMBR3.h:72
const uint8_t ksfCY8CMBR3RegPwmDutyCycleCfg0
Definition: sfDevCY8CMBR3.h:104
const uint8_t kCY8CMBR3MaxAddr
Definition: sfDevCY8CMBR3.h:47
const uint8_t ksfCY8CMBR3RegI2cAddr
Definition: sfDevCY8CMBR3.h:117
const uint8_t ksfCY8CMBR3RegDiffCnt9
Definition: sfDevCY8CMBR3.h:168
const uint8_t ksfCY8CMBR3RegPwmDutyCycleCfg1
Definition: sfDevCY8CMBR3.h:105
const uint8_t ksfCY8CMBR3RegProxLbr
Definition: sfDevCY8CMBR3.h:93
const uint8_t ksfCY8CMBR3RegSlider2Resolution
Definition: sfDevCY8CMBR3.h:125
const uint8_t ksfCY8CMBR3RegLiftoffSlider1Position
Definition: sfDevCY8CMBR3.h:155
sfe_cy8cmbr3_auto_reset_timeout_t
Definition: sfDevCY8CMBR3.h:814
@ AUTO_RESET_TIMEOUT_20_SECONDS
Definition: sfDevCY8CMBR3.h:817
@ AUTO_RESET_TIMEOUT_5_SECONDS
Definition: sfDevCY8CMBR3.h:816
@ AUTO_RESET_TIMEOUT_DISABLED
Definition: sfDevCY8CMBR3.h:815
const uint8_t ksfCY8CMBR3RegBaseThreshold1
Definition: sfDevCY8CMBR3.h:65
const uint8_t ksfCY8CMBR3RegDebugBaseline0
Definition: sfDevCY8CMBR3.h:180
const uint8_t ksfCY8CMBR3RegCalcCrc
Definition: sfDevCY8CMBR3.h:143
const uint8_t ksfCY8CMBR3RegFingerThreshold14
Definition: sfDevCY8CMBR3.h:78
const uint8_t ksfCY8CMBR3RegDiffCnt8
Definition: sfDevCY8CMBR3.h:167
const uint8_t ksfCY8CMBR3RegProxHys
Definition: sfDevCY8CMBR3.h:92
const uint8_t ksfCY8CMBR3RegSlider2Position
Definition: sfDevCY8CMBR3.h:156
const uint8_t ksfCY8CMBR3RegSyncCounter0
Definition: sfDevCY8CMBR3.h:158
const uint8_t ksfCY8CMBR3RegSyncCounter1
Definition: sfDevCY8CMBR3.h:176
const uint8_t ksfCY8CMBR3RegProxEn
Definition: sfDevCY8CMBR3.h:85
sfe_cy8cmbr3_gpo_t
Definition: sfDevCY8CMBR3.h:744
@ GPO_3
Definition: sfDevCY8CMBR3.h:750
@ GPO_5
Definition: sfDevCY8CMBR3.h:752
@ GPO_1
Definition: sfDevCY8CMBR3.h:748
@ GPO_7
Definition: sfDevCY8CMBR3.h:754
@ GPO_0
Definition: sfDevCY8CMBR3.h:747
@ GPO_4
Definition: sfDevCY8CMBR3.h:751
@ GPO_2
Definition: sfDevCY8CMBR3.h:749
@ GPO_6
Definition: sfDevCY8CMBR3.h:753
const uint8_t ksfCY8CMBR3RegPwmDutyCycleCfg7
Definition: sfDevCY8CMBR3.h:111
const uint8_t ksfCY8CMBR3RegCmodShieldTest
Definition: sfDevCY8CMBR3.h:149
const uint8_t ksfCY8CMBR3RegDeviceCfg0
Definition: sfDevCY8CMBR3.h:113
const uint8_t ksfCY8CMBR3RegSensitivity3
Definition: sfDevCY8CMBR3.h:63
const uint8_t ksfCY8CMBR3RegProxTouchTh0
Definition: sfDevCY8CMBR3.h:88
const uint8_t ksfCY8CMBR3RegSliderNt
Definition: sfDevCY8CMBR3.h:129
uint8_t sfe_cy8cmbr3_reg_debug_cp_t
Definition: sfDevCY8CMBR3.h:663
const uint8_t ksfCY8CMBR3RegDiffCnt2
Definition: sfDevCY8CMBR3.h:161
const uint8_t ksfCY8CMBR3RegDiffCnt13
Definition: sfDevCY8CMBR3.h:172
const uint8_t ksfCY8CMBR3RegButtonNt
Definition: sfDevCY8CMBR3.h:84
const uint8_t ksfCY8CMBR3RegConfigCrc
Definition: sfDevCY8CMBR3.h:132
const uint8_t ksfCY8CMBR3RegSyncCounter2
Definition: sfDevCY8CMBR3.h:183
const uint8_t ksfCY8CMBR3RegDeviceCfg2
Definition: sfDevCY8CMBR3.h:115
const uint8_t ksfCY8CMBR3RegBuzzerOnTime
Definition: sfDevCY8CMBR3.h:102
const uint8_t ksfCY8CMBR3RegProxNnt
Definition: sfDevCY8CMBR3.h:94
const uint8_t ksfCY8CMBR3RegFingerThreshold7
Definition: sfDevCY8CMBR3.h:71
const uint8_t kDefaultCY8CMBR3102FamilyID
Definition: sfDevCY8CMBR3.h:50
sfe_cy8cmbr3_refresh_interval_t
Definition: sfDevCY8CMBR3.h:757
@ REFRESH_INTERVAL_500MS
Definition: sfDevCY8CMBR3.h:782
@ REFRESH_INTERVAL_240MS
Definition: sfDevCY8CMBR3.h:769
@ REFRESH_INTERVAL_380MS
Definition: sfDevCY8CMBR3.h:776
@ REFRESH_INTERVAL_200MS
Definition: sfDevCY8CMBR3.h:767
@ REFRESH_INTERVAL_420MS
Definition: sfDevCY8CMBR3.h:778
@ REFRESH_INTERVAL_480MS
Definition: sfDevCY8CMBR3.h:781
@ REFRESH_INTERVAL_180MS
Definition: sfDevCY8CMBR3.h:766
@ REFRESH_INTERVAL_340MS
Definition: sfDevCY8CMBR3.h:774
@ REFRESH_INTERVAL_300MS
Definition: sfDevCY8CMBR3.h:772
@ REFRESH_INTERVAL_280MS
Definition: sfDevCY8CMBR3.h:771
@ REFRESH_INTERVAL_220MS
Definition: sfDevCY8CMBR3.h:768
@ REFRESH_INTERVAL_80MS
Definition: sfDevCY8CMBR3.h:761
@ REFRESH_INTERVAL_140MS
Definition: sfDevCY8CMBR3.h:764
@ REFRESH_INTERVAL_60MS
Definition: sfDevCY8CMBR3.h:760
@ REFRESH_INTERVAL_20MS
Definition: sfDevCY8CMBR3.h:758
@ REFRESH_INTERVAL_40MS
Definition: sfDevCY8CMBR3.h:759
@ REFRESH_INTERVAL_160MS
Definition: sfDevCY8CMBR3.h:765
@ REFRESH_INTERVAL_320MS
Definition: sfDevCY8CMBR3.h:773
@ REFRESH_INTERVAL_120MS
Definition: sfDevCY8CMBR3.h:763
@ REFRESH_INTERVAL_100MS
Definition: sfDevCY8CMBR3.h:762
@ REFRESH_INTERVAL_360MS
Definition: sfDevCY8CMBR3.h:775
@ REFRESH_INTERVAL_460MS
Definition: sfDevCY8CMBR3.h:780
@ REFRESH_INTERVAL_440MS
Definition: sfDevCY8CMBR3.h:779
@ REFRESH_INTERVAL_260MS
Definition: sfDevCY8CMBR3.h:770
@ REFRESH_INTERVAL_400MS
Definition: sfDevCY8CMBR3.h:777
const uint8_t ksfCY8CMBR3RegDiffCnt7
Definition: sfDevCY8CMBR3.h:166
const uint8_t ksfCY8CMBR3RegSystemStatus
Definition: sfDevCY8CMBR3.h:138
const uint8_t ksfCY8CMBR3RegProxNegativeTh1
Definition: sfDevCY8CMBR3.h:99
const uint8_t ksfCY8CMBR3RegTotalWorkingSns
Definition: sfDevCY8CMBR3.h:144
const uint8_t ksfCY8CMBR3RegFingerThreshold13
Definition: sfDevCY8CMBR3.h:77
const uint8_t ksfCY8CMBR3RegSnsCpHigh
Definition: sfDevCY8CMBR3.h:145
const uint8_t ksfCY8CMBR3RegLatchedButtonStat
Definition: sfDevCY8CMBR3.h:151
const uint8_t ksfCY8CMBR3RegSensitivity0
Definition: sfDevCY8CMBR3.h:60
const uint8_t ksfCY8CMBR3RegButtonNnt
Definition: sfDevCY8CMBR3.h:83
const uint8_t ksfCY8CMBR3RegDiffCnt11
Definition: sfDevCY8CMBR3.h:170
const uint8_t ksfCY8CMBR3RegGpoData
Definition: sfDevCY8CMBR3.h:175
const uint8_t ksfCY8CMBR3RegBaseThreshold0
Definition: sfDevCY8CMBR3.h:64
sfe_cy8cmbr3_spo_config_t
Definition: sfDevCY8CMBR3.h:805
@ SPO_DISABLED
Definition: sfDevCY8CMBR3.h:806
@ SPO_SHIELD_ELEC
Definition: sfDevCY8CMBR3.h:808
@ SPO_HOST_INT
Definition: sfDevCY8CMBR3.h:810
@ SPO_CAP_SENSE
Definition: sfDevCY8CMBR3.h:807
@ SPO_GPO
Definition: sfDevCY8CMBR3.h:811
@ SPO_BUZZER
Definition: sfDevCY8CMBR3.h:809
const uint8_t ksfCY8CMBR3RegDiffCnt12
Definition: sfDevCY8CMBR3.h:171
const uint8_t ksfCY8CMBR3RegCtrlCmd
Definition: sfDevCY8CMBR3.h:135
sfe_cy8cmbr3_sensor_id_t
Definition: sfDevCY8CMBR3.h:717
@ SID_0
Definition: sfDevCY8CMBR3.h:718
@ SID_11
Definition: sfDevCY8CMBR3.h:729
@ SID_13
Definition: sfDevCY8CMBR3.h:731
@ SID_14
Definition: sfDevCY8CMBR3.h:732
@ SID_3
Definition: sfDevCY8CMBR3.h:721
@ SID_15
Definition: sfDevCY8CMBR3.h:733
@ SID_7
Definition: sfDevCY8CMBR3.h:725
@ SID_INVALID
Definition: sfDevCY8CMBR3.h:734
@ SID_9
Definition: sfDevCY8CMBR3.h:727
@ SID_12
Definition: sfDevCY8CMBR3.h:730
@ SID_2
Definition: sfDevCY8CMBR3.h:720
@ SID_6
Definition: sfDevCY8CMBR3.h:724
@ SID_1
Definition: sfDevCY8CMBR3.h:719
@ SID_4
Definition: sfDevCY8CMBR3.h:722
@ SID_5
Definition: sfDevCY8CMBR3.h:723
@ SID_8
Definition: sfDevCY8CMBR3.h:726
@ SID_10
Definition: sfDevCY8CMBR3.h:728
const uint8_t ksfCY8CMBR3RegDiffCnt10
Definition: sfDevCY8CMBR3.h:169
const uint8_t ksfCY8CMBR3RegFingerThreshold11
Definition: sfDevCY8CMBR3.h:75
const uint8_t ksfCY8CMBR3RegPwmDutyCycleCfg3
Definition: sfDevCY8CMBR3.h:107
sfe_cy8cmbr3_ctrl_cmd_err_t
Definition: sfDevCY8CMBR3.h:798
@ CTRL_CMD_ERR_CRC_FAILED
Definition: sfDevCY8CMBR3.h:801
@ CTRL_CMD_ERR_SAVE_FAILED
Definition: sfDevCY8CMBR3.h:800
@ CTRL_CMD_ERR_INVALID_CMD
Definition: sfDevCY8CMBR3.h:802
@ CTRL_CMD_ERR_NO_ERROR
Definition: sfDevCY8CMBR3.h:799
const uint8_t ksfCY8CMBR3RegToggleEn
Definition: sfDevCY8CMBR3.h:58
const uint8_t ksfCY8CMBR3RegFingerThreshold4
Definition: sfDevCY8CMBR3.h:68
const uint8_t ksfCY8CMBR3RegSlider1Resolution
Definition: sfDevCY8CMBR3.h:122
const uint8_t ksfCY8CMBR3RegStateTimeout
Definition: sfDevCY8CMBR3.h:119
const uint8_t ksfCY8CMBR3RegPwmDutyCycleCfg2
Definition: sfDevCY8CMBR3.h:106
const uint8_t ksfCY8CMBR3RegSlider1Threshold
Definition: sfDevCY8CMBR3.h:123
const uint8_t ksfCY8CMBR3RegBuzzerCfg
Definition: sfDevCY8CMBR3.h:101
const uint8_t ksfCY8CMBR3RegFssEn
Definition: sfDevCY8CMBR3.h:57
const uint8_t ksfCY8CMBR3RegProxCfg
Definition: sfDevCY8CMBR3.h:86
const uint8_t ksfCY8CMBR3RegSensorDebounce
Definition: sfDevCY8CMBR3.h:80
const uint8_t ksfCY8CMBR3RegFingerThreshold5
Definition: sfDevCY8CMBR3.h:69
sfe_cy8cmbr3_sensitivity_t
Definition: sfDevCY8CMBR3.h:737
@ CS_SENSITIVITY_125_COUNTS_PER_PF
Definition: sfDevCY8CMBR3.h:741
@ CS_SENSITIVITY_167_COUNTS_PER_PF
Definition: sfDevCY8CMBR3.h:740
@ CS_SENSITIVITY_250_COUNTS_PER_PF
Definition: sfDevCY8CMBR3.h:739
@ CS_SENSITIVITY_500_COUNTS_PER_PF
Definition: sfDevCY8CMBR3.h:738
const uint8_t ksfCY8CMBR3RegFingerThreshold10
Definition: sfDevCY8CMBR3.h:74
const uint8_t ksfCY8CMBR3RegSlider1Cfg
Definition: sfDevCY8CMBR3.h:121
const uint8_t ksfCY8CMBR3RegSlider2Cfg
Definition: sfDevCY8CMBR3.h:124
const uint8_t ksfCY8CMBR3RegSlider1Position
Definition: sfDevCY8CMBR3.h:154
const uint8_t ksfCY8CMBR3RegDebugCp
Definition: sfDevCY8CMBR3.h:178
const uint8_t ksfCY8CMBR3RegProxNegativeTh0
Definition: sfDevCY8CMBR3.h:98
const uint8_t ksfCY8CMBR3RegDiffCnt6
Definition: sfDevCY8CMBR3.h:165
const uint8_t ksfCY8CMBR3RegProxPositiveTh0
Definition: sfDevCY8CMBR3.h:96
const uint8_t ksfCY8CMBR3RegDebugSensorId
Definition: sfDevCY8CMBR3.h:177
sfe_cy8cmbr3_ctrl_cmd_t
Definition: sfDevCY8CMBR3.h:786
@ CTRL_CMD_SW_RESET
Definition: sfDevCY8CMBR3.h:794
@ CTRL_CMD_RESET_LATCH
Definition: sfDevCY8CMBR3.h:791
@ CTRL_CMD_CALC_CRC
Definition: sfDevCY8CMBR3.h:789
@ CTRL_CMD_NO_OP
Definition: sfDevCY8CMBR3.h:787
@ CTRL_CMD_DEEP_SLEEP
Definition: sfDevCY8CMBR3.h:790
@ CTRL_CMD_SAVE_CONFIG
Definition: sfDevCY8CMBR3.h:788
@ CTRL_CMD_ALP_RESET_PS1
Definition: sfDevCY8CMBR3.h:793
@ CTRL_CMD_ALP_RESET_PS0
Definition: sfDevCY8CMBR3.h:792
const uint8_t ksfCY8CMBR3RegDiffCnt15
Definition: sfDevCY8CMBR3.h:174
const uint8_t ksfCY8CMBR3RegFingerThreshold9
Definition: sfDevCY8CMBR3.h:73
const uint8_t ksfCY8CMBR3RegFamilyId
Definition: sfDevCY8CMBR3.h:140
const uint8_t ksfCY8CMBR3RegFingerThreshold12
Definition: sfDevCY8CMBR3.h:76
const uint16_t kDefaultCY8CMBR3102DeviceID
Definition: sfDevCY8CMBR3.h:51
const uint8_t ksfCY8CMBR3RegScratchpad0
Definition: sfDevCY8CMBR3.h:130
const uint8_t ksfCY8CMBR3RegDiffCnt4
Definition: sfDevCY8CMBR3.h:163
const uint8_t ksfCY8CMBR3RegFingerThreshold3
Definition: sfDevCY8CMBR3.h:67
const uint8_t ksfCY8CMBR3RegSensitivity1
Definition: sfDevCY8CMBR3.h:61
const uint8_t ksfCY8CMBR3RegButtonHys
Definition: sfDevCY8CMBR3.h:81
const uint8_t ksfCY8CMBR3RegDebugRawCnt0
Definition: sfDevCY8CMBR3.h:181
const uint8_t ksfCY8CMBR3RegPrevCtrlCmdCode
Definition: sfDevCY8CMBR3.h:139
const uint8_t ksfCY8CMBR3RegSpoCfg
Definition: sfDevCY8CMBR3.h:112
const uint8_t ksfCY8CMBR3RegSensorId
Definition: sfDevCY8CMBR3.h:134
const uint8_t ksfCY8CMBR3RegLedOnEn
Definition: sfDevCY8CMBR3.h:59
const uint8_t ksfCY8CMBR3RegDebugAvgRawCnt0
Definition: sfDevCY8CMBR3.h:182
const uint8_t ksfCY8CMBR3RegDebugDiffCnt0
Definition: sfDevCY8CMBR3.h:179
const uint8_t ksfCY8CMBR3RegDiffCnt1
Definition: sfDevCY8CMBR3.h:160
const uint8_t ksfCY8CMBR3RegFingerThreshold2
Definition: sfDevCY8CMBR3.h:66
const uint8_t ksfCY8CMBR3RegSliderCfg
Definition: sfDevCY8CMBR3.h:120
const uint8_t ksfCY8CMBR3RegButtonStat
Definition: sfDevCY8CMBR3.h:150
const uint8_t ksfCY8CMBR3RegProxPositiveTh1
Definition: sfDevCY8CMBR3.h:97
const uint8_t ksfCY8CMBR3RegDiffCnt0
Definition: sfDevCY8CMBR3.h:159
const uint8_t ksfCY8CMBR3RegSliderNnt
Definition: sfDevCY8CMBR3.h:128
const uint8_t ksfCY8CMBR3RegScratchpad1
Definition: sfDevCY8CMBR3.h:131
const uint8_t ksfCY8CMBR3RegSlider2Threshold
Definition: sfDevCY8CMBR3.h:126
const uint8_t ksfCY8CMBR3RegGpoOutputState
Definition: sfDevCY8CMBR3.h:133
const uint8_t ksfCY8CMBR3RegPwmDutyCycleCfg6
Definition: sfDevCY8CMBR3.h:110
const uint8_t ksfCY8CMBR3RegButtonLbr
Definition: sfDevCY8CMBR3.h:82
Definition: sfDevCY8CMBR3.h:260
uint8_t byte
Definition: sfDevCY8CMBR3.h:264
uint8_t CS_BASE_THRESHOLD
Definition: sfDevCY8CMBR3.h:262
Definition: sfDevCY8CMBR3.h:276
uint8_t BUTTON_HYSTERESIS
Definition: sfDevCY8CMBR3.h:278
uint8_t RESERVED
Definition: sfDevCY8CMBR3.h:279
uint8_t OVERRIDE
Definition: sfDevCY8CMBR3.h:280
uint8_t byte
Definition: sfDevCY8CMBR3.h:282
Definition: sfDevCY8CMBR3.h:286
uint8_t LOW_BASELINE_RESET_THRESHOLD
Definition: sfDevCY8CMBR3.h:288
uint8_t OVERRIDE
Definition: sfDevCY8CMBR3.h:289
uint8_t byte
Definition: sfDevCY8CMBR3.h:291
Definition: sfDevCY8CMBR3.h:295
uint8_t OVERRIDE
Definition: sfDevCY8CMBR3.h:298
uint8_t NEGATIVE_NOISE_THRESHOLD
Definition: sfDevCY8CMBR3.h:297
uint8_t byte
Definition: sfDevCY8CMBR3.h:300
Definition: sfDevCY8CMBR3.h:304
uint8_t OVERRIDE
Definition: sfDevCY8CMBR3.h:307
uint8_t byte
Definition: sfDevCY8CMBR3.h:309
uint8_t NOISE_THRESHOLD
Definition: sfDevCY8CMBR3.h:306
Definition: sfDevCY8CMBR3.h:555
uint8_t CS8
Definition: sfDevCY8CMBR3.h:565
uint8_t CS0
Definition: sfDevCY8CMBR3.h:557
uint8_t CS15
Definition: sfDevCY8CMBR3.h:572
uint8_t CS10
Definition: sfDevCY8CMBR3.h:567
uint8_t CS3
Definition: sfDevCY8CMBR3.h:560
uint8_t CS9
Definition: sfDevCY8CMBR3.h:566
uint8_t CS7
Definition: sfDevCY8CMBR3.h:564
uint8_t CS1
Definition: sfDevCY8CMBR3.h:558
uint8_t CS12
Definition: sfDevCY8CMBR3.h:569
uint8_t CS11
Definition: sfDevCY8CMBR3.h:568
uint8_t CS6
Definition: sfDevCY8CMBR3.h:563
uint16_t word
Definition: sfDevCY8CMBR3.h:574
uint8_t CS5
Definition: sfDevCY8CMBR3.h:562
uint8_t CS14
Definition: sfDevCY8CMBR3.h:571
uint8_t CS13
Definition: sfDevCY8CMBR3.h:570
uint8_t CS4
Definition: sfDevCY8CMBR3.h:561
uint8_t CS2
Definition: sfDevCY8CMBR3.h:559
Definition: sfDevCY8CMBR3.h:503
uint8_t CRC_LSB
Definition: sfDevCY8CMBR3.h:505
uint16_t word
Definition: sfDevCY8CMBR3.h:508
uint8_t CRC_MSB
Definition: sfDevCY8CMBR3.h:506
Definition: sfDevCY8CMBR3.h:675
uint16_t word
Definition: sfDevCY8CMBR3.h:680
uint8_t BASELINE_LSB
Definition: sfDevCY8CMBR3.h:677
uint8_t BASELINE_MSB
Definition: sfDevCY8CMBR3.h:678
Definition: sfDevCY8CMBR3.h:666
uint8_t DIFF_COUNT_LSB
Definition: sfDevCY8CMBR3.h:668
uint8_t DIFF_COUNT_MSB
Definition: sfDevCY8CMBR3.h:669
uint16_t word
Definition: sfDevCY8CMBR3.h:671
Definition: sfDevCY8CMBR3.h:684
uint16_t word
Definition: sfDevCY8CMBR3.h:689
uint8_t RAW_COUNT_MSB
Definition: sfDevCY8CMBR3.h:687
uint8_t RAW_COUNT_LSB
Definition: sfDevCY8CMBR3.h:686
Definition: sfDevCY8CMBR3.h:434
uint8_t MED_EN
Definition: sfDevCY8CMBR3.h:436
uint8_t byte
Definition: sfDevCY8CMBR3.h:440
uint8_t IIR_EN
Definition: sfDevCY8CMBR3.h:437
uint8_t RESERVED
Definition: sfDevCY8CMBR3.h:438
Definition: sfDevCY8CMBR3.h:444
uint8_t SYSD_EN
Definition: sfDevCY8CMBR3.h:446
uint8_t RESERVED
Definition: sfDevCY8CMBR3.h:447
uint8_t byte
Definition: sfDevCY8CMBR3.h:449
Definition: sfDevCY8CMBR3.h:454
uint8_t GUARD_EN
Definition: sfDevCY8CMBR3.h:457
uint8_t ATH_EN
Definition: sfDevCY8CMBR3.h:459
uint8_t BUTTON_SLD_ARST
Definition: sfDevCY8CMBR3.h:460
uint8_t SHIELD_EN
Definition: sfDevCY8CMBR3.h:456
uint8_t EMC_EN
Definition: sfDevCY8CMBR3.h:458
uint8_t byte
Definition: sfDevCY8CMBR3.h:463
uint8_t PROXIMITY_ARST
Definition: sfDevCY8CMBR3.h:461
Definition: sfDevCY8CMBR3.h:467
uint8_t LOW_POWER_MODE
Definition: sfDevCY8CMBR3.h:469
uint8_t byte
Definition: sfDevCY8CMBR3.h:472
uint8_t RESERVED
Definition: sfDevCY8CMBR3.h:470
Definition: sfDevCY8CMBR3.h:527
uint8_t DEVICE_ID_LSB
Definition: sfDevCY8CMBR3.h:529
uint8_t DEVICE_ID_MSB
Definition: sfDevCY8CMBR3.h:530
uint16_t word
Definition: sfDevCY8CMBR3.h:532
Definition: sfDevCY8CMBR3.h:536
uint16_t word
Definition: sfDevCY8CMBR3.h:541
uint8_t REVISION
Definition: sfDevCY8CMBR3.h:538
uint8_t reserved
Definition: sfDevCY8CMBR3.h:539
Definition: sfDevCY8CMBR3.h:630
uint16_t word
Definition: sfDevCY8CMBR3.h:635
uint8_t DIFF_COUNT_LSB
Definition: sfDevCY8CMBR3.h:632
uint8_t DIFF_COUNT_MSB
Definition: sfDevCY8CMBR3.h:633
Definition: sfDevCY8CMBR3.h:268
uint8_t CS_FINGER_THRESHOLD
Definition: sfDevCY8CMBR3.h:270
uint8_t byte
Definition: sfDevCY8CMBR3.h:272
Definition: sfDevCY8CMBR3.h:402
uint8_t GPO_CTL
Definition: sfDevCY8CMBR3.h:404
uint8_t ACTIVE_STATE
Definition: sfDevCY8CMBR3.h:407
uint8_t DRIVE_MODE
Definition: sfDevCY8CMBR3.h:406
uint8_t RESERVED
Definition: sfDevCY8CMBR3.h:408
uint8_t byte
Definition: sfDevCY8CMBR3.h:410
uint8_t GPO_PWM
Definition: sfDevCY8CMBR3.h:405
Definition: sfDevCY8CMBR3.h:639
uint8_t byte
Definition: sfDevCY8CMBR3.h:650
uint8_t GPO2
Definition: sfDevCY8CMBR3.h:643
uint8_t GPO1
Definition: sfDevCY8CMBR3.h:642
uint8_t GPO0
Definition: sfDevCY8CMBR3.h:641
uint8_t GPO5
Definition: sfDevCY8CMBR3.h:646
uint8_t GPO7
Definition: sfDevCY8CMBR3.h:648
uint8_t GPO6
Definition: sfDevCY8CMBR3.h:647
uint8_t GPO3
Definition: sfDevCY8CMBR3.h:644
uint8_t GPO4
Definition: sfDevCY8CMBR3.h:645
Definition: sfDevCY8CMBR3.h:512
uint8_t GPO7
Definition: sfDevCY8CMBR3.h:521
uint8_t GPO3
Definition: sfDevCY8CMBR3.h:517
uint8_t GPO1
Definition: sfDevCY8CMBR3.h:515
uint8_t GPO6
Definition: sfDevCY8CMBR3.h:520
uint8_t GPO4
Definition: sfDevCY8CMBR3.h:518
uint8_t GPO5
Definition: sfDevCY8CMBR3.h:519
uint8_t GPO0
Definition: sfDevCY8CMBR3.h:514
uint8_t byte
Definition: sfDevCY8CMBR3.h:523
uint8_t GPO2
Definition: sfDevCY8CMBR3.h:516
Definition: sfDevCY8CMBR3.h:476
uint8_t RESERVED
Definition: sfDevCY8CMBR3.h:479
uint8_t I2C_ADDRESS
Definition: sfDevCY8CMBR3.h:478
uint8_t byte
Definition: sfDevCY8CMBR3.h:481
Definition: sfDevCY8CMBR3.h:578
uint8_t CS8
Definition: sfDevCY8CMBR3.h:588
uint8_t CS13
Definition: sfDevCY8CMBR3.h:593
uint8_t CS3
Definition: sfDevCY8CMBR3.h:583
uint8_t CS10
Definition: sfDevCY8CMBR3.h:590
uint8_t CS6
Definition: sfDevCY8CMBR3.h:586
uint8_t CS11
Definition: sfDevCY8CMBR3.h:591
uint16_t word
Definition: sfDevCY8CMBR3.h:597
uint8_t CS9
Definition: sfDevCY8CMBR3.h:589
uint8_t CS5
Definition: sfDevCY8CMBR3.h:585
uint8_t CS4
Definition: sfDevCY8CMBR3.h:584
uint8_t CS14
Definition: sfDevCY8CMBR3.h:594
uint8_t CS1
Definition: sfDevCY8CMBR3.h:581
uint8_t CS2
Definition: sfDevCY8CMBR3.h:582
uint8_t CS7
Definition: sfDevCY8CMBR3.h:587
uint8_t CS15
Definition: sfDevCY8CMBR3.h:595
uint8_t CS12
Definition: sfDevCY8CMBR3.h:592
uint8_t CS0
Definition: sfDevCY8CMBR3.h:580
Definition: sfDevCY8CMBR3.h:611
uint8_t PS0
Definition: sfDevCY8CMBR3.h:613
uint8_t RESERVED
Definition: sfDevCY8CMBR3.h:615
uint8_t PS1
Definition: sfDevCY8CMBR3.h:614
uint8_t byte
Definition: sfDevCY8CMBR3.h:617
Definition: sfDevCY8CMBR3.h:233
uint8_t GPO7
Definition: sfDevCY8CMBR3.h:242
uint8_t GPO3
Definition: sfDevCY8CMBR3.h:238
uint8_t GPO0
Definition: sfDevCY8CMBR3.h:235
uint16_t word
Definition: sfDevCY8CMBR3.h:245
uint8_t GPO5
Definition: sfDevCY8CMBR3.h:240
uint8_t GPO4
Definition: sfDevCY8CMBR3.h:239
uint8_t GPO1
Definition: sfDevCY8CMBR3.h:236
uint8_t GPO6
Definition: sfDevCY8CMBR3.h:241
uint8_t GPO2
Definition: sfDevCY8CMBR3.h:237
uint8_t reserved
Definition: sfDevCY8CMBR3.h:243
Definition: sfDevCY8CMBR3.h:393
uint8_t RESERVED
Definition: sfDevCY8CMBR3.h:396
uint8_t LED_ON_TIME
Definition: sfDevCY8CMBR3.h:395
uint8_t byte
Definition: sfDevCY8CMBR3.h:398
Definition: sfDevCY8CMBR3.h:339
uint8_t ALP_FILTER_K
Definition: sfDevCY8CMBR3.h:341
uint8_t byte
Definition: sfDevCY8CMBR3.h:344
uint8_t RESERVED
Definition: sfDevCY8CMBR3.h:342
Definition: sfDevCY8CMBR3.h:328
uint8_t RESERVED
Definition: sfDevCY8CMBR3.h:332
uint8_t byte
Definition: sfDevCY8CMBR3.h:335
uint8_t PS0_WAKE_ON_APPROACH
Definition: sfDevCY8CMBR3.h:330
uint8_t PS1_WAKE_ON_APPROACH
Definition: sfDevCY8CMBR3.h:331
uint8_t ALP_FILTER_EN
Definition: sfDevCY8CMBR3.h:333
Definition: sfDevCY8CMBR3.h:313
uint8_t PS1
Definition: sfDevCY8CMBR3.h:316
uint8_t byte
Definition: sfDevCY8CMBR3.h:319
uint8_t PS0
Definition: sfDevCY8CMBR3.h:315
uint8_t reserved
Definition: sfDevCY8CMBR3.h:317
Definition: sfDevCY8CMBR3.h:357
uint8_t PROX_HYSTERESIS
Definition: sfDevCY8CMBR3.h:359
uint8_t RESERVED
Definition: sfDevCY8CMBR3.h:360
uint8_t byte
Definition: sfDevCY8CMBR3.h:362
Definition: sfDevCY8CMBR3.h:366
uint8_t OVERRIDE
Definition: sfDevCY8CMBR3.h:369
uint8_t byte
Definition: sfDevCY8CMBR3.h:371
uint8_t LOW_BASELINE_RESET_THRESHOLD
Definition: sfDevCY8CMBR3.h:368
Definition: sfDevCY8CMBR3.h:375
uint8_t byte
Definition: sfDevCY8CMBR3.h:380
uint8_t NEGATIVE_NOISE_THRESHOLD
Definition: sfDevCY8CMBR3.h:377
uint8_t OVERRIDE
Definition: sfDevCY8CMBR3.h:378
Definition: sfDevCY8CMBR3.h:384
uint8_t byte
Definition: sfDevCY8CMBR3.h:389
uint8_t NOISE_THRESHOLD
Definition: sfDevCY8CMBR3.h:386
uint8_t OVERRIDE
Definition: sfDevCY8CMBR3.h:387
Definition: sfDevCY8CMBR3.h:348
uint8_t RESERVED
Definition: sfDevCY8CMBR3.h:351
uint8_t PROX_RESOLUTION
Definition: sfDevCY8CMBR3.h:350
uint8_t byte
Definition: sfDevCY8CMBR3.h:353
Definition: sfDevCY8CMBR3.h:601
uint8_t RESERVED
Definition: sfDevCY8CMBR3.h:605
uint8_t byte
Definition: sfDevCY8CMBR3.h:607
uint8_t PS0
Definition: sfDevCY8CMBR3.h:603
uint8_t PS1
Definition: sfDevCY8CMBR3.h:604
Definition: sfDevCY8CMBR3.h:414
uint8_t byte
Definition: sfDevCY8CMBR3.h:419
uint8_t HIGH_DUTY_CYCLE
Definition: sfDevCY8CMBR3.h:416
uint8_t LOW_DUTY_CYCLE
Definition: sfDevCY8CMBR3.h:417
Definition: sfDevCY8CMBR3.h:485
uint8_t REFRESH_INTERVAL
Definition: sfDevCY8CMBR3.h:487
uint8_t RESERVED
Definition: sfDevCY8CMBR3.h:488
uint8_t byte
Definition: sfDevCY8CMBR3.h:490
Definition: sfDevCY8CMBR3.h:249
uint8_t CS0_SENSITIVITY
Definition: sfDevCY8CMBR3.h:251
uint8_t byte
Definition: sfDevCY8CMBR3.h:256
uint8_t CS1_SENSITIVITY
Definition: sfDevCY8CMBR3.h:252
uint8_t CS3_SENSITIVITY
Definition: sfDevCY8CMBR3.h:254
uint8_t CS2_SENSITIVITY
Definition: sfDevCY8CMBR3.h:253
Definition: sfDevCY8CMBR3.h:194
uint8_t CS6
Definition: sfDevCY8CMBR3.h:202
uint8_t CS12
Definition: sfDevCY8CMBR3.h:208
uint8_t CS3
Definition: sfDevCY8CMBR3.h:199
uint8_t CS11
Definition: sfDevCY8CMBR3.h:207
uint8_t CS9
Definition: sfDevCY8CMBR3.h:205
uint8_t CS0
Definition: sfDevCY8CMBR3.h:196
uint8_t CS4
Definition: sfDevCY8CMBR3.h:200
uint8_t CS5
Definition: sfDevCY8CMBR3.h:201
uint8_t CS13
Definition: sfDevCY8CMBR3.h:209
uint16_t word
Definition: sfDevCY8CMBR3.h:213
uint8_t CS8
Definition: sfDevCY8CMBR3.h:204
uint8_t CS1
Definition: sfDevCY8CMBR3.h:197
uint8_t CS2
Definition: sfDevCY8CMBR3.h:198
uint8_t CS7
Definition: sfDevCY8CMBR3.h:203
uint8_t CS15
Definition: sfDevCY8CMBR3.h:211
uint8_t CS14
Definition: sfDevCY8CMBR3.h:210
uint8_t CS10
Definition: sfDevCY8CMBR3.h:206
Definition: sfDevCY8CMBR3.h:423
uint8_t byte
Definition: sfDevCY8CMBR3.h:430
uint8_t RESERVED1
Definition: sfDevCY8CMBR3.h:428
uint8_t SPO0
Definition: sfDevCY8CMBR3.h:425
uint8_t SPO1
Definition: sfDevCY8CMBR3.h:427
uint8_t RESERVED0
Definition: sfDevCY8CMBR3.h:426
Definition: sfDevCY8CMBR3.h:494
uint8_t byte
Definition: sfDevCY8CMBR3.h:499
uint8_t RESERVED
Definition: sfDevCY8CMBR3.h:497
uint8_t TIMEOUT
Definition: sfDevCY8CMBR3.h:496
Definition: sfDevCY8CMBR3.h:621
uint8_t RESERVED
Definition: sfDevCY8CMBR3.h:624
uint8_t COUNTER
Definition: sfDevCY8CMBR3.h:623
uint8_t byte
Definition: sfDevCY8CMBR3.h:626
Definition: sfDevCY8CMBR3.h:654
uint8_t COUNTER
Definition: sfDevCY8CMBR3.h:656
uint8_t RESERVED
Definition: sfDevCY8CMBR3.h:657
uint8_t byte
Definition: sfDevCY8CMBR3.h:659
Definition: sfDevCY8CMBR3.h:693
uint8_t RESERVED
Definition: sfDevCY8CMBR3.h:696
uint8_t COUNTER
Definition: sfDevCY8CMBR3.h:695
uint8_t byte
Definition: sfDevCY8CMBR3.h:698
Definition: sfDevCY8CMBR3.h:702
uint8_t F_DEFAULT
Definition: sfDevCY8CMBR3.h:704
uint8_t byte
Definition: sfDevCY8CMBR3.h:707
uint8_t RESERVED
Definition: sfDevCY8CMBR3.h:705
Definition: sfDevCY8CMBR3.h:217
uint8_t GPO4
Definition: sfDevCY8CMBR3.h:223
uint8_t GPO7
Definition: sfDevCY8CMBR3.h:226
uint16_t word
Definition: sfDevCY8CMBR3.h:229
uint8_t GPO3
Definition: sfDevCY8CMBR3.h:222
uint8_t reserved
Definition: sfDevCY8CMBR3.h:227
uint8_t GPO0
Definition: sfDevCY8CMBR3.h:219
uint8_t GPO6
Definition: sfDevCY8CMBR3.h:225
uint8_t GPO1
Definition: sfDevCY8CMBR3.h:220
uint8_t GPO5
Definition: sfDevCY8CMBR3.h:224
uint8_t GPO2
Definition: sfDevCY8CMBR3.h:221
Definition: sfDevCY8CMBR3.h:545
uint8_t RESERVED
Definition: sfDevCY8CMBR3.h:548
uint8_t SYSD_ERR
Definition: sfDevCY8CMBR3.h:549
uint8_t SENSOR_COUNT
Definition: sfDevCY8CMBR3.h:547
uint8_t byte
Definition: sfDevCY8CMBR3.h:551