1 //----------------------------------------------------------------------------- 2 // Copyright 2012 (c) Silicon Laboratories Inc. 3 // 4 // SPDX-License-Identifier: Zlib 5 // 6 // This siHAL software is provided 'as-is', without any express or implied 7 // warranty. In no event will the authors be held liable for any damages 8 // arising from the use of this software. 9 // 10 // Permission is granted to anyone to use this software for any purpose, 11 // including commercial applications, and to alter it and redistribute it 12 // freely, subject to the following restrictions: 13 // 14 // 1. The origin of this software must not be misrepresented; you must not 15 // claim that you wrote the original software. If you use this software 16 // in a product, an acknowledgment in the product documentation would be 17 // appreciated but is not required. 18 // 2. Altered source versions must be plainly marked as such, and must not be 19 // misrepresented as being the original software. 20 // 3. This notice may not be removed or altered from any source distribution. 21 //----------------------------------------------------------------------------- 22 // 23 // Script: 0.61 24 // Version: 1 25 26 #ifndef __SI32_CAPSENSE_A_REGISTERS_H__ 27 #define __SI32_CAPSENSE_A_REGISTERS_H__ 28 29 #include <stdint.h> 30 31 #ifdef __cplusplus 32 extern "C" { 33 #endif 34 35 struct SI32_CAPSENSE_A_CONTROL_Struct 36 { 37 union 38 { 39 struct 40 { 41 // Start and Busy Flag 42 volatile uint32_t BUSYF: 1; 43 // Module Enable 44 volatile uint32_t CSEN: 1; 45 // Bias Enable 46 volatile uint32_t BIASEN: 1; 47 // Digital Comparator Polarity Select 48 volatile uint32_t CMPPOL: 1; 49 // Conversion Mode Select 50 volatile uint32_t CMD: 2; 51 // Conversion Rate 52 volatile uint32_t CNVR: 2; 53 // Accumulator Mode Select 54 volatile uint32_t ACCMD: 3; 55 // Multiple Channel Enable 56 volatile uint32_t MCEN: 1; 57 // Start of Conversion Mode Select 58 volatile uint32_t CSCM: 4; 59 // Pin Monitor Mode 60 volatile uint32_t PMMD: 2; 61 // Pin Monitor Event Flag 62 volatile uint32_t PMEF: 1; 63 uint32_t reserved0: 1; 64 // Threshold Comparator Enable 65 volatile uint32_t CMPEN: 1; 66 // Conversion Done Interrupt Enable 67 volatile uint32_t CDIEN: 1; 68 // End-of-Scan Interrupt Enable 69 volatile uint32_t EOSIEN: 1; 70 uint32_t reserved1: 1; 71 // Threshold Comparator Interrupt Flag 72 volatile uint32_t CMPI: 1; 73 // Conversion Done Interrupt Flag 74 volatile uint32_t CDI: 1; 75 // End-of-Scan Interrupt Flag 76 volatile uint32_t EOSI: 1; 77 uint32_t reserved2: 5; 78 }; 79 volatile uint32_t U32; 80 }; 81 }; 82 83 #define SI32_CAPSENSE_A_CONTROL_BUSYF_MASK 0x00000001 84 #define SI32_CAPSENSE_A_CONTROL_BUSYF_SHIFT 0 85 // Read: A capacitive sensing conversion is complete or a conversion is not 86 // currently in progress. Write: No effect. 87 #define SI32_CAPSENSE_A_CONTROL_BUSYF_IDLE_VALUE 0 88 #define SI32_CAPSENSE_A_CONTROL_BUSYF_IDLE_U32 \ 89 (SI32_CAPSENSE_A_CONTROL_BUSYF_IDLE_VALUE << SI32_CAPSENSE_A_CONTROL_BUSYF_SHIFT) 90 // Read: A capacitive sensing conversion is in progress. Write: Initiate a 91 // capacitive sensing conversion if BUSYF is selected as the start of conversion 92 // source. 93 #define SI32_CAPSENSE_A_CONTROL_BUSYF_BUSY_VALUE 1 94 #define SI32_CAPSENSE_A_CONTROL_BUSYF_BUSY_U32 \ 95 (SI32_CAPSENSE_A_CONTROL_BUSYF_BUSY_VALUE << SI32_CAPSENSE_A_CONTROL_BUSYF_SHIFT) 96 97 #define SI32_CAPSENSE_A_CONTROL_CSEN_MASK 0x00000002 98 #define SI32_CAPSENSE_A_CONTROL_CSEN_SHIFT 1 99 // Disable the capacitive sensing module. 100 #define SI32_CAPSENSE_A_CONTROL_CSEN_DISABLED_VALUE 0 101 #define SI32_CAPSENSE_A_CONTROL_CSEN_DISABLED_U32 \ 102 (SI32_CAPSENSE_A_CONTROL_CSEN_DISABLED_VALUE << SI32_CAPSENSE_A_CONTROL_CSEN_SHIFT) 103 // Enable the capacitive sensing module. 104 #define SI32_CAPSENSE_A_CONTROL_CSEN_ENABLED_VALUE 1 105 #define SI32_CAPSENSE_A_CONTROL_CSEN_ENABLED_U32 \ 106 (SI32_CAPSENSE_A_CONTROL_CSEN_ENABLED_VALUE << SI32_CAPSENSE_A_CONTROL_CSEN_SHIFT) 107 108 #define SI32_CAPSENSE_A_CONTROL_BIASEN_MASK 0x00000004 109 #define SI32_CAPSENSE_A_CONTROL_BIASEN_SHIFT 2 110 // Disable the bias. 111 #define SI32_CAPSENSE_A_CONTROL_BIASEN_DISABLED_VALUE 0 112 #define SI32_CAPSENSE_A_CONTROL_BIASEN_DISABLED_U32 \ 113 (SI32_CAPSENSE_A_CONTROL_BIASEN_DISABLED_VALUE << SI32_CAPSENSE_A_CONTROL_BIASEN_SHIFT) 114 // Enable the bias. 115 #define SI32_CAPSENSE_A_CONTROL_BIASEN_ENABLED_VALUE 1 116 #define SI32_CAPSENSE_A_CONTROL_BIASEN_ENABLED_U32 \ 117 (SI32_CAPSENSE_A_CONTROL_BIASEN_ENABLED_VALUE << SI32_CAPSENSE_A_CONTROL_BIASEN_SHIFT) 118 119 #define SI32_CAPSENSE_A_CONTROL_CMPPOL_MASK 0x00000008 120 #define SI32_CAPSENSE_A_CONTROL_CMPPOL_SHIFT 3 121 // The digital comparator generates an interrupt if the conversion is greater than 122 // the CSTH threshold. 123 #define SI32_CAPSENSE_A_CONTROL_CMPPOL_GT_VALUE 0 124 #define SI32_CAPSENSE_A_CONTROL_CMPPOL_GT_U32 \ 125 (SI32_CAPSENSE_A_CONTROL_CMPPOL_GT_VALUE << SI32_CAPSENSE_A_CONTROL_CMPPOL_SHIFT) 126 // The digital comparator generates an interrupt if the conversion is less than or 127 // equal to the CSTH threshold. 128 #define SI32_CAPSENSE_A_CONTROL_CMPPOL_LTE_VALUE 1 129 #define SI32_CAPSENSE_A_CONTROL_CMPPOL_LTE_U32 \ 130 (SI32_CAPSENSE_A_CONTROL_CMPPOL_LTE_VALUE << SI32_CAPSENSE_A_CONTROL_CMPPOL_SHIFT) 131 132 #define SI32_CAPSENSE_A_CONTROL_CMD_MASK 0x00000030 133 #define SI32_CAPSENSE_A_CONTROL_CMD_SHIFT 4 134 // Single Conversion Mode: One conversion occurs on a single channel. 135 #define SI32_CAPSENSE_A_CONTROL_CMD_SINGLE_VALUE 0 136 #define SI32_CAPSENSE_A_CONTROL_CMD_SINGLE_U32 \ 137 (SI32_CAPSENSE_A_CONTROL_CMD_SINGLE_VALUE << SI32_CAPSENSE_A_CONTROL_CMD_SHIFT) 138 // Single Scan Mode: One conversion on each channel selected by SCANEN occurs. An 139 // end-of-scan interrupt indicates all channels have been measured. 140 #define SI32_CAPSENSE_A_CONTROL_CMD_SCAN_VALUE 1 141 #define SI32_CAPSENSE_A_CONTROL_CMD_SCAN_U32 \ 142 (SI32_CAPSENSE_A_CONTROL_CMD_SCAN_VALUE << SI32_CAPSENSE_A_CONTROL_CMD_SHIFT) 143 // Continuous Single Conversion Mode: Continuously converts on a single channel. 144 // This operation ends only if the module is disabled (CSEN = 0) or if a compare 145 // threshold event occurs (CMPI = 1). 146 #define SI32_CAPSENSE_A_CONTROL_CMD_CONT_SINGLE_VALUE 2 147 #define SI32_CAPSENSE_A_CONTROL_CMD_CONT_SINGLE_U32 \ 148 (SI32_CAPSENSE_A_CONTROL_CMD_CONT_SINGLE_VALUE << SI32_CAPSENSE_A_CONTROL_CMD_SHIFT) 149 // Continuous Scan Mode: Continuously loops through and converts on all the 150 // channels selected by SCANEN. This operation ends only if the module is disabled 151 // (CSEN = 0) or if a compare threshold event occurs (CMPI = 1). 152 #define SI32_CAPSENSE_A_CONTROL_CMD_CONT_SCAN_VALUE 3 153 #define SI32_CAPSENSE_A_CONTROL_CMD_CONT_SCAN_U32 \ 154 (SI32_CAPSENSE_A_CONTROL_CMD_CONT_SCAN_VALUE << SI32_CAPSENSE_A_CONTROL_CMD_SHIFT) 155 156 #define SI32_CAPSENSE_A_CONTROL_CNVR_MASK 0x000000C0 157 #define SI32_CAPSENSE_A_CONTROL_CNVR_SHIFT 6 158 // Conversions last 12 internal CAPSENSE clocks and results are 12 bits in length. 159 #define SI32_CAPSENSE_A_CONTROL_CNVR_12BIT_VALUE 0 160 #define SI32_CAPSENSE_A_CONTROL_CNVR_12BIT_U32 \ 161 (SI32_CAPSENSE_A_CONTROL_CNVR_12BIT_VALUE << SI32_CAPSENSE_A_CONTROL_CNVR_SHIFT) 162 // Conversions last 13 internal CAPSENSE clocks and results are 13 bits in length. 163 #define SI32_CAPSENSE_A_CONTROL_CNVR_13BIT_VALUE 1 164 #define SI32_CAPSENSE_A_CONTROL_CNVR_13BIT_U32 \ 165 (SI32_CAPSENSE_A_CONTROL_CNVR_13BIT_VALUE << SI32_CAPSENSE_A_CONTROL_CNVR_SHIFT) 166 // Conversions last 14 internal CAPSENSE clocks and results are 14 bits in length. 167 #define SI32_CAPSENSE_A_CONTROL_CNVR_14BIT_VALUE 2 168 #define SI32_CAPSENSE_A_CONTROL_CNVR_14BIT_U32 \ 169 (SI32_CAPSENSE_A_CONTROL_CNVR_14BIT_VALUE << SI32_CAPSENSE_A_CONTROL_CNVR_SHIFT) 170 // Conversions last 16 internal CAPSENSE clocks and results are 16 bits in length. 171 #define SI32_CAPSENSE_A_CONTROL_CNVR_16BIT_VALUE 3 172 #define SI32_CAPSENSE_A_CONTROL_CNVR_16BIT_U32 \ 173 (SI32_CAPSENSE_A_CONTROL_CNVR_16BIT_VALUE << SI32_CAPSENSE_A_CONTROL_CNVR_SHIFT) 174 175 #define SI32_CAPSENSE_A_CONTROL_ACCMD_MASK 0x00000700 176 #define SI32_CAPSENSE_A_CONTROL_ACCMD_SHIFT 8 177 // Accumulate 1 sample. 178 #define SI32_CAPSENSE_A_CONTROL_ACCMD_ACC_1_VALUE 0 179 #define SI32_CAPSENSE_A_CONTROL_ACCMD_ACC_1_U32 \ 180 (SI32_CAPSENSE_A_CONTROL_ACCMD_ACC_1_VALUE << SI32_CAPSENSE_A_CONTROL_ACCMD_SHIFT) 181 // Accumulate 4 samples. 182 #define SI32_CAPSENSE_A_CONTROL_ACCMD_ACC_4_VALUE 1 183 #define SI32_CAPSENSE_A_CONTROL_ACCMD_ACC_4_U32 \ 184 (SI32_CAPSENSE_A_CONTROL_ACCMD_ACC_4_VALUE << SI32_CAPSENSE_A_CONTROL_ACCMD_SHIFT) 185 // Accumulate 8 samples. 186 #define SI32_CAPSENSE_A_CONTROL_ACCMD_ACC_8_VALUE 2 187 #define SI32_CAPSENSE_A_CONTROL_ACCMD_ACC_8_U32 \ 188 (SI32_CAPSENSE_A_CONTROL_ACCMD_ACC_8_VALUE << SI32_CAPSENSE_A_CONTROL_ACCMD_SHIFT) 189 // Accumulate 16 samples. 190 #define SI32_CAPSENSE_A_CONTROL_ACCMD_ACC_16_VALUE 3 191 #define SI32_CAPSENSE_A_CONTROL_ACCMD_ACC_16_U32 \ 192 (SI32_CAPSENSE_A_CONTROL_ACCMD_ACC_16_VALUE << SI32_CAPSENSE_A_CONTROL_ACCMD_SHIFT) 193 // Accumulate 32 samples. 194 #define SI32_CAPSENSE_A_CONTROL_ACCMD_ACC_32_VALUE 4 195 #define SI32_CAPSENSE_A_CONTROL_ACCMD_ACC_32_U32 \ 196 (SI32_CAPSENSE_A_CONTROL_ACCMD_ACC_32_VALUE << SI32_CAPSENSE_A_CONTROL_ACCMD_SHIFT) 197 // Accumulate 64 samples. 198 #define SI32_CAPSENSE_A_CONTROL_ACCMD_ACC_64_VALUE 5 199 #define SI32_CAPSENSE_A_CONTROL_ACCMD_ACC_64_U32 \ 200 (SI32_CAPSENSE_A_CONTROL_ACCMD_ACC_64_VALUE << SI32_CAPSENSE_A_CONTROL_ACCMD_SHIFT) 201 202 #define SI32_CAPSENSE_A_CONTROL_MCEN_MASK 0x00000800 203 #define SI32_CAPSENSE_A_CONTROL_MCEN_SHIFT 11 204 // Disable the multiple channel measurement feature. 205 #define SI32_CAPSENSE_A_CONTROL_MCEN_DISABLED_VALUE 0 206 #define SI32_CAPSENSE_A_CONTROL_MCEN_DISABLED_U32 \ 207 (SI32_CAPSENSE_A_CONTROL_MCEN_DISABLED_VALUE << SI32_CAPSENSE_A_CONTROL_MCEN_SHIFT) 208 // Enable the multiple channel measurement feature. 209 #define SI32_CAPSENSE_A_CONTROL_MCEN_ENABLED_VALUE 1 210 #define SI32_CAPSENSE_A_CONTROL_MCEN_ENABLED_U32 \ 211 (SI32_CAPSENSE_A_CONTROL_MCEN_ENABLED_VALUE << SI32_CAPSENSE_A_CONTROL_MCEN_SHIFT) 212 213 #define SI32_CAPSENSE_A_CONTROL_CSCM_MASK 0x0000F000 214 #define SI32_CAPSENSE_A_CONTROL_CSCM_SHIFT 12 215 // The CSnT0 trigger source starts conversions. 216 #define SI32_CAPSENSE_A_CONTROL_CSCM_CSNT0_VALUE 0 217 #define SI32_CAPSENSE_A_CONTROL_CSCM_CSNT0_U32 \ 218 (SI32_CAPSENSE_A_CONTROL_CSCM_CSNT0_VALUE << SI32_CAPSENSE_A_CONTROL_CSCM_SHIFT) 219 // The CSnT1 trigger source starts conversions. 220 #define SI32_CAPSENSE_A_CONTROL_CSCM_CSNT1_VALUE 1 221 #define SI32_CAPSENSE_A_CONTROL_CSCM_CSNT1_U32 \ 222 (SI32_CAPSENSE_A_CONTROL_CSCM_CSNT1_VALUE << SI32_CAPSENSE_A_CONTROL_CSCM_SHIFT) 223 // The CSnT2 trigger source starts conversions. 224 #define SI32_CAPSENSE_A_CONTROL_CSCM_CSNT2_VALUE 2 225 #define SI32_CAPSENSE_A_CONTROL_CSCM_CSNT2_U32 \ 226 (SI32_CAPSENSE_A_CONTROL_CSCM_CSNT2_VALUE << SI32_CAPSENSE_A_CONTROL_CSCM_SHIFT) 227 // The CSnT3 trigger source starts conversions. 228 #define SI32_CAPSENSE_A_CONTROL_CSCM_CSNT3_VALUE 3 229 #define SI32_CAPSENSE_A_CONTROL_CSCM_CSNT3_U32 \ 230 (SI32_CAPSENSE_A_CONTROL_CSCM_CSNT3_VALUE << SI32_CAPSENSE_A_CONTROL_CSCM_SHIFT) 231 // The CSnT4 trigger source starts conversions. 232 #define SI32_CAPSENSE_A_CONTROL_CSCM_CSNT4_VALUE 4 233 #define SI32_CAPSENSE_A_CONTROL_CSCM_CSNT4_U32 \ 234 (SI32_CAPSENSE_A_CONTROL_CSCM_CSNT4_VALUE << SI32_CAPSENSE_A_CONTROL_CSCM_SHIFT) 235 // The CSnT5 trigger source starts conversions. 236 #define SI32_CAPSENSE_A_CONTROL_CSCM_CSNT5_VALUE 5 237 #define SI32_CAPSENSE_A_CONTROL_CSCM_CSNT5_U32 \ 238 (SI32_CAPSENSE_A_CONTROL_CSCM_CSNT5_VALUE << SI32_CAPSENSE_A_CONTROL_CSCM_SHIFT) 239 // The CSnT6 trigger source starts conversions. 240 #define SI32_CAPSENSE_A_CONTROL_CSCM_CSNT6_VALUE 6 241 #define SI32_CAPSENSE_A_CONTROL_CSCM_CSNT6_U32 \ 242 (SI32_CAPSENSE_A_CONTROL_CSCM_CSNT6_VALUE << SI32_CAPSENSE_A_CONTROL_CSCM_SHIFT) 243 // The CSnT7 trigger source starts conversions. 244 #define SI32_CAPSENSE_A_CONTROL_CSCM_CSNT7_VALUE 7 245 #define SI32_CAPSENSE_A_CONTROL_CSCM_CSNT7_U32 \ 246 (SI32_CAPSENSE_A_CONTROL_CSCM_CSNT7_VALUE << SI32_CAPSENSE_A_CONTROL_CSCM_SHIFT) 247 // The CSnT8 trigger source starts conversions. 248 #define SI32_CAPSENSE_A_CONTROL_CSCM_CSNT8_VALUE 8 249 #define SI32_CAPSENSE_A_CONTROL_CSCM_CSNT8_U32 \ 250 (SI32_CAPSENSE_A_CONTROL_CSCM_CSNT8_VALUE << SI32_CAPSENSE_A_CONTROL_CSCM_SHIFT) 251 // The CSnT9 trigger source starts conversions. 252 #define SI32_CAPSENSE_A_CONTROL_CSCM_CSNT9_VALUE 9 253 #define SI32_CAPSENSE_A_CONTROL_CSCM_CSNT9_U32 \ 254 (SI32_CAPSENSE_A_CONTROL_CSCM_CSNT9_VALUE << SI32_CAPSENSE_A_CONTROL_CSCM_SHIFT) 255 // The CSnT10 trigger source starts conversions. 256 #define SI32_CAPSENSE_A_CONTROL_CSCM_CSNT10_VALUE 10 257 #define SI32_CAPSENSE_A_CONTROL_CSCM_CSNT10_U32 \ 258 (SI32_CAPSENSE_A_CONTROL_CSCM_CSNT10_VALUE << SI32_CAPSENSE_A_CONTROL_CSCM_SHIFT) 259 // The CSnT11 trigger source starts conversions. 260 #define SI32_CAPSENSE_A_CONTROL_CSCM_CSNT11_VALUE 11 261 #define SI32_CAPSENSE_A_CONTROL_CSCM_CSNT11_U32 \ 262 (SI32_CAPSENSE_A_CONTROL_CSCM_CSNT11_VALUE << SI32_CAPSENSE_A_CONTROL_CSCM_SHIFT) 263 // The CSnT12 trigger source starts conversions. 264 #define SI32_CAPSENSE_A_CONTROL_CSCM_CSNT12_VALUE 12 265 #define SI32_CAPSENSE_A_CONTROL_CSCM_CSNT12_U32 \ 266 (SI32_CAPSENSE_A_CONTROL_CSCM_CSNT12_VALUE << SI32_CAPSENSE_A_CONTROL_CSCM_SHIFT) 267 // The CSnT13 trigger source starts conversions. 268 #define SI32_CAPSENSE_A_CONTROL_CSCM_CSNT13_VALUE 13 269 #define SI32_CAPSENSE_A_CONTROL_CSCM_CSNT13_U32 \ 270 (SI32_CAPSENSE_A_CONTROL_CSCM_CSNT13_VALUE << SI32_CAPSENSE_A_CONTROL_CSCM_SHIFT) 271 // The CSnT14 trigger source starts conversions. 272 #define SI32_CAPSENSE_A_CONTROL_CSCM_CSNT14_VALUE 14 273 #define SI32_CAPSENSE_A_CONTROL_CSCM_CSNT14_U32 \ 274 (SI32_CAPSENSE_A_CONTROL_CSCM_CSNT14_VALUE << SI32_CAPSENSE_A_CONTROL_CSCM_SHIFT) 275 // The CSnT15 trigger source starts conversions. 276 #define SI32_CAPSENSE_A_CONTROL_CSCM_CSNT15_VALUE 15 277 #define SI32_CAPSENSE_A_CONTROL_CSCM_CSNT15_U32 \ 278 (SI32_CAPSENSE_A_CONTROL_CSCM_CSNT15_VALUE << SI32_CAPSENSE_A_CONTROL_CSCM_SHIFT) 279 280 #define SI32_CAPSENSE_A_CONTROL_PMMD_MASK 0x00030000 281 #define SI32_CAPSENSE_A_CONTROL_PMMD_SHIFT 16 282 // Always retry on a pin state change. 283 #define SI32_CAPSENSE_A_CONTROL_PMMD_ALWAYS_RETRY_VALUE 0 284 #define SI32_CAPSENSE_A_CONTROL_PMMD_ALWAYS_RETRY_U32 \ 285 (SI32_CAPSENSE_A_CONTROL_PMMD_ALWAYS_RETRY_VALUE << SI32_CAPSENSE_A_CONTROL_PMMD_SHIFT) 286 // Retry up to twice on consecutive bit cycles. 287 #define SI32_CAPSENSE_A_CONTROL_PMMD_RETRY_TWICE_VALUE 1 288 #define SI32_CAPSENSE_A_CONTROL_PMMD_RETRY_TWICE_U32 \ 289 (SI32_CAPSENSE_A_CONTROL_PMMD_RETRY_TWICE_VALUE << SI32_CAPSENSE_A_CONTROL_PMMD_SHIFT) 290 // Retry up to four times on consecutive bit cycles. 291 #define SI32_CAPSENSE_A_CONTROL_PMMD_RETRY_FOUR_TIMES_VALUE 2 292 #define SI32_CAPSENSE_A_CONTROL_PMMD_RETRY_FOUR_TIMES_U32 \ 293 (SI32_CAPSENSE_A_CONTROL_PMMD_RETRY_FOUR_TIMES_VALUE << SI32_CAPSENSE_A_CONTROL_PMMD_SHIFT) 294 // Ignore monitored signal state change. 295 #define SI32_CAPSENSE_A_CONTROL_PMMD_DO_NOT_RETRY_VALUE 3 296 #define SI32_CAPSENSE_A_CONTROL_PMMD_DO_NOT_RETRY_U32 \ 297 (SI32_CAPSENSE_A_CONTROL_PMMD_DO_NOT_RETRY_VALUE << SI32_CAPSENSE_A_CONTROL_PMMD_SHIFT) 298 299 #define SI32_CAPSENSE_A_CONTROL_PMEF_MASK 0x00040000 300 #define SI32_CAPSENSE_A_CONTROL_PMEF_SHIFT 18 301 // A retry did not occur due to a pin monitor event during the last conversion. 302 #define SI32_CAPSENSE_A_CONTROL_PMEF_NOT_SET_VALUE 0 303 #define SI32_CAPSENSE_A_CONTROL_PMEF_NOT_SET_U32 \ 304 (SI32_CAPSENSE_A_CONTROL_PMEF_NOT_SET_VALUE << SI32_CAPSENSE_A_CONTROL_PMEF_SHIFT) 305 // A retry occurred due to a pin monitor event during the last conversion. 306 #define SI32_CAPSENSE_A_CONTROL_PMEF_SET_VALUE 1 307 #define SI32_CAPSENSE_A_CONTROL_PMEF_SET_U32 \ 308 (SI32_CAPSENSE_A_CONTROL_PMEF_SET_VALUE << SI32_CAPSENSE_A_CONTROL_PMEF_SHIFT) 309 310 #define SI32_CAPSENSE_A_CONTROL_CMPEN_MASK 0x00100000 311 #define SI32_CAPSENSE_A_CONTROL_CMPEN_SHIFT 20 312 // Disable the threshold comparator. 313 #define SI32_CAPSENSE_A_CONTROL_CMPEN_DISABLED_VALUE 0 314 #define SI32_CAPSENSE_A_CONTROL_CMPEN_DISABLED_U32 \ 315 (SI32_CAPSENSE_A_CONTROL_CMPEN_DISABLED_VALUE << SI32_CAPSENSE_A_CONTROL_CMPEN_SHIFT) 316 // Enable the threshold comparator. 317 #define SI32_CAPSENSE_A_CONTROL_CMPEN_ENABLED_VALUE 1 318 #define SI32_CAPSENSE_A_CONTROL_CMPEN_ENABLED_U32 \ 319 (SI32_CAPSENSE_A_CONTROL_CMPEN_ENABLED_VALUE << SI32_CAPSENSE_A_CONTROL_CMPEN_SHIFT) 320 321 #define SI32_CAPSENSE_A_CONTROL_CDIEN_MASK 0x00200000 322 #define SI32_CAPSENSE_A_CONTROL_CDIEN_SHIFT 21 323 // Disable the single conversion done interrupt. 324 #define SI32_CAPSENSE_A_CONTROL_CDIEN_DISABLED_VALUE 0 325 #define SI32_CAPSENSE_A_CONTROL_CDIEN_DISABLED_U32 \ 326 (SI32_CAPSENSE_A_CONTROL_CDIEN_DISABLED_VALUE << SI32_CAPSENSE_A_CONTROL_CDIEN_SHIFT) 327 // Enable the single conversion done interrupt. 328 #define SI32_CAPSENSE_A_CONTROL_CDIEN_ENABLED_VALUE 1 329 #define SI32_CAPSENSE_A_CONTROL_CDIEN_ENABLED_U32 \ 330 (SI32_CAPSENSE_A_CONTROL_CDIEN_ENABLED_VALUE << SI32_CAPSENSE_A_CONTROL_CDIEN_SHIFT) 331 332 #define SI32_CAPSENSE_A_CONTROL_EOSIEN_MASK 0x00400000 333 #define SI32_CAPSENSE_A_CONTROL_EOSIEN_SHIFT 22 334 // Disable the single scan end-of-scan interrupt. 335 #define SI32_CAPSENSE_A_CONTROL_EOSIEN_DISABLED_VALUE 0 336 #define SI32_CAPSENSE_A_CONTROL_EOSIEN_DISABLED_U32 \ 337 (SI32_CAPSENSE_A_CONTROL_EOSIEN_DISABLED_VALUE << SI32_CAPSENSE_A_CONTROL_EOSIEN_SHIFT) 338 // Enable the single scan end-of-scan interrupt. 339 #define SI32_CAPSENSE_A_CONTROL_EOSIEN_ENABLED_VALUE 1 340 #define SI32_CAPSENSE_A_CONTROL_EOSIEN_ENABLED_U32 \ 341 (SI32_CAPSENSE_A_CONTROL_EOSIEN_ENABLED_VALUE << SI32_CAPSENSE_A_CONTROL_EOSIEN_SHIFT) 342 343 #define SI32_CAPSENSE_A_CONTROL_CMPI_MASK 0x01000000 344 #define SI32_CAPSENSE_A_CONTROL_CMPI_SHIFT 24 345 // The capacitive sensing result did not cause a compare threshold interrupt. 346 #define SI32_CAPSENSE_A_CONTROL_CMPI_NOT_SET_VALUE 0 347 #define SI32_CAPSENSE_A_CONTROL_CMPI_NOT_SET_U32 \ 348 (SI32_CAPSENSE_A_CONTROL_CMPI_NOT_SET_VALUE << SI32_CAPSENSE_A_CONTROL_CMPI_SHIFT) 349 // The capacitive sensing result caused a compare threshold interrupt. 350 #define SI32_CAPSENSE_A_CONTROL_CMPI_SET_VALUE 1 351 #define SI32_CAPSENSE_A_CONTROL_CMPI_SET_U32 \ 352 (SI32_CAPSENSE_A_CONTROL_CMPI_SET_VALUE << SI32_CAPSENSE_A_CONTROL_CMPI_SHIFT) 353 354 #define SI32_CAPSENSE_A_CONTROL_CDI_MASK 0x02000000 355 #define SI32_CAPSENSE_A_CONTROL_CDI_SHIFT 25 356 // Read: The CAPSENSEn module has not completed a data conversion since the last 357 // time CDI was cleared. Write: Clear the interrupt. 358 #define SI32_CAPSENSE_A_CONTROL_CDI_NOT_SET_VALUE 0 359 #define SI32_CAPSENSE_A_CONTROL_CDI_NOT_SET_U32 \ 360 (SI32_CAPSENSE_A_CONTROL_CDI_NOT_SET_VALUE << SI32_CAPSENSE_A_CONTROL_CDI_SHIFT) 361 // Read: The CAPSENSEn module completed a data conversion. Write: Force a 362 // conversion complete interrupt. 363 #define SI32_CAPSENSE_A_CONTROL_CDI_SET_VALUE 1 364 #define SI32_CAPSENSE_A_CONTROL_CDI_SET_U32 \ 365 (SI32_CAPSENSE_A_CONTROL_CDI_SET_VALUE << SI32_CAPSENSE_A_CONTROL_CDI_SHIFT) 366 367 #define SI32_CAPSENSE_A_CONTROL_EOSI_MASK 0x04000000 368 #define SI32_CAPSENSE_A_CONTROL_EOSI_SHIFT 26 369 // The CAPSENSEn module has not completed a scan since the last time EOSI was 370 // cleared. 371 #define SI32_CAPSENSE_A_CONTROL_EOSI_NOT_SET_VALUE 0 372 #define SI32_CAPSENSE_A_CONTROL_EOSI_NOT_SET_U32 \ 373 (SI32_CAPSENSE_A_CONTROL_EOSI_NOT_SET_VALUE << SI32_CAPSENSE_A_CONTROL_EOSI_SHIFT) 374 // The CAPSENSEn module completed a scan. 375 #define SI32_CAPSENSE_A_CONTROL_EOSI_SET_VALUE 1 376 #define SI32_CAPSENSE_A_CONTROL_EOSI_SET_U32 \ 377 (SI32_CAPSENSE_A_CONTROL_EOSI_SET_VALUE << SI32_CAPSENSE_A_CONTROL_EOSI_SHIFT) 378 379 380 381 struct SI32_CAPSENSE_A_MODE_Struct 382 { 383 union 384 { 385 struct 386 { 387 // Capacitance Gain Select 388 volatile uint32_t CGSEL: 3; 389 uint32_t reserved0: 3; 390 // Ramp Selection 391 volatile uint32_t RAMPSEL: 2; 392 // Output Current Select 393 volatile uint32_t IASEL: 3; 394 uint32_t reserved1: 1; 395 // Discharge Time Select 396 volatile uint32_t DTSEL: 3; 397 uint32_t reserved2: 17; 398 }; 399 volatile uint32_t U32; 400 }; 401 }; 402 403 #define SI32_CAPSENSE_A_MODE_CGSEL_MASK 0x00000007 404 #define SI32_CAPSENSE_A_MODE_CGSEL_SHIFT 0 405 406 #define SI32_CAPSENSE_A_MODE_RAMPSEL_MASK 0x000000C0 407 #define SI32_CAPSENSE_A_MODE_RAMPSEL_SHIFT 6 408 409 #define SI32_CAPSENSE_A_MODE_IASEL_MASK 0x00000700 410 #define SI32_CAPSENSE_A_MODE_IASEL_SHIFT 8 411 412 #define SI32_CAPSENSE_A_MODE_DTSEL_MASK 0x00007000 413 #define SI32_CAPSENSE_A_MODE_DTSEL_SHIFT 12 414 415 416 417 struct SI32_CAPSENSE_A_DATA_Struct 418 { 419 union 420 { 421 struct 422 { 423 // Capacitive Sensing Data 424 volatile uint16_t DATA_BITS; 425 uint32_t reserved0: 16; 426 }; 427 volatile uint32_t U32; 428 }; 429 }; 430 431 #define SI32_CAPSENSE_A_DATA_DATA_MASK 0x0000FFFF 432 #define SI32_CAPSENSE_A_DATA_DATA_SHIFT 0 433 434 435 436 struct SI32_CAPSENSE_A_SCAN_Struct 437 { 438 union 439 { 440 struct 441 { 442 // Channel Scan Enable 443 volatile uint16_t SCANEN; 444 uint32_t reserved0: 16; 445 }; 446 volatile uint32_t U32; 447 }; 448 }; 449 450 #define SI32_CAPSENSE_A_SCAN_SCANEN_MASK 0x0000FFFF 451 #define SI32_CAPSENSE_A_SCAN_SCANEN_SHIFT 0 452 453 454 455 struct SI32_CAPSENSE_A_CSTH_Struct 456 { 457 union 458 { 459 struct 460 { 461 // Compare Threshold 462 volatile uint16_t CSTH_BITS; 463 uint32_t reserved0: 16; 464 }; 465 volatile uint32_t U32; 466 }; 467 }; 468 469 #define SI32_CAPSENSE_A_CSTH_CSTH_MASK 0x0000FFFF 470 #define SI32_CAPSENSE_A_CSTH_CSTH_SHIFT 0 471 472 473 474 struct SI32_CAPSENSE_A_MUX_Struct 475 { 476 union 477 { 478 struct 479 { 480 // Mux Channel Select 481 volatile uint32_t CSMX: 4; 482 uint32_t reserved0: 3; 483 // Channel Disconnect 484 volatile uint32_t CSDISC: 1; 485 uint32_t reserved1: 24; 486 }; 487 volatile uint32_t U32; 488 }; 489 }; 490 491 #define SI32_CAPSENSE_A_MUX_CSMX_MASK 0x0000000F 492 #define SI32_CAPSENSE_A_MUX_CSMX_SHIFT 0 493 // Select CSn.0. 494 #define SI32_CAPSENSE_A_MUX_CSMX_CSN0_VALUE 0 495 #define SI32_CAPSENSE_A_MUX_CSMX_CSN0_U32 \ 496 (SI32_CAPSENSE_A_MUX_CSMX_CSN0_VALUE << SI32_CAPSENSE_A_MUX_CSMX_SHIFT) 497 // Select CSn.1. 498 #define SI32_CAPSENSE_A_MUX_CSMX_CSN1_VALUE 1 499 #define SI32_CAPSENSE_A_MUX_CSMX_CSN1_U32 \ 500 (SI32_CAPSENSE_A_MUX_CSMX_CSN1_VALUE << SI32_CAPSENSE_A_MUX_CSMX_SHIFT) 501 // Select CSn.2. 502 #define SI32_CAPSENSE_A_MUX_CSMX_CSN2_VALUE 2 503 #define SI32_CAPSENSE_A_MUX_CSMX_CSN2_U32 \ 504 (SI32_CAPSENSE_A_MUX_CSMX_CSN2_VALUE << SI32_CAPSENSE_A_MUX_CSMX_SHIFT) 505 // Select CSn.3. 506 #define SI32_CAPSENSE_A_MUX_CSMX_CSN3_VALUE 3 507 #define SI32_CAPSENSE_A_MUX_CSMX_CSN3_U32 \ 508 (SI32_CAPSENSE_A_MUX_CSMX_CSN3_VALUE << SI32_CAPSENSE_A_MUX_CSMX_SHIFT) 509 // Select CSn.4. 510 #define SI32_CAPSENSE_A_MUX_CSMX_CSN4_VALUE 4 511 #define SI32_CAPSENSE_A_MUX_CSMX_CSN4_U32 \ 512 (SI32_CAPSENSE_A_MUX_CSMX_CSN4_VALUE << SI32_CAPSENSE_A_MUX_CSMX_SHIFT) 513 // Select CSn.5. 514 #define SI32_CAPSENSE_A_MUX_CSMX_CSN5_VALUE 5 515 #define SI32_CAPSENSE_A_MUX_CSMX_CSN5_U32 \ 516 (SI32_CAPSENSE_A_MUX_CSMX_CSN5_VALUE << SI32_CAPSENSE_A_MUX_CSMX_SHIFT) 517 // Select CSn.6. 518 #define SI32_CAPSENSE_A_MUX_CSMX_CSN6_VALUE 6 519 #define SI32_CAPSENSE_A_MUX_CSMX_CSN6_U32 \ 520 (SI32_CAPSENSE_A_MUX_CSMX_CSN6_VALUE << SI32_CAPSENSE_A_MUX_CSMX_SHIFT) 521 // Select CSn.7. 522 #define SI32_CAPSENSE_A_MUX_CSMX_CSN7_VALUE 7 523 #define SI32_CAPSENSE_A_MUX_CSMX_CSN7_U32 \ 524 (SI32_CAPSENSE_A_MUX_CSMX_CSN7_VALUE << SI32_CAPSENSE_A_MUX_CSMX_SHIFT) 525 // Select CSn.8. 526 #define SI32_CAPSENSE_A_MUX_CSMX_CSN8_VALUE 8 527 #define SI32_CAPSENSE_A_MUX_CSMX_CSN8_U32 \ 528 (SI32_CAPSENSE_A_MUX_CSMX_CSN8_VALUE << SI32_CAPSENSE_A_MUX_CSMX_SHIFT) 529 // Select CSn.9. 530 #define SI32_CAPSENSE_A_MUX_CSMX_CSN9_VALUE 9 531 #define SI32_CAPSENSE_A_MUX_CSMX_CSN9_U32 \ 532 (SI32_CAPSENSE_A_MUX_CSMX_CSN9_VALUE << SI32_CAPSENSE_A_MUX_CSMX_SHIFT) 533 // Select CSn.10. 534 #define SI32_CAPSENSE_A_MUX_CSMX_CSN10_VALUE 10 535 #define SI32_CAPSENSE_A_MUX_CSMX_CSN10_U32 \ 536 (SI32_CAPSENSE_A_MUX_CSMX_CSN10_VALUE << SI32_CAPSENSE_A_MUX_CSMX_SHIFT) 537 // Select CSn.11. 538 #define SI32_CAPSENSE_A_MUX_CSMX_CSN11_VALUE 11 539 #define SI32_CAPSENSE_A_MUX_CSMX_CSN11_U32 \ 540 (SI32_CAPSENSE_A_MUX_CSMX_CSN11_VALUE << SI32_CAPSENSE_A_MUX_CSMX_SHIFT) 541 // Select CSn.12. 542 #define SI32_CAPSENSE_A_MUX_CSMX_CSN12_VALUE 12 543 #define SI32_CAPSENSE_A_MUX_CSMX_CSN12_U32 \ 544 (SI32_CAPSENSE_A_MUX_CSMX_CSN12_VALUE << SI32_CAPSENSE_A_MUX_CSMX_SHIFT) 545 // Select CSn.13. 546 #define SI32_CAPSENSE_A_MUX_CSMX_CSN13_VALUE 13 547 #define SI32_CAPSENSE_A_MUX_CSMX_CSN13_U32 \ 548 (SI32_CAPSENSE_A_MUX_CSMX_CSN13_VALUE << SI32_CAPSENSE_A_MUX_CSMX_SHIFT) 549 // Select CSn.14. 550 #define SI32_CAPSENSE_A_MUX_CSMX_CSN14_VALUE 14 551 #define SI32_CAPSENSE_A_MUX_CSMX_CSN14_U32 \ 552 (SI32_CAPSENSE_A_MUX_CSMX_CSN14_VALUE << SI32_CAPSENSE_A_MUX_CSMX_SHIFT) 553 // Select CSn.15. 554 #define SI32_CAPSENSE_A_MUX_CSMX_CSN15_VALUE 15 555 #define SI32_CAPSENSE_A_MUX_CSMX_CSN15_U32 \ 556 (SI32_CAPSENSE_A_MUX_CSMX_CSN15_VALUE << SI32_CAPSENSE_A_MUX_CSMX_SHIFT) 557 558 #define SI32_CAPSENSE_A_MUX_CSDISC_MASK 0x00000080 559 #define SI32_CAPSENSE_A_MUX_CSDISC_SHIFT 7 560 // Connect the capacitive sensing circuit to the selected channel. 561 #define SI32_CAPSENSE_A_MUX_CSDISC_CONNECT_VALUE 0 562 #define SI32_CAPSENSE_A_MUX_CSDISC_CONNECT_U32 \ 563 (SI32_CAPSENSE_A_MUX_CSDISC_CONNECT_VALUE << SI32_CAPSENSE_A_MUX_CSDISC_SHIFT) 564 // Disconnect the capacitive sensing input channel. 565 #define SI32_CAPSENSE_A_MUX_CSDISC_DISCONNECT_VALUE 1 566 #define SI32_CAPSENSE_A_MUX_CSDISC_DISCONNECT_U32 \ 567 (SI32_CAPSENSE_A_MUX_CSDISC_DISCONNECT_VALUE << SI32_CAPSENSE_A_MUX_CSDISC_SHIFT) 568 569 570 571 typedef struct SI32_CAPSENSE_A_Struct 572 { 573 struct SI32_CAPSENSE_A_CONTROL_Struct CONTROL ; // Base Address + 0x0 574 volatile uint32_t CONTROL_SET; 575 volatile uint32_t CONTROL_CLR; 576 uint32_t reserved0; 577 struct SI32_CAPSENSE_A_MODE_Struct MODE ; // Base Address + 0x10 578 volatile uint32_t MODE_SET; 579 volatile uint32_t MODE_CLR; 580 uint32_t reserved1; 581 struct SI32_CAPSENSE_A_DATA_Struct DATA ; // Base Address + 0x20 582 uint32_t reserved2; 583 uint32_t reserved3; 584 uint32_t reserved4; 585 struct SI32_CAPSENSE_A_SCAN_Struct SCAN ; // Base Address + 0x30 586 uint32_t reserved5; 587 uint32_t reserved6; 588 uint32_t reserved7; 589 struct SI32_CAPSENSE_A_CSTH_Struct CSTH ; // Base Address + 0x40 590 uint32_t reserved8; 591 uint32_t reserved9; 592 uint32_t reserved10; 593 struct SI32_CAPSENSE_A_MUX_Struct MUX ; // Base Address + 0x50 594 uint32_t reserved11; 595 uint32_t reserved12; 596 uint32_t reserved13; 597 uint32_t reserved14[4]; 598 uint32_t reserved15[4]; 599 } SI32_CAPSENSE_A_Type; 600 601 #ifdef __cplusplus 602 } 603 #endif 604 605 #endif // __SI32_CAPSENSE_A_REGISTERS_H__ 606 607 //-eof-------------------------------------------------------------------------- 608 609