MSP430 DriverLib for MSP430FR5xx_6xx Devices  2.21.00.08
 All Data Structures Functions Variables Modules Pages
esi.h
1 //*****************************************************************************
2 //
3 // esi.h - Driver for the ESI Module.
4 //
5 //*****************************************************************************
6 
7 #ifndef __MSP430WARE_ESI_H__
8 #define __MSP430WARE_ESI_H__
9 
10 #include "inc/hw_memmap.h"
11 
12 #ifdef __MSP430_HAS_ESI__
13 
14 //*****************************************************************************
15 //
16 // If building with a C++ compiler, make all of the definitions in this header
17 // have a C binding.
18 //
19 //*****************************************************************************
20 #ifdef __cplusplus
21 extern "C"
22 {
23 #endif
24 
25 uint16_t ESI_getCounter0(void);
26 uint16_t ESI_getCounter1(void);
27 uint16_t ESI_getCounter2(void);
28 uint16_t ESI_getOscCounter(void);
29 
30 //*****************************************************************************
31 //
32 //The following are values that can be passed to excitationCircuitSelect
33 //parameter in ESI_AFE_InitParams
34 //
35 //*****************************************************************************
36 #define ESI_EXCITATION_CIRCUIT_DISABLED 0x0
37 #define ESI_EXCITATION_CIRCUIT_ENABLED ESITEN
38 
39 //*****************************************************************************
40 //
41 //The following are values that can be passed to sampleAndHoldSelect
42 //parameter in ESI_AFE_InitParams
43 //
44 //*****************************************************************************
45 #define ESI_SAMPLE_HOLD_DISABLED 0x0
46 #define ESI_SAMPLE_HOLD_ENABLED ESISH
47 
48 //*****************************************************************************
49 //
50 //The following are values that can be passed to midVoltageGeneratorSelect
51 //parameter in ESI_AFE_InitParams
52 //
53 //*****************************************************************************
54 #define ESI_MID_VOLTAGE_GENERATOR_DISABLED 0x0
55 #define ESI_MID_VOLTAGE_GENERATOR_ENABLED ESIVCC2
56 
57 //*****************************************************************************
58 //
59 //The following are values that can be passed to sampleAndHoldVSSConnect
60 //parameter in ESI_AFE_InitParams
61 //
62 //*****************************************************************************
63 #define ESI_SAMPLE_HOLD_VSS_TO_ESIVSS 0x0
64 #define ESI_SAMPLE_HOLD_VSS_BY_TSM ESIVSS
65 
66 //*****************************************************************************
67 //
68 //The following are values that can be passed to
69 //inputSelectAFE1 parameter in ESI_AFE1_InitParams
70 //
71 //*****************************************************************************
72 #define ESI_AFE1_INPUT_SELECT_CHx 0
73 #define ESI_AFE1_INPUT_SELECT_CIx 1
74 #define ESI_AFE1_INPUT_SELECT_CI3 2
75 #define ESI_AFE1_INPUT_SELECT_CI 3
76 
77 //*****************************************************************************
78 //
79 //The following are values that can be passed to
80 //inputSelectAFE2 parameter in ESI_AFE2_InitParams
81 //
82 //*****************************************************************************
83 #define ESI_AFE2_INPUT_SELECT_CHx 0
84 #define ESI_AFE2_INPUT_SELECT_CIx ESICA2X
85 
86 //*****************************************************************************
87 //
88 //The following are values that can be passed to
89 //inverterSelectOutputAFE1 parameter in ESI_AFE1_InitParams
90 //
91 //*****************************************************************************
92 #define ESI_INVERTER_FOR_AFE1_DISABLE 0x0
93 #define ESI_INVERTER_FOR_AFE1_ENABLE ESICA1INV
94 
95 //*****************************************************************************
96 //
97 //The following are values that can be passed to
98 //inverterSelectOutputAFE2 parameter in ESI_AFE2_InitParams
99 //
100 //*****************************************************************************
101 #define ESI_INVERTER_FOR_AFE2_DISABLE 0x0
102 #define ESI_INVERTER_FOR_AFE2_ENABLE ESICA2INV
103 
104 //*****************************************************************************
105 //
106 //The following are values that can be passed to
107 //tsmControlOfComparatorAFE2 parameter in ESI_AFE2_InitParams
108 //
109 //*****************************************************************************
110 #define ESI_TSM_COMPARATOR_CONTROL_AFE2_DISABLE 0x0
111 #define ESI_TSM_COMPARATOR_CONTROL_AFE2_ENABLE ESICA2EN
112 
113 //*****************************************************************************
114 //
115 //The following are values that can be passed to
116 //tsmControlDacAFE2 parameter in ESI_AFE2_InitParams
117 //
118 //*****************************************************************************
119 #define ESI_TSM_DAC_CONTROL_AFE2_DISABLE 0x0
120 #define ESI_TSM_DAC_CONTROL_AFE2_ENABLE ESIDAC2EN
121 
122 typedef struct ESI_AFE1_InitParams {
123  uint16_t excitationCircuitSelect;
124  uint16_t sampleAndHoldSelect;
125  uint16_t midVoltageGeneratorSelect;
126  uint16_t sampleAndHoldVSSConnect;
127  uint16_t inputSelectAFE1;
128  uint16_t inverterSelectOutputAFE1;
130 
131 extern const ESI_AFE1_InitParams ESI_AFE1_INITPARAMS_DEFAULT;
132 
133 void ESI_AFE1_init (ESI_AFE1_InitParams *params);
134 
135 typedef struct ESI_AFE2_InitParams {
136  uint16_t inputSelectAFE2;
137  uint16_t inverterSelectOutputAFE2;
138  uint16_t tsmControlComparatorAFE2;
139  uint16_t tsmControlDacAFE2;
141 
142 extern const ESI_AFE2_InitParams ESI_AFE2_INITPARAMS_DEFAULT;
143 
144 void ESI_AFE2_init (ESI_AFE2_InitParams *params);
145 
146 //*****************************************************************************
147 //
148 //The following are values that can be passed to
149 //channelSelect parameter in ESI_getLatchedComparatorOutput
150 //
151 //*****************************************************************************
152 #define ESI_AFE1_CHANNEL0_SELECT ESIOUT0
153 #define ESI_AFE1_CHANNEL1_SELECT ESIOUT1
154 #define ESI_AFE1_CHANNEL2_SELECT ESIOUT2
155 #define ESI_AFE1_CHANNEL3_SELECT ESIOUT3
156 #define ESI_AFE2_CHANNEL0_SELECT ESIOUT4
157 #define ESI_AFE2_CHANNEL1_SELECT ESIOUT5
158 #define ESI_AFE2_CHANNEL2_SELECT ESIOUT6
159 #define ESI_AFE2_CHANNEL3_SELECT ESIOUT7
160 #define ESI_AFE1_TEST_CHANNEL0_SELECT ESITCHOUT0
161 #define ESI_AFE1_TEST_CHANNEL1_SELECT ESITCHOUT1
162 
163 //*****************************************************************************
164 //
165 //The following are values that are returned by ESI_getLatchedComparatorOutput
166 //
167 //*****************************************************************************
168 #define ESI_AFE_OUTPUT_HIGH 0x1
169 #define ESI_AFE_OUTPUT_LOW 0x0
170 
172  uint16_t channelSelect);
173 
174 //*****************************************************************************
175 //
176 //The following are values that can be passed to
177 //smclkDivider parameter in ESI_TSM_InitParams
178 //
179 //*****************************************************************************
180 #define ESI_TSM_SMCLK_DIV_1 0x0
181 #define ESI_TSM_SMCLK_DIV_2 ESIDIV10
182 #define ESI_TSM_SMCLK_DIV_4 ESIDIV11
183 #define ESI_TSM_SMCLK_DIV_8 ESIDIV10 + ESIDIV11
184 
185 //*****************************************************************************
186 //
187 //The following are values that can be passed to
188 //aclkDivider parameter in ESI_TSM_InitParams
189 //
190 //*****************************************************************************
191 #define ESI_TSM_ACLK_DIV_1 0x0
192 #define ESI_TSM_ACLK_DIV_2 ESIDIV20
193 #define ESI_TSM_ACLK_DIV_4 ESIDIV21
194 #define ESI_TSM_ACLK_DIV_8 ESIDIV20 + ESIDIV21
195 
196 //*****************************************************************************
197 //
198 //The following are values that can be passed to
199 //startTriggerAclkDivider parameter in ESI_TSM_InitParams
200 //
201 //*****************************************************************************
202 #define ESI_TSM_START_TRIGGER_DIV_2 0x0
203 #define ESI_TSM_START_TRIGGER_DIV_6 ESIDIV3A0
204 #define ESI_TSM_START_TRIGGER_DIV_10 ESIDIV3A1
205 #define ESI_TSM_START_TRIGGER_DIV_14 ESIDIV3A0 + ESIDIV3A1
206 #define ESI_TSM_START_TRIGGER_DIV_18 ESIDIV3A2
207 #define ESI_TSM_START_TRIGGER_DIV_22 ESIDIV3A2 + ESIDIV3A0
208 #define ESI_TSM_START_TRIGGER_DIV_26 ESIDIV3A2 + ESIDIV3A1
209 #define ESI_TSM_START_TRIGGER_DIV_30 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3A0
210 #define ESI_TSM_START_TRIGGER_DIV_42 ESIDIV3A0 + ESIDIV3A1 + ESIDIV3B0
211 #define ESI_TSM_START_TRIGGER_DIV_50 ESIDIV3A1 + ESIDIV3B1
212 #define ESI_TSM_START_TRIGGER_DIV_54 ESIDIV3A2 + ESIDIV3B0
213 #define ESI_TSM_START_TRIGGER_DIV_66 ESIDIV3A2 + ESIDIV3A0 + ESIDIV3B0
214 #define ESI_TSM_START_TRIGGER_DIV_70 ESIDIV3A1 + ESIDIV3A0 + ESIDIV3B1
215 #define ESI_TSM_START_TRIGGER_DIV_78 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3B0
216 #define ESI_TSM_START_TRIGGER_DIV_90 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3A0 + ESIDIV3B0
217 #define ESI_TSM_START_TRIGGER_DIV_98 ESIDIV3A0 + ESIDIV3A1 + ESIDIV3B0 + ESIDIV3B1
218 #define ESI_TSM_START_TRIGGER_DIV_110 ESIDIV3A2 + ESIDIV3A0 + ESIDIV3B1
219 #define ESI_TSM_START_TRIGGER_DIV_126 ESIDIV3A2 + ESIDIV3B0 + ESIDIV3B1
220 #define ESI_TSM_START_TRIGGER_DIV_130 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3B1
221 #define ESI_TSM_START_TRIGGER_DIV_150 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3A0 + ESIDIV3B1
222 #define ESI_TSM_START_TRIGGER_DIV_154 ESIDIV3A2 + ESIDIV3A0 + ESIDIV3B0 + ESIDIV3B1
223 #define ESI_TSM_START_TRIGGER_DIV_162 ESIDIV3A2 + ESIDIV3B2
224 #define ESI_TSM_START_TRIGGER_DIV_182 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3B0 + ESIDIV3B1
225 #define ESI_TSM_START_TRIGGER_DIV_198 ESIDIV3A2 + ESIDIV3A0 + ESIDIV3B2
226 #define ESI_TSM_START_TRIGGER_DIV_210 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3A0 + ESIDIV3B0 + ESIDIV3B1
227 #define ESI_TSM_START_TRIGGER_DIV_234 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3B2
228 #define ESI_TSM_START_TRIGGER_DIV_242 ESIDIV3A2 + ESIDIV3A0 + ESIDIV3B2 + ESIDIV3B0
229 #define ESI_TSM_START_TRIGGER_DIV_270 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3A0 + ESIDIV3B2
230 #define ESI_TSM_START_TRIGGER_DIV_286 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3B2 + ESIDIV3B0
231 #define ESI_TSM_START_TRIGGER_DIV_330 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3A0 + ESIDIV3B2 + ESIDIV3B0
232 #define ESI_TSM_START_TRIGGER_DIV_338 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3B2 + ESIDIV3B1
233 #define ESI_TSM_START_TRIGGER_DIV_390 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3A0 + ESIDIV3B2 + ESIDIV3B1
234 #define ESI_TSM_START_TRIGGER_DIV_450 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3A0 + ESIDIV3B2 + ESIDIV3B1 + ESIDIV3B0
235 
236 //*****************************************************************************
237 //
238 //The following are values that can be passed to
239 //repeatMode parameter in ESI_TSM_InitParams
240 //
241 //*****************************************************************************
242 #define ESI_TSM_REPEAT_NEW_TRIGGER 0x0
243 #define ESI_TSM_REPEAT_END_OF_PREVIOUS_SEQ ESITSMRP
244 
245 //*****************************************************************************
246 //
247 //The following are values that can be passed to
248 //startTriggerSelection parameter in ESI_TSM_InitParams
249 //
250 //*****************************************************************************
251 #define ESI_TSM_STOP_SEQUENCE 0x0
252 #define ESI_TSM_START_TRIGGER_ACLK ESITSMTRG0
253 #define ESI_TSM_START_TRIGGER_SOFTWARE ESITSMTRG1
254 #define ESI_TSM_START_TRIGGER_ACLK_OR_SOFTWARE ESITSMTRG1 + ESITSMTRG0
255 
256 //*****************************************************************************
257 //
258 //The following are values that can be passed to
259 //tsmFunctionalitySelection parameter in ESI_TSM_InitParams
260 //
261 //*****************************************************************************
262 #define ESI_TSM_HIGH_FREQ_CLK_FUNCTION_ON 0x0
263 #define ESI_TSM_AUTOZERO_CYCLE_FUNCTION_ON ESICLKAZSEL
264 
265 typedef struct ESI_TSM_InitParams {
266  uint16_t smclkDivider;
267  uint16_t aclkDivider;
268  uint16_t startTriggerAclkDivider;
269  uint16_t repeatMode;
270  uint16_t startTriggerSelection;
271  uint16_t tsmFunctionSelection;
273 
274 extern const ESI_TSM_InitParams ESI_TSM_INITPARAMS_DEFAULT;
275 
276 void ESI_TSM_init (ESI_TSM_InitParams *params);
277 
278 void ESI_TSM_clearTable(void);
279 
280 void ESI_TSM_copyTable(uint16_t* tsmTable, uint16_t size);
281 
282 void ESI_TSM_softwareTrigger(void);
283 
284 uint8_t ESI_TSM_getTSMStateDuration(uint8_t stateRegNum);
285 
286 void ESI_TSM_setTSMStateDuration(uint8_t stateRegNum, uint8_t duration);
287 
288 //*****************************************************************************
289 //
290 //The following are values that can be passed to
291 //Q6Select parameter in ESI_PSM_InitParams
292 //
293 //*****************************************************************************
294 #define ESI_PSM_Q6_DISABLE 0x0
295 #define ESI_PSM_Q6_ENABLE ESIQ6EN
296 
297 //*****************************************************************************
298 //
299 //The following are values that can be passed to
300 //Q7TriggerSelect parameter in ESI_PSM_InitParams
301 //
302 //*****************************************************************************
303 #define ESI_PSM_Q7_TRIGGER_DISABLE 0x0
304 #define ESI_PSM_Q7_TRIGGER_ENABLE ESIQ7TRG
305 
306 //*****************************************************************************
307 //
308 //The following are values that can be passed to
309 //count0Select parameter in ESI_PSM_InitParams
310 //
311 //*****************************************************************************
312 #define ESI_PSM_CNT0_DISABLE 0x0
313 #define ESI_PSM_CNT0_ENABLE ESICNT0EN
314 
315 //*****************************************************************************
316 //
317 //The following are values that can be passed to
318 //count0Reset parameter in ESI_PSM_InitParams
319 //
320 //*****************************************************************************
321 #define ESI_PSM_CNT0_NO_RESET 0x0
322 #define ESI_PSM_CNT0_RESET ESICNT0RST
323 
324 //*****************************************************************************
325 //
326 //The following are values that can be passed to
327 //count1Select parameter in ESI_PSM_InitParams
328 //
329 //*****************************************************************************
330 #define ESI_PSM_CNT1_DISABLE 0x0
331 #define ESI_PSM_CNT1_ENABLE ESICNT1EN
332 
333 //*****************************************************************************
334 //
335 //The following are values that can be passed to
336 //count1Reset parameter in ESI_PSM_InitParams
337 //
338 //*****************************************************************************
339 #define ESI_PSM_CNT1_NO_RESET 0x0
340 #define ESI_PSM_CNT1_RESET ESICNT1RST
341 
342 //*****************************************************************************
343 //
344 //The following are values that can be passed to
345 //count2Select parameter in ESI_PSM_InitParams
346 //
347 //*****************************************************************************
348 #define ESI_PSM_CNT2_DISABLE 0x0
349 #define ESI_PSM_CNT2_ENABLE ESICNT2EN
350 
351 //*****************************************************************************
352 //
353 //The following are values that can be passed to
354 //count2Reset parameter in ESI_PSM_InitParams
355 //
356 //*****************************************************************************
357 #define ESI_PSM_CNT2_NO_RESET 0x0
358 #define ESI_PSM_CNT2_RESET ESICNT2RST
359 
360 
361 //*****************************************************************************
362 //
363 //The following are values that can be passed to
364 //V2Select parameter in ESI_PSM_InitParams
365 //
366 //*****************************************************************************
367 #define ESI_PSM_S3_SELECT 0x0
368 #define ESI_PSM_Q0_SELECT ESIV2SEL
369 
370 //*****************************************************************************
371 //
372 //The following are values that can be passed to
373 //TEST4Select parameter in ESI_PSM_InitParams
374 //
375 //*****************************************************************************
376 #define ESI_PSM_TEST4_IS_Q2 0x0
377 #define ESI_PSM_TEST4_IS_Q1 ESITEST4SEL0
378 #define ESI_PSM_TEST4_IS_TSM_CLK ESITEST4SEL1
379 #define ESI_PSM_TEST4_IS_AFE1_COMPARATOR ESITEST4SEL0 + ESITEST4SEL1
380 
381 typedef struct ESI_PSM_InitParams {
382  uint16_t Q6Select;
383  uint16_t Q7TriggerSelect;
384  uint16_t count0Select;
385  uint16_t count0Reset;
386  uint16_t count1Select;
387  uint16_t count1Reset;
388  uint16_t count2Select;
389  uint16_t count2Reset;
390  uint16_t V2Select;
391  uint16_t TEST4Select;
393 
394 extern const ESI_PSM_InitParams ESI_PSM_INITPARAMS_DEFAULT;
395 
396 void ESI_PSM_init (ESI_PSM_InitParams *params);
397 
398 void ESI_PSM_clearTable(void);
399 void ESI_PSM_copyTable(uint8_t * psmTable, uint8_t size);
400 
401 //*****************************************************************************
402 //
403 //The following are values that can be passed to
404 //counterToReset parameter in ESI_PSM_counterReset
405 //
406 //*****************************************************************************
407 #define ESI_PSM_CNT0_RST ESICNT0RST
408 #define ESI_PSM_CNT1_RST ESICNT1RST
409 #define ESI_PSM_CNT2_RST ESICNT2RST
410 
411 void ESI_PSM_resetCounter (uint16_t counterToReset);
412 
413 //*****************************************************************************
414 //
415 //The following are values that can be passed to
416 //testCycleInsertion parameter in ESI_InitParams
417 //
418 //*****************************************************************************
419 #define ESI_TEST_CYCLE_INSERTION_DISABLE 0x0
420 #define ESI_TEST_CYCLE_INSERTION_ENABLE ESITESTD
421 
422 //*****************************************************************************
423 //
424 //The following are values that can be passed to
425 //timerAInputSelection parameter in ESI_InitParams
426 //
427 //*****************************************************************************
428 #define ESI_TIMERA_INPUT_TSM_COMPOUT 0x0
429 #define ESI_TIMERA_INPUT_TSM_PPUSRC ESICS
430 
431 //*****************************************************************************
432 //
433 //The following are values that can be passed to
434 //testChannel0Select parameter in ESI_InitParams
435 //
436 //*****************************************************************************
437 #define ESI_TEST_CHANNEL0_SOURCE_IS_CH0_CI0 0x0
438 #define ESI_TEST_CHANNEL0_SOURCE_IS_CH1_CI1 ESITCH00
439 #define ESI_TEST_CHANNEL0_SOURCE_IS_CH2_CI2 ESITCH01
440 #define ESI_TEST_CHANNEL0_SOURCE_IS_CH3_CI3 ESITCH00 + ESITCH01
441 
442 //*****************************************************************************
443 //
444 //The following are values that can be passed to
445 //testChannel1Select parameter in ESI_InitParams
446 //
447 //*****************************************************************************
448 #define ESI_TEST_CHANNEL1_SOURCE_IS_CH0_CI0 0x0
449 #define ESI_TEST_CHANNEL1_SOURCE_IS_CH1_CI1 ESITCH10
450 #define ESI_TEST_CHANNEL1_SOURCE_IS_CH2_CI2 ESITCH11
451 #define ESI_TEST_CHANNEL1_SOURCE_IS_CH3_CI3 ESITCH10 + ESITCH11
452 
453 //*****************************************************************************
454 //
455 //The following are values that can be passed to
456 //internalOscSelect parameter in ESI_InitParams
457 //
458 //*****************************************************************************
459 #define ESI_INTERNAL_OSC_DISABLE 0x0
460 #define ESI_INTERNAL_OSC_ENABLE ESIHFSEL
461 
462 //*****************************************************************************
463 //
464 //The following are values that can be passed to
465 //sourceNum parameter in ESI_psmSourceSelect
466 //
467 //*****************************************************************************
468 #define PSM_S1_SOURCE 1
469 #define PSM_S2_SOURCE 2
470 #define PSM_S3_SOURCE 3
471 
472 //*****************************************************************************
473 //
474 //The following are values that can be passed to
475 //sourceSelect parameter in ESI_psmSourceSelect
476 //
477 //*****************************************************************************
478 #define ESI_PSM_SOURCE_IS_ESIOUT0 0
479 #define ESI_PSM_SOURCE_IS_ESIOUT1 1
480 #define ESI_PSM_SOURCE_IS_ESIOUT2 2
481 #define ESI_PSM_SOURCE_IS_ESIOUT3 3
482 #define ESI_PSM_SOURCE_IS_ESIOUT4 4
483 #define ESI_PSM_SOURCE_IS_ESIOUT5 5
484 #define ESI_PSM_SOURCE_IS_ESIOUT6 6
485 #define ESI_PSM_SOURCE_IS_ESIOUT7 7
486 
487 void ESI_timerAInputSelect(uint16_t select);
488 void ESI_psmSourceSelect(uint16_t sourceNum, uint16_t sourceSelect);
489 void ESI_testChannel0SourceSelect(uint16_t sourceSelect);
490 void ESI_testChannel1SourceSelect(uint16_t sourceSelect);
491 void ESI_enable(void);
492 void ESI_disable(void);
493 
496 void ESI_startInternalOscCal(void);
497 void ESI_stopInternalOscCal(void);
498 
499 //*****************************************************************************
500 //
501 //The following are values that can be passed to
502 //oversample parameter in ESI_measureESIOSCOversample
503 //
504 //*****************************************************************************
505 #define ESI_ESIOSC_NO_OVERSAMPLE 0
506 #define ESI_ESIOSC_OVERSAMPLE_2 2
507 #define ESI_ESIOSC_OVERSAMPLE_4 4
508 #define ESI_ESIOSC_OVERSAMPLE_8 8
509 uint16_t ESI_measureESIOSC(uint8_t oversample);
510 uint8_t ESI_getESICLKFQ(void);
511 
512 //*****************************************************************************
513 //
514 //The following are values that can be passed to
515 //incOrDec parameter in ESI_adjustInternalOscFreq
516 //
517 //*****************************************************************************
518 #define ESI_INTERNAL_OSC_FREQ_DECREASE 0x0
519 #define ESI_INTERNAL_OSC_FREQ_INCREASE 0x1
520 
521 void ESI_adjustInternalOscFreq(uint16_t incOrDec);
523 void ESI_calibrateInternalOscFreq(uint16_t targetAclkCounts);
524 void ESI_setPSMCounter1IncreaseThreshold(
525  uint16_t threshold);
526 
527 void ESI_setPSMCounter1DecreaseThreshold(
528  uint16_t threshold);
529 
530 //*****************************************************************************
531 //
532 //The following are values that can be passed to
533 //resultNum parameter in ESI_getConversionResult
534 //
535 //*****************************************************************************
536 #define ESI_CONVERSION_RESULT_1 ESIADMEM1
537 #define ESI_CONVERSION_RESULT_2 ESIADMEM2
538 #define ESI_CONVERSION_RESULT_3 ESIADMEM3
539 #define ESI_CONVERSION_RESULT_4 ESIADMEM4
540 
541 uint16_t ESI_getConversionResult(uint16_t resultNum);
542 
543 //*****************************************************************************
544 //
545 //The following are values that can be passed to
546 //dacRegNum parameter in ESI_setAFE1DACValue and ESI_getAFE1DACValue
547 //
548 //*****************************************************************************
549 #define ESI_DAC1_REG0 0
550 #define ESI_DAC1_REG1 1
551 #define ESI_DAC1_REG2 2
552 #define ESI_DAC1_REG3 3
553 #define ESI_DAC1_REG4 4
554 #define ESI_DAC1_REG5 5
555 #define ESI_DAC1_REG6 6
556 #define ESI_DAC1_REG7 7
557 
558 void ESI_setAFE1DACValue(uint16_t dacValue,
559  uint8_t dacRegNum);
560 uint16_t ESI_getAFE1DACValue(uint8_t dacRegNum);
561 
562 //*****************************************************************************
563 //
564 //The following are values that can be passed to
565 //dacRegNum parameter in ESI_setAFE2DACValue and ESI_getAFE2DACValue
566 //
567 //*****************************************************************************
568 #define ESI_DAC2_REG0 0
569 #define ESI_DAC2_REG1 1
570 #define ESI_DAC2_REG2 2
571 #define ESI_DAC2_REG3 3
572 #define ESI_DAC2_REG4 4
573 #define ESI_DAC2_REG5 5
574 #define ESI_DAC2_REG6 6
575 #define ESI_DAC2_REG7 7
576 
577 void ESI_setAFE2DACValue(uint16_t dacValue,
578  uint8_t dacRegNum);
579 uint16_t ESI_getAFE2DACValue(uint8_t dacRegNum);
580 
581 
582 //*****************************************************************************
583 //
584 //The following are values that can be passed to
585 //stateRegNum parameter in ESI_setTSMstateReg
586 //
587 //*****************************************************************************
588 #define ESI_TSM_STATE_REG_0 0
589 #define ESI_TSM_STATE_REG_1 1
590 #define ESI_TSM_STATE_REG_2 2
591 #define ESI_TSM_STATE_REG_3 3
592 #define ESI_TSM_STATE_REG_4 4
593 #define ESI_TSM_STATE_REG_5 5
594 #define ESI_TSM_STATE_REG_6 6
595 #define ESI_TSM_STATE_REG_7 7
596 #define ESI_TSM_STATE_REG_8 8
597 #define ESI_TSM_STATE_REG_9 9
598 #define ESI_TSM_STATE_REG_10 10
599 #define ESI_TSM_STATE_REG_11 11
600 #define ESI_TSM_STATE_REG_12 12
601 #define ESI_TSM_STATE_REG_13 13
602 #define ESI_TSM_STATE_REG_14 14
603 #define ESI_TSM_STATE_REG_15 15
604 #define ESI_TSM_STATE_REG_16 16
605 #define ESI_TSM_STATE_REG_17 17
606 #define ESI_TSM_STATE_REG_18 18
607 #define ESI_TSM_STATE_REG_19 19
608 #define ESI_TSM_STATE_REG_20 20
609 #define ESI_TSM_STATE_REG_21 21
610 #define ESI_TSM_STATE_REG_22 22
611 #define ESI_TSM_STATE_REG_23 23
612 #define ESI_TSM_STATE_REG_24 24
613 #define ESI_TSM_STATE_REG_25 25
614 #define ESI_TSM_STATE_REG_26 26
615 #define ESI_TSM_STATE_REG_27 27
616 #define ESI_TSM_STATE_REG_28 28
617 #define ESI_TSM_STATE_REG_29 29
618 #define ESI_TSM_STATE_REG_30 30
619 #define ESI_TSM_STATE_REG_31 31
620 
621 //*****************************************************************************
622 //
623 //The following are values that can be passed to
624 //inputChannelSelect parameter in ESI_TSM_StateParams
625 //
626 //*****************************************************************************
627 #define ESI_TSM_STATE_CHANNEL_SELECT_CH0 0
628 #define ESI_TSM_STATE_CHANNEL_SELECT_CH1 ESICH0
629 #define ESI_TSM_STATE_CHANNEL_SELECT_CH2 ESICH1
630 #define ESI_TSM_STATE_CHANNEL_SELECT_CH3 (ESICH1 | ESICH0)
631 
632 //*****************************************************************************
633 //
634 //The following are values that can be passed to
635 //LCDampingSelect parameter in ESI_TSM_StateParams
636 //
637 //*****************************************************************************
638 #define ESI_TSM_STATE_LC_DAMPING_DISABLE 0x0
639 #define ESI_TSM_STATE_LC_DAMPING_ENABLE ESILCEN
640 
641 //*****************************************************************************
642 //
643 //The following are values that can be passed to
644 //excitationSelect parameter in ESI_TSM_StateParams
645 //
646 //*****************************************************************************
647 #define ESI_TSM_STATE_EXCITATION_DISABLE 0x0
648 #define ESI_TSM_STATE_EXCITATION_ENABLE ESIEX
649 
650 //*****************************************************************************
651 //
652 //The following are values that can be passed to
653 //comparatorSelect parameter in ESI_TSM_StateParams
654 //
655 //*****************************************************************************
656 #define ESI_TSM_STATE_COMPARATOR_DISABLE 0x0
657 #define ESI_TSM_STATE_COMPARATOR_ENABLE ESICA
658 
659 //*****************************************************************************
660 //
661 //The following are values that can be passed to
662 //highFreqClkOn_or_compAutoZeroCycle parameter in ESI_TSM_StateParams
663 //
664 //*****************************************************************************
665 #define ESI_TSM_STATE_HIGH_FREQ_CLK_ON 0x0
666 #define ESI_TSM_STATE_COMP_AUTOZERO_CYCLE ESICLKON
667 
668 //*****************************************************************************
669 //
670 //The following are values that can be passed to
671 //outputLatchSelect parameter in ESI_TSM_StateParams
672 //
673 //*****************************************************************************
674 #define ESI_TSM_STATE_OUTPUT_LATCH_DISABLE 0x0
675 #define ESI_TSM_STATE_OUTPUT_LATCH_ENABLE ESIRSON
676 
677 //*****************************************************************************
678 //
679 //The following are values that can be passed to
680 //testCycleSelect parameter in ESI_TSM_StateParams
681 //
682 //*****************************************************************************
683 #define ESI_TSM_STATE_TEST_CYCLE_DISABLE 0x0
684 #define ESI_TSM_STATE_TEST_CYCLE_ENABLE ESITESTS1
685 
686 //*****************************************************************************
687 //
688 //The following are values that can be passed to
689 //dacSelect parameter in ESI_TSM_StateParams
690 //
691 //*****************************************************************************
692 #define ESI_TSM_STATE_DAC_DISABLE 0x0
693 #define ESI_TSM_STATE_DAC_ENABLE ESIDAC
694 
695 //*****************************************************************************
696 //
697 //The following are values that can be passed to
698 //tsmStop parameter in ESI_TSM_StateParams
699 //
700 //*****************************************************************************
701 #define ESI_TSM_STATE_CONTINUE 0x0
702 #define ESI_TSM_STATE_STOP ESISTOP
703 
704 //*****************************************************************************
705 //
706 //The following are values that can be passed to
707 //tsmClkSrc parameter in ESI_TSM_StateParams
708 //
709 //*****************************************************************************
710 #define ESI_TSM_STATE_HIGH_FREQ_CLK 0x0
711 #define ESI_TSM_STATE_ACLK ESICLK
712 
713 //*****************************************************************************
714 //
715 //Values between these min and max can be pased to
716 //duration parameter in ESI_TSM_StateParams
717 //
718 //*****************************************************************************
719 #define ESI_TSM_STATE_DURATION_MIN 0x00
720 #define ESI_TSM_STATE_DURATION_MAX 0x1F
721 
722 typedef struct ESI_TSM_StateParams {
723  uint16_t inputChannelSelect;
724  uint16_t LCDampingSelect;
725  uint16_t excitationSelect;
726  uint16_t comparatorSelect;
727  uint16_t highFreqClkOn_or_compAutoZeroCycle;
728  uint16_t outputLatchSelect;
729  uint16_t testCycleSelect;
730  uint16_t dacSelect;
731  uint16_t tsmStop;
732  uint16_t tsmClkSrc;
733  uint16_t duration;
735 
737  uint8_t stateRegNum);
738 
739 uint16_t ESIgetInterruptVectorRegister(void);
740 
741 //*****************************************************************************
742 //
743 //The following values can be be used to form the interrupt mask for
744 //ESI_enableInterrupt and ESI_disableInterrupt
745 //
746 //*****************************************************************************
747 #define ESI_INTERRUPT_AFE1_ESIOUTX ESIIE0
748 #define ESI_INTERRUPT_ESISTOP ESIIE1
749 #define ESI_INTERRUPT_ESISTART ESIIE2
750 #define ESI_INTERRUPT_ESICNT1 ESIIE3
751 #define ESI_INTERRUPT_ESICNT2 ESIIE4
752 #define ESI_INTERRUPT_Q6_BIT_SET ESIIE5
753 #define ESI_INTERRUPT_Q7_BIT_SET ESIIE6
754 #define ESI_INTERRUPT_ESICNT0_COUNT_INTERVAL ESIIE7
755 #define ESI_INTERRUPT_AFE2_ESIOUTX ESIIE8
756 
757 
758 void ESI_enableInterrupt(uint16_t interruptMask);
759 void ESI_disableInterrupt(uint16_t interruptMask);
760 
761 //*****************************************************************************
762 //
763 //Return values for ESI_getInterruptStatus
764 //
765 //*****************************************************************************
766 #define ESI_INTERRUPT_FLAG_AFE1_ESIOUTX ESIIFG0
767 #define ESI_INTERRUPT_FLAG_ESISTOP ESIIFG1
768 #define ESI_INTERRUPT_FLAG_ESISTART ESIIFG2
769 #define ESI_INTERRUPT_FLAG_ESICNT1 ESIIFG3
770 #define ESI_INTERRUPT_FLAG_ESICNT2 ESIIFG4
771 #define ESI_INTERRUPT_FLAG_Q6_BIT_SET ESIIFG5
772 #define ESI_INTERRUPT_FLAG_Q7_BIT_SET ESIIFG6
773 #define ESI_INTERRUPT_FLAG_ESICNT0_COUNT_INTERVAL ESIIFG7
774 #define ESI_INTERRUPT_FLAG_AFE2_ESIOUTX ESIIFG8
775 
776 
777 uint16_t ESI_getInterruptStatus ( uint16_t interruptMask);
778 void ESI_clearInterrupt (uint16_t interruptMask);
779 
780 //*****************************************************************************
781 //
782 //Values for ifg0Src in ESI_setIFG0Source
783 //
784 //*****************************************************************************
785 #define ESI_IFG0_SET_WHEN_ESIOUT0_SET ESIIFGSET1_0
786 #define ESI_IFG0_SET_WHEN_ESIOUT0_RESET ESIIFGSET1_1
787 #define ESI_IFG0_SET_WHEN_ESIOUT1_SET ESIIFGSET1_2
788 #define ESI_IFG0_SET_WHEN_ESIOUT1_RESET ESIIFGSET1_3
789 #define ESI_IFG0_SET_WHEN_ESIOUT2_SET ESIIFGSET1_4
790 #define ESI_IFG0_SET_WHEN_ESIOUT2_RESET ESIIFGSET1_5
791 #define ESI_IFG0_SET_WHEN_ESIOUT3_SET ESIIFGSET1_6
792 #define ESI_IFG0_SET_WHEN_ESIOUT3_RESET ESIIFGSET1_7
793 
794 void ESI_setIFG0Source(uint16_t ifg0Src);
795 
796 //*****************************************************************************
797 //
798 //Values for ifg8Src in ESI_setIFG8Source
799 //
800 //*****************************************************************************
801 #define ESI_IFG8_SET_WHEN_ESIOUT4_SET ESIIFGSET2_0
802 #define ESI_IFG8_SET_WHEN_ESIOUT4_RESET ESIIFGSET2_1
803 #define ESI_IFG8_SET_WHEN_ESIOUT5_SET ESIIFGSET2_2
804 #define ESI_IFG8_SET_WHEN_ESIOUT5_RESET ESIIFGSET2_3
805 #define ESI_IFG8_SET_WHEN_ESIOUT6_SET ESIIFGSET2_4
806 #define ESI_IFG8_SET_WHEN_ESIOUT6_RESET ESIIFGSET2_5
807 #define ESI_IFG8_SET_WHEN_ESIOUT7_SET ESIIFGSET2_6
808 #define ESI_IFG8_SET_WHEN_ESIOUT7_RESET ESIIFGSET2_7
809 
810 void ESI_setIFG8Source(uint16_t ifg8Src);
811 
812 //*****************************************************************************
813 //
814 //Values for ifg7Src in ESI_setIFG7Source
815 //
816 //*****************************************************************************
817 #define ESI_IFG7_SOURCE_EVERY_COUNT_OF_CNT0 ESIIS0_0
818 #define ESI_IFG7_SOURCE_CNT0_MOD4 ESIIS0_1
819 #define ESI_IFG7_SOURCE_CNT0_MOD256 ESIIS0_2
820 #define ESI_IFG7_SOURCE_CNT0_ROLLOVER ESIIS0_3
821 
822 void ESI_setIFG7Source(uint16_t ifg7Src);
823 
824 //*****************************************************************************
825 //
826 //Values for ifg4Src in ESI_setIFG4Source
827 //
828 //*****************************************************************************
829 #define ESI_IFG4_SOURCE_EVERY_COUNT_OF_CNT2 ESIIS2_0
830 #define ESI_IFG4_SOURCE_CNT2_MOD4 ESIIS2_1
831 #define ESI_IFG4_SOURCE_CNT2_MOD256 ESIIS2_2
832 #define ESI_IFG4_SOURCE_CNT2_ROLLOVER ESIIS2_3
833 
834 void ESI_setIFG4Source(uint16_t ifg4Src);
835 
836 
837 void ESI_setPSMCounter1UpperThreshold(uint16_t threshold);
838 void ESI_setPSMCounter1LowerThreshold(uint16_t threshold);
839 
840 //*****************************************************************************
841 //
842 // Set correct DAC values for LC sensors
843 //
844 //*****************************************************************************
845 void ESI_LC_DAC_calibration(uint8_t selected_channel);
846 
847 //*****************************************************************************
848 //
849 // Mark the end of the C bindings section for C++ compilers.
850 //
851 //*****************************************************************************
852 #ifdef __cplusplus
853 }
854 #endif
855 
856 #endif
857 #endif
void ESI_AFE2_init(ESI_AFE2_InitParams *params)
Definition: esi.c:175
void ESI_psmSourceSelect(uint16_t sourceNum, uint16_t sourceSelect)
Definition: esi.c:505
void ESI_enableInternalOscillator()
Definition: esi.c:448
void ESI_PSM_init(ESI_PSM_InitParams *params)
Initialize Processing State Machine.
Definition: esi.c:359
void ESI_AFE1_init(ESI_AFE1_InitParams *params)
Definition: esi.c:130
void ESI_PSM_resetCounter(uint16_t counterToReset)
Definition: esi.c:433
void ESI_TSM_clearTable(void)
Definition: esi.c:257
Definition: esi.h:722
uint16_t ESI_getCounter0(void)
Definition: esi.c:71
uint16_t ESI_getAFE2DACValue(uint8_t dacRegNum)
Definition: esi.c:883
void ESI_PSM_clearTable(void)
Definition: esi.c:384
uint16_t ESI_getOscCounter(void)
Definition: esi.c:113
uint8_t ESI_TSM_getTSMStateDuration(uint8_t stateRegNum)
Definition: esi.c:319
void ESI_setNominalInternalOscFreq(void)
Definition: esi.c:647
void ESI_setAFE1DACValue(uint16_t dacValue, uint8_t dacRegNum)
Definition: esi.c:829
void ESI_startInternalOscCal(void)
Definition: esi.c:602
void ESI_TSM_copyTable(uint16_t *tsmTable, uint16_t size)
Definition: esi.c:278
uint16_t ESI_getCounter2(void)
Definition: esi.c:99
void ESI_PSM_copyTable(uint8_t *psmTable, uint8_t size)
Definition: esi.c:405
void ESI_setIFG0Source(uint16_t ifg0Src)
Definition: esi.c:1057
uint16_t ESI_measureESIOSC(uint8_t oversample)
Definition: esi.c:767
void ESI_setIFG8Source(uint16_t ifg8Src)
Definition: esi.c:1080
void ESI_LC_DAC_calibration(uint8_t selected_channel)
Definition: esi.c:1141
void ESI_calibrateInternalOscFreq(uint16_t targetAclkCounts)
Definition: esi.c:735
uint16_t ESI_getCounter1(void)
Definition: esi.c:85
void ESI_TSM_init(ESI_TSM_InitParams *params)
Definition: esi.c:235
void ESI_adjustInternalOscFreq(uint16_t incOrDec)
Definition: esi.c:618
void ESI_testChannel0SourceSelect(uint16_t sourceSelect)
Definition: esi.c:540
void ESI_setTSMstateReg(ESI_TSM_StateParams *params, uint8_t stateRegNum)
Definition: esi.c:901
uint8_t ESI_getESICLKFQ(void)
The following function returns the ESICLKFQx bits on ESIOSC register.
Definition: esi.c:694
void ESI_timerAInputSelect(uint16_t select)
Definition: esi.c:480
void ESI_testChannel1SourceSelect(uint16_t sourceSelect)
Definition: esi.c:561
void ESI_setAFE2DACValue(uint16_t dacValue, uint8_t dacRegNum)
Definition: esi.c:865
void ESI_enableInterrupt(uint16_t interruptMask)
Definition: esi.c:952
void ESI_setIFG7Source(uint16_t ifg7Src)
Definition: esi.c:1099
Definition: esi.h:265
uint16_t ESI_getLatchedComparatorOutput(uint16_t channelSelect)
Definition: esi.c:213
void ESI_TSM_softwareTrigger(void)
Definition: esi.c:304
void ESI_setIFG4Source(uint16_t ifg4Src)
Definition: esi.c:1118
void ESI_disableInterrupt(uint16_t interruptMask)
Definition: esi.c:977
uint16_t ESI_getAFE1DACValue(uint8_t dacRegNum)
Definition: esi.c:847
void ESI_setPSMCounter1LowerThreshold(uint16_t threshold)
Definition: esi.c:811
void ESI_disable(void)
Definition: esi.c:586
uint16_t ESI_getInterruptStatus(uint16_t interruptMask)
Definition: esi.c:1011
void ESI_clearInterrupt(uint16_t interruptMask)
Definition: esi.c:1035
Definition: esi.h:381
Definition: esi.h:122
Definition: esi.h:135
void ESI_enable(void)
Definition: esi.c:574
void ESI_disableInternalOscillator()
Definition: esi.c:463
void ESI_TSM_setTSMStateDuration(uint8_t stateRegNum, uint8_t duration)
Definition: esi.c:335
void ESI_setPSMCounter1UpperThreshold(uint16_t threshold)
Definition: esi.c:793

Copyright 2015, Texas Instruments Incorporated