2 * Copyright (c) 2014, Texas Instruments Incorporated
\r
3 * All rights reserved.
\r
5 * Redistribution and use in source and binary forms, with or without
\r
6 * modification, are permitted provided that the following conditions
\r
9 * * Redistributions of source code must retain the above copyright
\r
10 * notice, this list of conditions and the following disclaimer.
\r
12 * * Redistributions in binary form must reproduce the above copyright
\r
13 * notice, this list of conditions and the following disclaimer in the
\r
14 * documentation and/or other materials provided with the distribution.
\r
16 * * Neither the name of Texas Instruments Incorporated nor the names of
\r
17 * its contributors may be used to endorse or promote products derived
\r
18 * from this software without specific prior written permission.
\r
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
\r
21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
\r
22 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
\r
23 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
\r
24 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
\r
25 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
\r
26 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
\r
27 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
\r
28 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
\r
29 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
\r
30 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\r
32 //*****************************************************************************
\r
34 // esi.h - Driver for the ESI Module.
\r
36 //*****************************************************************************
\r
38 #ifndef __MSP430WARE_ESI_H__
\r
39 #define __MSP430WARE_ESI_H__
\r
41 #include "inc/hw_memmap.h"
\r
43 #ifdef __MSP430_HAS_ESI__
\r
45 //*****************************************************************************
\r
47 // If building with a C++ compiler, make all of the definitions in this header
\r
48 // have a C binding.
\r
50 //*****************************************************************************
\r
56 uint16_t ESI_getCounter0(void);
\r
57 uint16_t ESI_getCounter1(void);
\r
58 uint16_t ESI_getCounter2(void);
\r
59 uint16_t ESI_getOscCounter(void);
\r
61 //*****************************************************************************
\r
63 //The following are values that can be passed to excitationCircuitSelect
\r
64 //parameter in ESI_AFE_InitParams
\r
66 //*****************************************************************************
\r
67 #define ESI_EXCITATION_CIRCUIT_DISABLED 0x0
\r
68 #define ESI_EXCITATION_CIRCUIT_ENABLED ESITEN
\r
70 //*****************************************************************************
\r
72 //The following are values that can be passed to sampleAndHoldSelect
\r
73 //parameter in ESI_AFE_InitParams
\r
75 //*****************************************************************************
\r
76 #define ESI_SAMPLE_HOLD_DISABLED 0x0
\r
77 #define ESI_SAMPLE_HOLD_ENABLED ESISH
\r
79 //*****************************************************************************
\r
81 //The following are values that can be passed to midVoltageGeneratorSelect
\r
82 //parameter in ESI_AFE_InitParams
\r
84 //*****************************************************************************
\r
85 #define ESI_MID_VOLTAGE_GENERATOR_DISABLED 0x0
\r
86 #define ESI_MID_VOLTAGE_GENERATOR_ENABLED ESIVCC2
\r
88 //*****************************************************************************
\r
90 //The following are values that can be passed to sampleAndHoldVSSConnect
\r
91 //parameter in ESI_AFE_InitParams
\r
93 //*****************************************************************************
\r
94 #define ESI_SAMPLE_HOLD_VSS_TO_ESIVSS 0x0
\r
95 #define ESI_SAMPLE_HOLD_VSS_BY_TSM ESIVSS
\r
97 //*****************************************************************************
\r
99 //The following are values that can be passed to
\r
100 //inputSelectAFE1 parameter in ESI_AFE1_InitParams
\r
102 //*****************************************************************************
\r
103 #define ESI_AFE1_INPUT_SELECT_CHx 0
\r
104 #define ESI_AFE1_INPUT_SELECT_CIx 1
\r
105 #define ESI_AFE1_INPUT_SELECT_CI3 2
\r
106 #define ESI_AFE1_INPUT_SELECT_CI 3
\r
108 //*****************************************************************************
\r
110 //The following are values that can be passed to
\r
111 //inputSelectAFE2 parameter in ESI_AFE2_InitParams
\r
113 //*****************************************************************************
\r
114 #define ESI_AFE2_INPUT_SELECT_CHx 0
\r
115 #define ESI_AFE2_INPUT_SELECT_CIx ESICA2X
\r
117 //*****************************************************************************
\r
119 //The following are values that can be passed to
\r
120 //inverterSelectOutputAFE1 parameter in ESI_AFE1_InitParams
\r
122 //*****************************************************************************
\r
123 #define ESI_INVERTER_FOR_AFE1_DISABLE 0x0
\r
124 #define ESI_INVERTER_FOR_AFE1_ENABLE ESICA1INV
\r
126 //*****************************************************************************
\r
128 //The following are values that can be passed to
\r
129 //inverterSelectOutputAFE2 parameter in ESI_AFE2_InitParams
\r
131 //*****************************************************************************
\r
132 #define ESI_INVERTER_FOR_AFE2_DISABLE 0x0
\r
133 #define ESI_INVERTER_FOR_AFE2_ENABLE ESICA2INV
\r
135 //*****************************************************************************
\r
137 //The following are values that can be passed to
\r
138 //tsmControlOfComparatorAFE2 parameter in ESI_AFE2_InitParams
\r
140 //*****************************************************************************
\r
141 #define ESI_TSM_COMPARATOR_CONTROL_AFE2_DISABLE 0x0
\r
142 #define ESI_TSM_COMPARATOR_CONTROL_AFE2_ENABLE ESICA2EN
\r
144 //*****************************************************************************
\r
146 //The following are values that can be passed to
\r
147 //tsmControlDacAFE2 parameter in ESI_AFE2_InitParams
\r
149 //*****************************************************************************
\r
150 #define ESI_TSM_DAC_CONTROL_AFE2_DISABLE 0x0
\r
151 #define ESI_TSM_DAC_CONTROL_AFE2_ENABLE ESIDAC2EN
\r
153 typedef struct ESI_AFE1_InitParams
\r
155 uint16_t excitationCircuitSelect;
\r
156 uint16_t sampleAndHoldSelect;
\r
157 uint16_t midVoltageGeneratorSelect;
\r
158 uint16_t sampleAndHoldVSSConnect;
\r
159 uint16_t inputSelectAFE1;
\r
160 uint16_t inverterSelectOutputAFE1;
\r
161 } ESI_AFE1_InitParams;
\r
163 extern const ESI_AFE1_InitParams ESI_AFE1_INITPARAMS_DEFAULT;
\r
165 void ESI_AFE1_init(ESI_AFE1_InitParams *params);
\r
167 typedef struct ESI_AFE2_InitParams
\r
169 uint16_t inputSelectAFE2;
\r
170 uint16_t inverterSelectOutputAFE2;
\r
171 uint16_t tsmControlComparatorAFE2;
\r
172 uint16_t tsmControlDacAFE2;
\r
173 } ESI_AFE2_InitParams;
\r
175 extern const ESI_AFE2_InitParams ESI_AFE2_INITPARAMS_DEFAULT;
\r
177 void ESI_AFE2_init(ESI_AFE2_InitParams *params);
\r
179 //*****************************************************************************
\r
181 //The following are values that can be passed to
\r
182 //channelSelect parameter in ESI_getLatchedComparatorOutput
\r
184 //*****************************************************************************
\r
185 #define ESI_AFE1_CHANNEL0_SELECT ESIOUT0
\r
186 #define ESI_AFE1_CHANNEL1_SELECT ESIOUT1
\r
187 #define ESI_AFE1_CHANNEL2_SELECT ESIOUT2
\r
188 #define ESI_AFE1_CHANNEL3_SELECT ESIOUT3
\r
189 #define ESI_AFE2_CHANNEL0_SELECT ESIOUT4
\r
190 #define ESI_AFE2_CHANNEL1_SELECT ESIOUT5
\r
191 #define ESI_AFE2_CHANNEL2_SELECT ESIOUT6
\r
192 #define ESI_AFE2_CHANNEL3_SELECT ESIOUT7
\r
193 #define ESI_AFE1_TEST_CHANNEL0_SELECT ESITCHOUT0
\r
194 #define ESI_AFE1_TEST_CHANNEL1_SELECT ESITCHOUT1
\r
196 //*****************************************************************************
\r
198 //The following are values that are returned by ESI_getLatchedComparatorOutput
\r
200 //*****************************************************************************
\r
201 #define ESI_AFE_OUTPUT_HIGH 0x1
\r
202 #define ESI_AFE_OUTPUT_LOW 0x0
\r
204 uint16_t ESI_getLatchedComparatorOutput(uint16_t channelSelect);
\r
206 //*****************************************************************************
\r
208 //The following are values that can be passed to
\r
209 //smclkDivider parameter in ESI_TSM_InitParams
\r
211 //*****************************************************************************
\r
212 #define ESI_TSM_SMCLK_DIV_1 0x0
\r
213 #define ESI_TSM_SMCLK_DIV_2 ESIDIV10
\r
214 #define ESI_TSM_SMCLK_DIV_4 ESIDIV11
\r
215 #define ESI_TSM_SMCLK_DIV_8 ESIDIV10 + ESIDIV11
\r
217 //*****************************************************************************
\r
219 //The following are values that can be passed to
\r
220 //aclkDivider parameter in ESI_TSM_InitParams
\r
222 //*****************************************************************************
\r
223 #define ESI_TSM_ACLK_DIV_1 0x0
\r
224 #define ESI_TSM_ACLK_DIV_2 ESIDIV20
\r
225 #define ESI_TSM_ACLK_DIV_4 ESIDIV21
\r
226 #define ESI_TSM_ACLK_DIV_8 ESIDIV20 + ESIDIV21
\r
228 //*****************************************************************************
\r
230 //The following are values that can be passed to
\r
231 //startTriggerAclkDivider parameter in ESI_TSM_InitParams
\r
233 //*****************************************************************************
\r
234 #define ESI_TSM_START_TRIGGER_DIV_2 0x0
\r
235 #define ESI_TSM_START_TRIGGER_DIV_6 ESIDIV3A0
\r
236 #define ESI_TSM_START_TRIGGER_DIV_10 ESIDIV3A1
\r
237 #define ESI_TSM_START_TRIGGER_DIV_14 ESIDIV3A0 + ESIDIV3A1
\r
238 #define ESI_TSM_START_TRIGGER_DIV_18 ESIDIV3A2
\r
239 #define ESI_TSM_START_TRIGGER_DIV_22 ESIDIV3A2 + ESIDIV3A0
\r
240 #define ESI_TSM_START_TRIGGER_DIV_26 ESIDIV3A2 + ESIDIV3A1
\r
241 #define ESI_TSM_START_TRIGGER_DIV_30 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3A0
\r
242 #define ESI_TSM_START_TRIGGER_DIV_42 ESIDIV3A0 + ESIDIV3A1 + ESIDIV3B0
\r
243 #define ESI_TSM_START_TRIGGER_DIV_50 ESIDIV3A1 + ESIDIV3B1
\r
244 #define ESI_TSM_START_TRIGGER_DIV_54 ESIDIV3A2 + ESIDIV3B0
\r
245 #define ESI_TSM_START_TRIGGER_DIV_66 ESIDIV3A2 + ESIDIV3A0 + ESIDIV3B0
\r
246 #define ESI_TSM_START_TRIGGER_DIV_70 ESIDIV3A1 + ESIDIV3A0 + ESIDIV3B1
\r
247 #define ESI_TSM_START_TRIGGER_DIV_78 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3B0
\r
248 #define ESI_TSM_START_TRIGGER_DIV_90 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3A0 + \
\r
250 #define ESI_TSM_START_TRIGGER_DIV_98 ESIDIV3A0 + ESIDIV3A1 + ESIDIV3B0 + \
\r
252 #define ESI_TSM_START_TRIGGER_DIV_110 ESIDIV3A2 + ESIDIV3A0 + ESIDIV3B1
\r
253 #define ESI_TSM_START_TRIGGER_DIV_126 ESIDIV3A2 + ESIDIV3B0 + ESIDIV3B1
\r
254 #define ESI_TSM_START_TRIGGER_DIV_130 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3B1
\r
255 #define ESI_TSM_START_TRIGGER_DIV_150 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3A0 + \
\r
257 #define ESI_TSM_START_TRIGGER_DIV_154 ESIDIV3A2 + ESIDIV3A0 + ESIDIV3B0 + \
\r
259 #define ESI_TSM_START_TRIGGER_DIV_162 ESIDIV3A2 + ESIDIV3B2
\r
260 #define ESI_TSM_START_TRIGGER_DIV_182 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3B0 + \
\r
262 #define ESI_TSM_START_TRIGGER_DIV_198 ESIDIV3A2 + ESIDIV3A0 + ESIDIV3B2
\r
263 #define ESI_TSM_START_TRIGGER_DIV_210 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3A0 + \
\r
264 ESIDIV3B0 + ESIDIV3B1
\r
265 #define ESI_TSM_START_TRIGGER_DIV_234 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3B2
\r
266 #define ESI_TSM_START_TRIGGER_DIV_242 ESIDIV3A2 + ESIDIV3A0 + ESIDIV3B2 + \
\r
268 #define ESI_TSM_START_TRIGGER_DIV_270 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3A0 + \
\r
270 #define ESI_TSM_START_TRIGGER_DIV_286 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3B2 + \
\r
272 #define ESI_TSM_START_TRIGGER_DIV_330 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3A0 + \
\r
273 ESIDIV3B2 + ESIDIV3B0
\r
274 #define ESI_TSM_START_TRIGGER_DIV_338 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3B2 + \
\r
276 #define ESI_TSM_START_TRIGGER_DIV_390 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3A0 + \
\r
277 ESIDIV3B2 + ESIDIV3B1
\r
278 #define ESI_TSM_START_TRIGGER_DIV_450 ESIDIV3A2 + ESIDIV3A1 + ESIDIV3A0 + \
\r
279 ESIDIV3B2 + ESIDIV3B1 + ESIDIV3B0
\r
281 //*****************************************************************************
\r
283 //The following are values that can be passed to
\r
284 //repeatMode parameter in ESI_TSM_InitParams
\r
286 //*****************************************************************************
\r
287 #define ESI_TSM_REPEAT_NEW_TRIGGER 0x0
\r
288 #define ESI_TSM_REPEAT_END_OF_PREVIOUS_SEQ ESITSMRP
\r
290 //*****************************************************************************
\r
292 //The following are values that can be passed to
\r
293 //startTriggerSelection parameter in ESI_TSM_InitParams
\r
295 //*****************************************************************************
\r
296 #define ESI_TSM_STOP_SEQUENCE 0x0
\r
297 #define ESI_TSM_START_TRIGGER_ACLK ESITSMTRG0
\r
298 #define ESI_TSM_START_TRIGGER_SOFTWARE ESITSMTRG1
\r
299 #define ESI_TSM_START_TRIGGER_ACLK_OR_SOFTWARE ESITSMTRG1 + ESITSMTRG0
\r
301 //*****************************************************************************
\r
303 //The following are values that can be passed to
\r
304 //tsmFunctionalitySelection parameter in ESI_TSM_InitParams
\r
306 //*****************************************************************************
\r
307 #define ESI_TSM_HIGH_FREQ_CLK_FUNCTION_ON 0x0
\r
308 #define ESI_TSM_AUTOZERO_CYCLE_FUNCTION_ON ESICLKAZSEL
\r
310 typedef struct ESI_TSM_InitParams
\r
312 uint16_t smclkDivider;
\r
313 uint16_t aclkDivider;
\r
314 uint16_t startTriggerAclkDivider;
\r
315 uint16_t repeatMode;
\r
316 uint16_t startTriggerSelection;
\r
317 uint16_t tsmFunctionSelection;
\r
318 } ESI_TSM_InitParams;
\r
320 extern const ESI_TSM_InitParams ESI_TSM_INITPARAMS_DEFAULT;
\r
322 void ESI_TSM_init(ESI_TSM_InitParams *params);
\r
324 void ESI_TSM_clearTable(void);
\r
326 void ESI_TSM_copyTable(uint16_t* tsmTable,
\r
329 void ESI_TSM_softwareTrigger(void);
\r
331 uint8_t ESI_TSM_getTSMStateDuration(uint8_t stateRegNum);
\r
333 void ESI_TSM_setTSMStateDuration(uint8_t stateRegNum,
\r
336 //*****************************************************************************
\r
338 //The following are values that can be passed to
\r
339 //Q6Select parameter in ESI_PSM_InitParams
\r
341 //*****************************************************************************
\r
342 #define ESI_PSM_Q6_DISABLE 0x0
\r
343 #define ESI_PSM_Q6_ENABLE ESIQ6EN
\r
345 //*****************************************************************************
\r
347 //The following are values that can be passed to
\r
348 //Q7TriggerSelect parameter in ESI_PSM_InitParams
\r
350 //*****************************************************************************
\r
351 #define ESI_PSM_Q7_TRIGGER_DISABLE 0x0
\r
352 #define ESI_PSM_Q7_TRIGGER_ENABLE ESIQ7TRG
\r
354 //*****************************************************************************
\r
356 //The following are values that can be passed to
\r
357 //count0Select parameter in ESI_PSM_InitParams
\r
359 //*****************************************************************************
\r
360 #define ESI_PSM_CNT0_DISABLE 0x0
\r
361 #define ESI_PSM_CNT0_ENABLE ESICNT0EN
\r
363 //*****************************************************************************
\r
365 //The following are values that can be passed to
\r
366 //count0Reset parameter in ESI_PSM_InitParams
\r
368 //*****************************************************************************
\r
369 #define ESI_PSM_CNT0_NO_RESET 0x0
\r
370 #define ESI_PSM_CNT0_RESET ESICNT0RST
\r
372 //*****************************************************************************
\r
374 //The following are values that can be passed to
\r
375 //count1Select parameter in ESI_PSM_InitParams
\r
377 //*****************************************************************************
\r
378 #define ESI_PSM_CNT1_DISABLE 0x0
\r
379 #define ESI_PSM_CNT1_ENABLE ESICNT1EN
\r
381 //*****************************************************************************
\r
383 //The following are values that can be passed to
\r
384 //count1Reset parameter in ESI_PSM_InitParams
\r
386 //*****************************************************************************
\r
387 #define ESI_PSM_CNT1_NO_RESET 0x0
\r
388 #define ESI_PSM_CNT1_RESET ESICNT1RST
\r
390 //*****************************************************************************
\r
392 //The following are values that can be passed to
\r
393 //count2Select parameter in ESI_PSM_InitParams
\r
395 //*****************************************************************************
\r
396 #define ESI_PSM_CNT2_DISABLE 0x0
\r
397 #define ESI_PSM_CNT2_ENABLE ESICNT2EN
\r
399 //*****************************************************************************
\r
401 //The following are values that can be passed to
\r
402 //count2Reset parameter in ESI_PSM_InitParams
\r
404 //*****************************************************************************
\r
405 #define ESI_PSM_CNT2_NO_RESET 0x0
\r
406 #define ESI_PSM_CNT2_RESET ESICNT2RST
\r
408 //*****************************************************************************
\r
410 //The following are values that can be passed to
\r
411 //V2Select parameter in ESI_PSM_InitParams
\r
413 //*****************************************************************************
\r
414 #define ESI_PSM_S3_SELECT 0x0
\r
415 #define ESI_PSM_Q0_SELECT ESIV2SEL
\r
417 //*****************************************************************************
\r
419 //The following are values that can be passed to
\r
420 //TEST4Select parameter in ESI_PSM_InitParams
\r
422 //*****************************************************************************
\r
423 #define ESI_PSM_TEST4_IS_Q2 0x0
\r
424 #define ESI_PSM_TEST4_IS_Q1 ESITEST4SEL0
\r
425 #define ESI_PSM_TEST4_IS_TSM_CLK ESITEST4SEL1
\r
426 #define ESI_PSM_TEST4_IS_AFE1_COMPARATOR ESITEST4SEL0 + ESITEST4SEL1
\r
428 typedef struct ESI_PSM_InitParams
\r
431 uint16_t Q7TriggerSelect;
\r
432 uint16_t count0Select;
\r
433 uint16_t count0Reset;
\r
434 uint16_t count1Select;
\r
435 uint16_t count1Reset;
\r
436 uint16_t count2Select;
\r
437 uint16_t count2Reset;
\r
439 uint16_t TEST4Select;
\r
440 } ESI_PSM_InitParams;
\r
442 extern const ESI_PSM_InitParams ESI_PSM_INITPARAMS_DEFAULT;
\r
444 void ESI_PSM_init(ESI_PSM_InitParams *params);
\r
446 void ESI_PSM_clearTable(void);
\r
447 void ESI_PSM_copyTable(uint8_t * psmTable,
\r
450 //*****************************************************************************
\r
452 //The following are values that can be passed to
\r
453 //counterToReset parameter in ESI_PSM_counterReset
\r
455 //*****************************************************************************
\r
456 #define ESI_PSM_CNT0_RST ESICNT0RST
\r
457 #define ESI_PSM_CNT1_RST ESICNT1RST
\r
458 #define ESI_PSM_CNT2_RST ESICNT2RST
\r
460 void ESI_PSM_resetCounter(uint16_t counterToReset);
\r
462 //*****************************************************************************
\r
464 //The following are values that can be passed to
\r
465 //testCycleInsertion parameter in ESI_InitParams
\r
467 //*****************************************************************************
\r
468 #define ESI_TEST_CYCLE_INSERTION_DISABLE 0x0
\r
469 #define ESI_TEST_CYCLE_INSERTION_ENABLE ESITESTD
\r
471 //*****************************************************************************
\r
473 //The following are values that can be passed to
\r
474 //timerAInputSelection parameter in ESI_InitParams
\r
476 //*****************************************************************************
\r
477 #define ESI_TIMERA_INPUT_TSM_COMPOUT 0x0
\r
478 #define ESI_TIMERA_INPUT_TSM_PPUSRC ESICS
\r
480 //*****************************************************************************
\r
482 //The following are values that can be passed to
\r
483 //testChannel0Select parameter in ESI_InitParams
\r
485 //*****************************************************************************
\r
486 #define ESI_TEST_CHANNEL0_SOURCE_IS_CH0_CI0 0x0
\r
487 #define ESI_TEST_CHANNEL0_SOURCE_IS_CH1_CI1 ESITCH00
\r
488 #define ESI_TEST_CHANNEL0_SOURCE_IS_CH2_CI2 ESITCH01
\r
489 #define ESI_TEST_CHANNEL0_SOURCE_IS_CH3_CI3 ESITCH00 + ESITCH01
\r
491 //*****************************************************************************
\r
493 //The following are values that can be passed to
\r
494 //testChannel1Select parameter in ESI_InitParams
\r
496 //*****************************************************************************
\r
497 #define ESI_TEST_CHANNEL1_SOURCE_IS_CH0_CI0 0x0
\r
498 #define ESI_TEST_CHANNEL1_SOURCE_IS_CH1_CI1 ESITCH10
\r
499 #define ESI_TEST_CHANNEL1_SOURCE_IS_CH2_CI2 ESITCH11
\r
500 #define ESI_TEST_CHANNEL1_SOURCE_IS_CH3_CI3 ESITCH10 + ESITCH11
\r
502 //*****************************************************************************
\r
504 //The following are values that can be passed to
\r
505 //internalOscSelect parameter in ESI_InitParams
\r
507 //*****************************************************************************
\r
508 #define ESI_INTERNAL_OSC_DISABLE 0x0
\r
509 #define ESI_INTERNAL_OSC_ENABLE ESIHFSEL
\r
511 //*****************************************************************************
\r
513 //The following are values that can be passed to
\r
514 //sourceNum parameter in ESI_psmSourceSelect
\r
516 //*****************************************************************************
\r
517 #define PSM_S1_SOURCE 1
\r
518 #define PSM_S2_SOURCE 2
\r
519 #define PSM_S3_SOURCE 3
\r
521 //*****************************************************************************
\r
523 //The following are values that can be passed to
\r
524 //sourceSelect parameter in ESI_psmSourceSelect
\r
526 //*****************************************************************************
\r
527 #define ESI_PSM_SOURCE_IS_ESIOUT0 0
\r
528 #define ESI_PSM_SOURCE_IS_ESIOUT1 1
\r
529 #define ESI_PSM_SOURCE_IS_ESIOUT2 2
\r
530 #define ESI_PSM_SOURCE_IS_ESIOUT3 3
\r
531 #define ESI_PSM_SOURCE_IS_ESIOUT4 4
\r
532 #define ESI_PSM_SOURCE_IS_ESIOUT5 5
\r
533 #define ESI_PSM_SOURCE_IS_ESIOUT6 6
\r
534 #define ESI_PSM_SOURCE_IS_ESIOUT7 7
\r
536 void ESI_timerAInputSelect(uint16_t select);
\r
537 void ESI_psmSourceSelect(uint16_t sourceNum,
\r
538 uint16_t sourceSelect);
\r
539 void ESI_testChannel0SourceSelect(uint16_t sourceSelect);
\r
540 void ESI_testChannel1SourceSelect(uint16_t sourceSelect);
\r
541 void ESI_enable(void);
\r
542 void ESI_disable(void);
\r
544 void ESI_enableInternalOscillator();
\r
545 void ESI_disableInternalOscillator();
\r
546 void ESI_startInternalOscCal(void);
\r
547 void ESI_stopInternalOscCal(void);
\r
549 //*****************************************************************************
\r
551 //The following are values that can be passed to
\r
552 //oversample parameter in ESI_measureESIOSCOversample
\r
554 //*****************************************************************************
\r
555 #define ESI_ESIOSC_NO_OVERSAMPLE 0
\r
556 #define ESI_ESIOSC_OVERSAMPLE_2 2
\r
557 #define ESI_ESIOSC_OVERSAMPLE_4 4
\r
558 #define ESI_ESIOSC_OVERSAMPLE_8 8
\r
559 uint16_t ESI_measureESIOSC(uint8_t oversample);
\r
560 uint8_t ESI_getESICLKFQ(void);
\r
562 //*****************************************************************************
\r
564 //The following are values that can be passed to
\r
565 //incOrDec parameter in ESI_adjustInternalOscFreq
\r
567 //*****************************************************************************
\r
568 #define ESI_INTERNAL_OSC_FREQ_DECREASE 0x0
\r
569 #define ESI_INTERNAL_OSC_FREQ_INCREASE 0x1
\r
571 void ESI_adjustInternalOscFreq(uint16_t incOrDec);
\r
572 void ESI_setNominalInternalOscFreq(void);
\r
573 void ESI_calibrateInternalOscFreq(uint16_t targetAclkCounts);
\r
574 void ESI_setPSMCounter1IncreaseThreshold(uint16_t threshold);
\r
576 void ESI_setPSMCounter1DecreaseThreshold(uint16_t threshold);
\r
578 //*****************************************************************************
\r
580 //The following are values that can be passed to
\r
581 //resultNum parameter in ESI_getConversionResult
\r
583 //*****************************************************************************
\r
584 #define ESI_CONVERSION_RESULT_1 ESIADMEM1
\r
585 #define ESI_CONVERSION_RESULT_2 ESIADMEM2
\r
586 #define ESI_CONVERSION_RESULT_3 ESIADMEM3
\r
587 #define ESI_CONVERSION_RESULT_4 ESIADMEM4
\r
589 uint16_t ESI_getConversionResult(uint16_t resultNum);
\r
591 //*****************************************************************************
\r
593 //The following are values that can be passed to
\r
594 //dacRegNum parameter in ESI_setAFE1DACValue and ESI_getAFE1DACValue
\r
596 //*****************************************************************************
\r
597 #define ESI_DAC1_REG0 0
\r
598 #define ESI_DAC1_REG1 1
\r
599 #define ESI_DAC1_REG2 2
\r
600 #define ESI_DAC1_REG3 3
\r
601 #define ESI_DAC1_REG4 4
\r
602 #define ESI_DAC1_REG5 5
\r
603 #define ESI_DAC1_REG6 6
\r
604 #define ESI_DAC1_REG7 7
\r
606 void ESI_setAFE1DACValue(uint16_t dacValue,
\r
607 uint8_t dacRegNum);
\r
608 uint16_t ESI_getAFE1DACValue(uint8_t dacRegNum);
\r
610 //*****************************************************************************
\r
612 //The following are values that can be passed to
\r
613 //dacRegNum parameter in ESI_setAFE2DACValue and ESI_getAFE2DACValue
\r
615 //*****************************************************************************
\r
616 #define ESI_DAC2_REG0 0
\r
617 #define ESI_DAC2_REG1 1
\r
618 #define ESI_DAC2_REG2 2
\r
619 #define ESI_DAC2_REG3 3
\r
620 #define ESI_DAC2_REG4 4
\r
621 #define ESI_DAC2_REG5 5
\r
622 #define ESI_DAC2_REG6 6
\r
623 #define ESI_DAC2_REG7 7
\r
625 void ESI_setAFE2DACValue(uint16_t dacValue,
\r
626 uint8_t dacRegNum);
\r
627 uint16_t ESI_getAFE2DACValue(uint8_t dacRegNum);
\r
629 //*****************************************************************************
\r
631 //The following are values that can be passed to
\r
632 //stateRegNum parameter in ESI_setTSMstateReg
\r
634 //*****************************************************************************
\r
635 #define ESI_TSM_STATE_REG_0 0
\r
636 #define ESI_TSM_STATE_REG_1 1
\r
637 #define ESI_TSM_STATE_REG_2 2
\r
638 #define ESI_TSM_STATE_REG_3 3
\r
639 #define ESI_TSM_STATE_REG_4 4
\r
640 #define ESI_TSM_STATE_REG_5 5
\r
641 #define ESI_TSM_STATE_REG_6 6
\r
642 #define ESI_TSM_STATE_REG_7 7
\r
643 #define ESI_TSM_STATE_REG_8 8
\r
644 #define ESI_TSM_STATE_REG_9 9
\r
645 #define ESI_TSM_STATE_REG_10 10
\r
646 #define ESI_TSM_STATE_REG_11 11
\r
647 #define ESI_TSM_STATE_REG_12 12
\r
648 #define ESI_TSM_STATE_REG_13 13
\r
649 #define ESI_TSM_STATE_REG_14 14
\r
650 #define ESI_TSM_STATE_REG_15 15
\r
651 #define ESI_TSM_STATE_REG_16 16
\r
652 #define ESI_TSM_STATE_REG_17 17
\r
653 #define ESI_TSM_STATE_REG_18 18
\r
654 #define ESI_TSM_STATE_REG_19 19
\r
655 #define ESI_TSM_STATE_REG_20 20
\r
656 #define ESI_TSM_STATE_REG_21 21
\r
657 #define ESI_TSM_STATE_REG_22 22
\r
658 #define ESI_TSM_STATE_REG_23 23
\r
659 #define ESI_TSM_STATE_REG_24 24
\r
660 #define ESI_TSM_STATE_REG_25 25
\r
661 #define ESI_TSM_STATE_REG_26 26
\r
662 #define ESI_TSM_STATE_REG_27 27
\r
663 #define ESI_TSM_STATE_REG_28 28
\r
664 #define ESI_TSM_STATE_REG_29 29
\r
665 #define ESI_TSM_STATE_REG_30 30
\r
666 #define ESI_TSM_STATE_REG_31 31
\r
668 //*****************************************************************************
\r
670 //The following are values that can be passed to
\r
671 //inputChannelSelect parameter in ESI_TSM_StateParams
\r
673 //*****************************************************************************
\r
674 #define ESI_TSM_STATE_CHANNEL_SELECT_CH0 0
\r
675 #define ESI_TSM_STATE_CHANNEL_SELECT_CH1 ESICH0
\r
676 #define ESI_TSM_STATE_CHANNEL_SELECT_CH2 ESICH1
\r
677 #define ESI_TSM_STATE_CHANNEL_SELECT_CH3 (ESICH1 | ESICH0)
\r
679 //*****************************************************************************
\r
681 //The following are values that can be passed to
\r
682 //LCDampingSelect parameter in ESI_TSM_StateParams
\r
684 //*****************************************************************************
\r
685 #define ESI_TSM_STATE_LC_DAMPING_DISABLE 0x0
\r
686 #define ESI_TSM_STATE_LC_DAMPING_ENABLE ESILCEN
\r
688 //*****************************************************************************
\r
690 //The following are values that can be passed to
\r
691 //excitationSelect parameter in ESI_TSM_StateParams
\r
693 //*****************************************************************************
\r
694 #define ESI_TSM_STATE_EXCITATION_DISABLE 0x0
\r
695 #define ESI_TSM_STATE_EXCITATION_ENABLE ESIEX
\r
697 //*****************************************************************************
\r
699 //The following are values that can be passed to
\r
700 //comparatorSelect parameter in ESI_TSM_StateParams
\r
702 //*****************************************************************************
\r
703 #define ESI_TSM_STATE_COMPARATOR_DISABLE 0x0
\r
704 #define ESI_TSM_STATE_COMPARATOR_ENABLE ESICA
\r
706 //*****************************************************************************
\r
708 //The following are values that can be passed to
\r
709 //highFreqClkOn_or_compAutoZeroCycle parameter in ESI_TSM_StateParams
\r
711 //*****************************************************************************
\r
712 #define ESI_TSM_STATE_HIGH_FREQ_CLK_ON 0x0
\r
713 #define ESI_TSM_STATE_COMP_AUTOZERO_CYCLE ESICLKON
\r
715 //*****************************************************************************
\r
717 //The following are values that can be passed to
\r
718 //outputLatchSelect parameter in ESI_TSM_StateParams
\r
720 //*****************************************************************************
\r
721 #define ESI_TSM_STATE_OUTPUT_LATCH_DISABLE 0x0
\r
722 #define ESI_TSM_STATE_OUTPUT_LATCH_ENABLE ESIRSON
\r
724 //*****************************************************************************
\r
726 //The following are values that can be passed to
\r
727 //testCycleSelect parameter in ESI_TSM_StateParams
\r
729 //*****************************************************************************
\r
730 #define ESI_TSM_STATE_TEST_CYCLE_DISABLE 0x0
\r
731 #define ESI_TSM_STATE_TEST_CYCLE_ENABLE ESITESTS1
\r
733 //*****************************************************************************
\r
735 //The following are values that can be passed to
\r
736 //dacSelect parameter in ESI_TSM_StateParams
\r
738 //*****************************************************************************
\r
739 #define ESI_TSM_STATE_DAC_DISABLE 0x0
\r
740 #define ESI_TSM_STATE_DAC_ENABLE ESIDAC
\r
742 //*****************************************************************************
\r
744 //The following are values that can be passed to
\r
745 //tsmStop parameter in ESI_TSM_StateParams
\r
747 //*****************************************************************************
\r
748 #define ESI_TSM_STATE_CONTINUE 0x0
\r
749 #define ESI_TSM_STATE_STOP ESISTOP
\r
751 //*****************************************************************************
\r
753 //The following are values that can be passed to
\r
754 //tsmClkSrc parameter in ESI_TSM_StateParams
\r
756 //*****************************************************************************
\r
757 #define ESI_TSM_STATE_HIGH_FREQ_CLK 0x0
\r
758 #define ESI_TSM_STATE_ACLK ESICLK
\r
760 //*****************************************************************************
\r
762 //Values between these min and max can be pased to
\r
763 //duration parameter in ESI_TSM_StateParams
\r
765 //*****************************************************************************
\r
766 #define ESI_TSM_STATE_DURATION_MIN 0x00
\r
767 #define ESI_TSM_STATE_DURATION_MAX 0x1F
\r
769 typedef struct ESI_TSM_StateParams
\r
771 uint16_t inputChannelSelect;
\r
772 uint16_t LCDampingSelect;
\r
773 uint16_t excitationSelect;
\r
774 uint16_t comparatorSelect;
\r
775 uint16_t highFreqClkOn_or_compAutoZeroCycle;
\r
776 uint16_t outputLatchSelect;
\r
777 uint16_t testCycleSelect;
\r
778 uint16_t dacSelect;
\r
780 uint16_t tsmClkSrc;
\r
782 } ESI_TSM_StateParams;
\r
784 void ESI_setTSMstateReg(ESI_TSM_StateParams *params,
\r
785 uint8_t stateRegNum);
\r
787 uint16_t ESIgetInterruptVectorRegister(void);
\r
789 //*****************************************************************************
\r
791 //The following values can be be used to form the interrupt mask for
\r
792 //ESI_enableInterrupt and ESI_disableInterrupt
\r
794 //*****************************************************************************
\r
795 #define ESI_INTERRUPT_AFE1_ESIOUTX \
\r
797 #define ESI_INTERRUPT_ESISTOP ESIIE1
\r
798 #define ESI_INTERRUPT_ESISTART ESIIE2
\r
799 #define ESI_INTERRUPT_ESICNT1 ESIIE3
\r
800 #define ESI_INTERRUPT_ESICNT2 ESIIE4
\r
801 #define ESI_INTERRUPT_Q6_BIT_SET ESIIE5
\r
802 #define ESI_INTERRUPT_Q7_BIT_SET ESIIE6
\r
803 #define ESI_INTERRUPT_ESICNT0_COUNT_INTERVAL ESIIE7
\r
804 #define ESI_INTERRUPT_AFE2_ESIOUTX \
\r
807 void ESI_enableInterrupt(uint16_t interruptMask);
\r
808 void ESI_disableInterrupt(uint16_t interruptMask);
\r
810 //*****************************************************************************
\r
812 //Return values for ESI_getInterruptStatus
\r
814 //*****************************************************************************
\r
815 #define ESI_INTERRUPT_FLAG_AFE1_ESIOUTX ESIIFG0
\r
816 #define ESI_INTERRUPT_FLAG_ESISTOP ESIIFG1
\r
817 #define ESI_INTERRUPT_FLAG_ESISTART ESIIFG2
\r
818 #define ESI_INTERRUPT_FLAG_ESICNT1 ESIIFG3
\r
819 #define ESI_INTERRUPT_FLAG_ESICNT2 ESIIFG4
\r
820 #define ESI_INTERRUPT_FLAG_Q6_BIT_SET ESIIFG5
\r
821 #define ESI_INTERRUPT_FLAG_Q7_BIT_SET ESIIFG6
\r
822 #define ESI_INTERRUPT_FLAG_ESICNT0_COUNT_INTERVAL ESIIFG7
\r
823 #define ESI_INTERRUPT_FLAG_AFE2_ESIOUTX ESIIFG8
\r
825 uint16_t ESI_getInterruptStatus(uint16_t interruptMask);
\r
826 void ESI_clearInterrupt(uint16_t interruptMask);
\r
828 //*****************************************************************************
\r
830 //Values for ifg0Src in ESI_setIFG0Source
\r
832 //*****************************************************************************
\r
833 #define ESI_IFG0_SET_WHEN_ESIOUT0_SET ESIIFGSET1_0
\r
834 #define ESI_IFG0_SET_WHEN_ESIOUT0_RESET ESIIFGSET1_1
\r
835 #define ESI_IFG0_SET_WHEN_ESIOUT1_SET ESIIFGSET1_2
\r
836 #define ESI_IFG0_SET_WHEN_ESIOUT1_RESET ESIIFGSET1_3
\r
837 #define ESI_IFG0_SET_WHEN_ESIOUT2_SET ESIIFGSET1_4
\r
838 #define ESI_IFG0_SET_WHEN_ESIOUT2_RESET ESIIFGSET1_5
\r
839 #define ESI_IFG0_SET_WHEN_ESIOUT3_SET ESIIFGSET1_6
\r
840 #define ESI_IFG0_SET_WHEN_ESIOUT3_RESET ESIIFGSET1_7
\r
842 void ESI_setIFG0Source(uint16_t ifg0Src);
\r
844 //*****************************************************************************
\r
846 //Values for ifg8Src in ESI_setIFG8Source
\r
848 //*****************************************************************************
\r
849 #define ESI_IFG8_SET_WHEN_ESIOUT4_SET ESIIFGSET2_0
\r
850 #define ESI_IFG8_SET_WHEN_ESIOUT4_RESET ESIIFGSET2_1
\r
851 #define ESI_IFG8_SET_WHEN_ESIOUT5_SET ESIIFGSET2_2
\r
852 #define ESI_IFG8_SET_WHEN_ESIOUT5_RESET ESIIFGSET2_3
\r
853 #define ESI_IFG8_SET_WHEN_ESIOUT6_SET ESIIFGSET2_4
\r
854 #define ESI_IFG8_SET_WHEN_ESIOUT6_RESET ESIIFGSET2_5
\r
855 #define ESI_IFG8_SET_WHEN_ESIOUT7_SET ESIIFGSET2_6
\r
856 #define ESI_IFG8_SET_WHEN_ESIOUT7_RESET ESIIFGSET2_7
\r
858 void ESI_setIFG8Source(uint16_t ifg8Src);
\r
860 //*****************************************************************************
\r
862 //Values for ifg7Src in ESI_setIFG7Source
\r
864 //*****************************************************************************
\r
865 #define ESI_IFG7_SOURCE_EVERY_COUNT_OF_CNT0 ESIIS0_0
\r
866 #define ESI_IFG7_SOURCE_CNT0_MOD4 ESIIS0_1
\r
867 #define ESI_IFG7_SOURCE_CNT0_MOD256 ESIIS0_2
\r
868 #define ESI_IFG7_SOURCE_CNT0_ROLLOVER ESIIS0_3
\r
870 void ESI_setIFG7Source(uint16_t ifg7Src);
\r
872 //*****************************************************************************
\r
874 //Values for ifg4Src in ESI_setIFG4Source
\r
876 //*****************************************************************************
\r
877 #define ESI_IFG4_SOURCE_EVERY_COUNT_OF_CNT2 ESIIS2_0
\r
878 #define ESI_IFG4_SOURCE_CNT2_MOD4 ESIIS2_1
\r
879 #define ESI_IFG4_SOURCE_CNT2_MOD256 ESIIS2_2
\r
880 #define ESI_IFG4_SOURCE_CNT2_ROLLOVER ESIIS2_3
\r
882 void ESI_setIFG4Source(uint16_t ifg4Src);
\r
884 void ESI_setPSMCounter1UpperThreshold(uint16_t threshold);
\r
885 void ESI_setPSMCounter1LowerThreshold(uint16_t threshold);
\r
887 //*****************************************************************************
\r
889 // Set correct DAC values for LC sensors
\r
891 //*****************************************************************************
\r
892 void ESI_LC_DAC_calibration(uint8_t selected_channel);
\r
894 //*****************************************************************************
\r
896 // Mark the end of the C bindings section for C++ compilers.
\r
898 //*****************************************************************************
\r