]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/MSP430FR5969_LaunchPad/driverlib/MSP430FR5xx_6xx/esi.h
Start of an MSP430FR5969 IAR project - currently running Blinky only.
[freertos] / FreeRTOS / Demo / MSP430FR5969_LaunchPad / driverlib / MSP430FR5xx_6xx / esi.h
1 /* --COPYRIGHT--,BSD\r
2  * Copyright (c) 2014, Texas Instruments Incorporated\r
3  * All rights reserved.\r
4  *\r
5  * Redistribution and use in source and binary forms, with or without\r
6  * modification, are permitted provided that the following conditions\r
7  * are met:\r
8  *\r
9  * *  Redistributions of source code must retain the above copyright\r
10  *    notice, this list of conditions and the following disclaimer.\r
11  *\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
15  *\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
19  *\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
31  * --/COPYRIGHT--*/\r
32 //*****************************************************************************\r
33 //\r
34 // esi.h - Driver for the ESI Module.\r
35 //\r
36 //*****************************************************************************\r
37 \r
38 #ifndef __MSP430WARE_ESI_H__\r
39 #define __MSP430WARE_ESI_H__\r
40 \r
41 #include "inc/hw_memmap.h"\r
42 \r
43 #ifdef __MSP430_HAS_ESI__\r
44 \r
45 //*****************************************************************************\r
46 //\r
47 // If building with a C++ compiler, make all of the definitions in this header\r
48 // have a C binding.\r
49 //\r
50 //*****************************************************************************\r
51 #ifdef __cplusplus\r
52 extern "C"\r
53 {\r
54 #endif\r
55 \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
60 \r
61 //*****************************************************************************\r
62 //\r
63 //The following are values that can be passed to excitationCircuitSelect\r
64 //parameter in ESI_AFE_InitParams\r
65 //\r
66 //*****************************************************************************\r
67 #define ESI_EXCITATION_CIRCUIT_DISABLED 0x0\r
68 #define ESI_EXCITATION_CIRCUIT_ENABLED  ESITEN\r
69 \r
70 //*****************************************************************************\r
71 //\r
72 //The following are values that can be passed to sampleAndHoldSelect\r
73 //parameter in ESI_AFE_InitParams\r
74 //\r
75 //*****************************************************************************\r
76 #define ESI_SAMPLE_HOLD_DISABLED 0x0\r
77 #define ESI_SAMPLE_HOLD_ENABLED  ESISH\r
78 \r
79 //*****************************************************************************\r
80 //\r
81 //The following are values that can be passed to midVoltageGeneratorSelect\r
82 //parameter in ESI_AFE_InitParams\r
83 //\r
84 //*****************************************************************************\r
85 #define ESI_MID_VOLTAGE_GENERATOR_DISABLED 0x0\r
86 #define ESI_MID_VOLTAGE_GENERATOR_ENABLED  ESIVCC2\r
87 \r
88 //*****************************************************************************\r
89 //\r
90 //The following are values that can be passed to sampleAndHoldVSSConnect\r
91 //parameter in ESI_AFE_InitParams\r
92 //\r
93 //*****************************************************************************\r
94 #define ESI_SAMPLE_HOLD_VSS_TO_ESIVSS   0x0\r
95 #define ESI_SAMPLE_HOLD_VSS_BY_TSM      ESIVSS\r
96 \r
97 //*****************************************************************************\r
98 //\r
99 //The following are values that can be passed to\r
100 //inputSelectAFE1 parameter in ESI_AFE1_InitParams\r
101 //\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
107 \r
108 //*****************************************************************************\r
109 //\r
110 //The following are values that can be passed to\r
111 //inputSelectAFE2 parameter in ESI_AFE2_InitParams\r
112 //\r
113 //*****************************************************************************\r
114 #define ESI_AFE2_INPUT_SELECT_CHx        0\r
115 #define ESI_AFE2_INPUT_SELECT_CIx        ESICA2X\r
116 \r
117 //*****************************************************************************\r
118 //\r
119 //The following are values that can be passed to\r
120 //inverterSelectOutputAFE1 parameter in ESI_AFE1_InitParams\r
121 //\r
122 //*****************************************************************************\r
123 #define ESI_INVERTER_FOR_AFE1_DISABLE   0x0\r
124 #define ESI_INVERTER_FOR_AFE1_ENABLE    ESICA1INV\r
125 \r
126 //*****************************************************************************\r
127 //\r
128 //The following are values that can be passed to\r
129 //inverterSelectOutputAFE2 parameter in ESI_AFE2_InitParams\r
130 //\r
131 //*****************************************************************************\r
132 #define ESI_INVERTER_FOR_AFE2_DISABLE   0x0\r
133 #define ESI_INVERTER_FOR_AFE2_ENABLE    ESICA2INV\r
134 \r
135 //*****************************************************************************\r
136 //\r
137 //The following are values that can be passed to\r
138 //tsmControlOfComparatorAFE2 parameter in ESI_AFE2_InitParams\r
139 //\r
140 //*****************************************************************************\r
141 #define ESI_TSM_COMPARATOR_CONTROL_AFE2_DISABLE    0x0\r
142 #define ESI_TSM_COMPARATOR_CONTROL_AFE2_ENABLE     ESICA2EN\r
143 \r
144 //*****************************************************************************\r
145 //\r
146 //The following are values that can be passed to\r
147 //tsmControlDacAFE2 parameter in ESI_AFE2_InitParams\r
148 //\r
149 //*****************************************************************************\r
150 #define ESI_TSM_DAC_CONTROL_AFE2_DISABLE    0x0\r
151 #define ESI_TSM_DAC_CONTROL_AFE2_ENABLE     ESIDAC2EN\r
152 \r
153 typedef struct ESI_AFE1_InitParams\r
154 {\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
162 \r
163 extern const ESI_AFE1_InitParams ESI_AFE1_INITPARAMS_DEFAULT;\r
164 \r
165 void ESI_AFE1_init(ESI_AFE1_InitParams *params);\r
166 \r
167 typedef struct ESI_AFE2_InitParams\r
168 {\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
174 \r
175 extern const ESI_AFE2_InitParams ESI_AFE2_INITPARAMS_DEFAULT;\r
176 \r
177 void ESI_AFE2_init(ESI_AFE2_InitParams *params);\r
178 \r
179 //*****************************************************************************\r
180 //\r
181 //The following are values that can be passed to\r
182 //channelSelect parameter in ESI_getLatchedComparatorOutput\r
183 //\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
195 \r
196 //*****************************************************************************\r
197 //\r
198 //The following are values that are returned by ESI_getLatchedComparatorOutput\r
199 //\r
200 //*****************************************************************************\r
201 #define ESI_AFE_OUTPUT_HIGH   0x1\r
202 #define ESI_AFE_OUTPUT_LOW  0x0\r
203 \r
204 uint16_t ESI_getLatchedComparatorOutput(uint16_t channelSelect);\r
205 \r
206 //*****************************************************************************\r
207 //\r
208 //The following are values that can be passed to\r
209 //smclkDivider parameter in ESI_TSM_InitParams\r
210 //\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
216 \r
217 //*****************************************************************************\r
218 //\r
219 //The following are values that can be passed to\r
220 //aclkDivider parameter in ESI_TSM_InitParams\r
221 //\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
227 \r
228 //*****************************************************************************\r
229 //\r
230 //The following are values that can be passed to\r
231 //startTriggerAclkDivider parameter in ESI_TSM_InitParams\r
232 //\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
249     ESIDIV3B0\r
250 #define ESI_TSM_START_TRIGGER_DIV_98    ESIDIV3A0 + ESIDIV3A1 + ESIDIV3B0 + \\r
251     ESIDIV3B1\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
256     ESIDIV3B1\r
257 #define ESI_TSM_START_TRIGGER_DIV_154   ESIDIV3A2 + ESIDIV3A0 + ESIDIV3B0 + \\r
258     ESIDIV3B1\r
259 #define ESI_TSM_START_TRIGGER_DIV_162   ESIDIV3A2 + ESIDIV3B2\r
260 #define ESI_TSM_START_TRIGGER_DIV_182   ESIDIV3A2 + ESIDIV3A1 + ESIDIV3B0 + \\r
261     ESIDIV3B1\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
267     ESIDIV3B0\r
268 #define ESI_TSM_START_TRIGGER_DIV_270   ESIDIV3A2 + ESIDIV3A1 + ESIDIV3A0 + \\r
269     ESIDIV3B2\r
270 #define ESI_TSM_START_TRIGGER_DIV_286   ESIDIV3A2 + ESIDIV3A1 + ESIDIV3B2 + \\r
271     ESIDIV3B0\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
275     ESIDIV3B1\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
280 \r
281 //*****************************************************************************\r
282 //\r
283 //The following are values that can be passed to\r
284 //repeatMode parameter in ESI_TSM_InitParams\r
285 //\r
286 //*****************************************************************************\r
287 #define ESI_TSM_REPEAT_NEW_TRIGGER          0x0\r
288 #define ESI_TSM_REPEAT_END_OF_PREVIOUS_SEQ  ESITSMRP\r
289 \r
290 //*****************************************************************************\r
291 //\r
292 //The following are values that can be passed to\r
293 //startTriggerSelection parameter in ESI_TSM_InitParams\r
294 //\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
300 \r
301 //*****************************************************************************\r
302 //\r
303 //The following are values that can be passed to\r
304 //tsmFunctionalitySelection parameter in ESI_TSM_InitParams\r
305 //\r
306 //*****************************************************************************\r
307 #define ESI_TSM_HIGH_FREQ_CLK_FUNCTION_ON   0x0\r
308 #define ESI_TSM_AUTOZERO_CYCLE_FUNCTION_ON  ESICLKAZSEL\r
309 \r
310 typedef struct ESI_TSM_InitParams\r
311 {\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
319 \r
320 extern const ESI_TSM_InitParams ESI_TSM_INITPARAMS_DEFAULT;\r
321 \r
322 void ESI_TSM_init(ESI_TSM_InitParams *params);\r
323 \r
324 void ESI_TSM_clearTable(void);\r
325 \r
326 void ESI_TSM_copyTable(uint16_t* tsmTable,\r
327                        uint16_t size);\r
328 \r
329 void ESI_TSM_softwareTrigger(void);\r
330 \r
331 uint8_t ESI_TSM_getTSMStateDuration(uint8_t stateRegNum);\r
332 \r
333 void ESI_TSM_setTSMStateDuration(uint8_t stateRegNum,\r
334                                  uint8_t duration);\r
335 \r
336 //*****************************************************************************\r
337 //\r
338 //The following are values that can be passed to\r
339 //Q6Select parameter in ESI_PSM_InitParams\r
340 //\r
341 //*****************************************************************************\r
342 #define ESI_PSM_Q6_DISABLE  0x0\r
343 #define ESI_PSM_Q6_ENABLE   ESIQ6EN\r
344 \r
345 //*****************************************************************************\r
346 //\r
347 //The following are values that can be passed to\r
348 //Q7TriggerSelect parameter in ESI_PSM_InitParams\r
349 //\r
350 //*****************************************************************************\r
351 #define ESI_PSM_Q7_TRIGGER_DISABLE  0x0\r
352 #define ESI_PSM_Q7_TRIGGER_ENABLE   ESIQ7TRG\r
353 \r
354 //*****************************************************************************\r
355 //\r
356 //The following are values that can be passed to\r
357 //count0Select parameter in ESI_PSM_InitParams\r
358 //\r
359 //*****************************************************************************\r
360 #define ESI_PSM_CNT0_DISABLE 0x0\r
361 #define ESI_PSM_CNT0_ENABLE ESICNT0EN\r
362 \r
363 //*****************************************************************************\r
364 //\r
365 //The following are values that can be passed to\r
366 //count0Reset parameter in ESI_PSM_InitParams\r
367 //\r
368 //*****************************************************************************\r
369 #define ESI_PSM_CNT0_NO_RESET 0x0\r
370 #define ESI_PSM_CNT0_RESET ESICNT0RST\r
371 \r
372 //*****************************************************************************\r
373 //\r
374 //The following are values that can be passed to\r
375 //count1Select parameter in ESI_PSM_InitParams\r
376 //\r
377 //*****************************************************************************\r
378 #define ESI_PSM_CNT1_DISABLE 0x0\r
379 #define ESI_PSM_CNT1_ENABLE ESICNT1EN\r
380 \r
381 //*****************************************************************************\r
382 //\r
383 //The following are values that can be passed to\r
384 //count1Reset parameter in ESI_PSM_InitParams\r
385 //\r
386 //*****************************************************************************\r
387 #define ESI_PSM_CNT1_NO_RESET 0x0\r
388 #define ESI_PSM_CNT1_RESET ESICNT1RST\r
389 \r
390 //*****************************************************************************\r
391 //\r
392 //The following are values that can be passed to\r
393 //count2Select parameter in ESI_PSM_InitParams\r
394 //\r
395 //*****************************************************************************\r
396 #define ESI_PSM_CNT2_DISABLE 0x0\r
397 #define ESI_PSM_CNT2_ENABLE ESICNT2EN\r
398 \r
399 //*****************************************************************************\r
400 //\r
401 //The following are values that can be passed to\r
402 //count2Reset parameter in ESI_PSM_InitParams\r
403 //\r
404 //*****************************************************************************\r
405 #define ESI_PSM_CNT2_NO_RESET 0x0\r
406 #define ESI_PSM_CNT2_RESET ESICNT2RST\r
407 \r
408 //*****************************************************************************\r
409 //\r
410 //The following are values that can be passed to\r
411 //V2Select parameter in ESI_PSM_InitParams\r
412 //\r
413 //*****************************************************************************\r
414 #define ESI_PSM_S3_SELECT   0x0\r
415 #define ESI_PSM_Q0_SELECT   ESIV2SEL\r
416 \r
417 //*****************************************************************************\r
418 //\r
419 //The following are values that can be passed to\r
420 //TEST4Select parameter in ESI_PSM_InitParams\r
421 //\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
427 \r
428 typedef struct ESI_PSM_InitParams\r
429 {\r
430     uint16_t Q6Select;\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
438     uint16_t V2Select;\r
439     uint16_t TEST4Select;\r
440 } ESI_PSM_InitParams;\r
441 \r
442 extern const ESI_PSM_InitParams ESI_PSM_INITPARAMS_DEFAULT;\r
443 \r
444 void ESI_PSM_init(ESI_PSM_InitParams *params);\r
445 \r
446 void ESI_PSM_clearTable(void);\r
447 void ESI_PSM_copyTable(uint8_t * psmTable,\r
448                        uint8_t size);\r
449 \r
450 //*****************************************************************************\r
451 //\r
452 //The following are values that can be passed to\r
453 //counterToReset parameter in ESI_PSM_counterReset\r
454 //\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
459 \r
460 void ESI_PSM_resetCounter(uint16_t counterToReset);\r
461 \r
462 //*****************************************************************************\r
463 //\r
464 //The following are values that can be passed to\r
465 //testCycleInsertion parameter in ESI_InitParams\r
466 //\r
467 //*****************************************************************************\r
468 #define ESI_TEST_CYCLE_INSERTION_DISABLE    0x0\r
469 #define ESI_TEST_CYCLE_INSERTION_ENABLE     ESITESTD\r
470 \r
471 //*****************************************************************************\r
472 //\r
473 //The following are values that can be passed to\r
474 //timerAInputSelection parameter in ESI_InitParams\r
475 //\r
476 //*****************************************************************************\r
477 #define ESI_TIMERA_INPUT_TSM_COMPOUT    0x0\r
478 #define ESI_TIMERA_INPUT_TSM_PPUSRC     ESICS\r
479 \r
480 //*****************************************************************************\r
481 //\r
482 //The following are values that can be passed to\r
483 //testChannel0Select parameter in ESI_InitParams\r
484 //\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
490 \r
491 //*****************************************************************************\r
492 //\r
493 //The following are values that can be passed to\r
494 //testChannel1Select parameter in ESI_InitParams\r
495 //\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
501 \r
502 //*****************************************************************************\r
503 //\r
504 //The following are values that can be passed to\r
505 //internalOscSelect parameter in ESI_InitParams\r
506 //\r
507 //*****************************************************************************\r
508 #define ESI_INTERNAL_OSC_DISABLE    0x0\r
509 #define ESI_INTERNAL_OSC_ENABLE     ESIHFSEL\r
510 \r
511 //*****************************************************************************\r
512 //\r
513 //The following are values that can be passed to\r
514 //sourceNum parameter in ESI_psmSourceSelect\r
515 //\r
516 //*****************************************************************************\r
517 #define PSM_S1_SOURCE   1\r
518 #define PSM_S2_SOURCE   2\r
519 #define PSM_S3_SOURCE   3\r
520 \r
521 //*****************************************************************************\r
522 //\r
523 //The following are values that can be passed to\r
524 //sourceSelect parameter in ESI_psmSourceSelect\r
525 //\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
535 \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
543 \r
544 void ESI_enableInternalOscillator();\r
545 void ESI_disableInternalOscillator();\r
546 void ESI_startInternalOscCal(void);\r
547 void ESI_stopInternalOscCal(void);\r
548 \r
549 //*****************************************************************************\r
550 //\r
551 //The following are values that can be passed to\r
552 //oversample parameter in ESI_measureESIOSCOversample\r
553 //\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
561 \r
562 //*****************************************************************************\r
563 //\r
564 //The following are values that can be passed to\r
565 //incOrDec parameter in ESI_adjustInternalOscFreq\r
566 //\r
567 //*****************************************************************************\r
568 #define ESI_INTERNAL_OSC_FREQ_DECREASE  0x0\r
569 #define ESI_INTERNAL_OSC_FREQ_INCREASE  0x1\r
570 \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
575 \r
576 void ESI_setPSMCounter1DecreaseThreshold(uint16_t threshold);\r
577 \r
578 //*****************************************************************************\r
579 //\r
580 //The following are values that can be passed to\r
581 //resultNum parameter in ESI_getConversionResult\r
582 //\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
588 \r
589 uint16_t ESI_getConversionResult(uint16_t resultNum);\r
590 \r
591 //*****************************************************************************\r
592 //\r
593 //The following are values that can be passed to\r
594 //dacRegNum parameter in ESI_setAFE1DACValue and ESI_getAFE1DACValue\r
595 //\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
605 \r
606 void ESI_setAFE1DACValue(uint16_t dacValue,\r
607                          uint8_t dacRegNum);\r
608 uint16_t ESI_getAFE1DACValue(uint8_t dacRegNum);\r
609 \r
610 //*****************************************************************************\r
611 //\r
612 //The following are values that can be passed to\r
613 //dacRegNum parameter in ESI_setAFE2DACValue and ESI_getAFE2DACValue\r
614 //\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
624 \r
625 void ESI_setAFE2DACValue(uint16_t dacValue,\r
626                          uint8_t dacRegNum);\r
627 uint16_t ESI_getAFE2DACValue(uint8_t dacRegNum);\r
628 \r
629 //*****************************************************************************\r
630 //\r
631 //The following are values that can be passed to\r
632 //stateRegNum parameter in ESI_setTSMstateReg\r
633 //\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
667 \r
668 //*****************************************************************************\r
669 //\r
670 //The following are values that can be passed to\r
671 //inputChannelSelect parameter in ESI_TSM_StateParams\r
672 //\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
678 \r
679 //*****************************************************************************\r
680 //\r
681 //The following are values that can be passed to\r
682 //LCDampingSelect parameter in ESI_TSM_StateParams\r
683 //\r
684 //*****************************************************************************\r
685 #define ESI_TSM_STATE_LC_DAMPING_DISABLE  0x0\r
686 #define ESI_TSM_STATE_LC_DAMPING_ENABLE  ESILCEN\r
687 \r
688 //*****************************************************************************\r
689 //\r
690 //The following are values that can be passed to\r
691 //excitationSelect parameter in ESI_TSM_StateParams\r
692 //\r
693 //*****************************************************************************\r
694 #define ESI_TSM_STATE_EXCITATION_DISABLE    0x0\r
695 #define ESI_TSM_STATE_EXCITATION_ENABLE     ESIEX\r
696 \r
697 //*****************************************************************************\r
698 //\r
699 //The following are values that can be passed to\r
700 //comparatorSelect parameter in ESI_TSM_StateParams\r
701 //\r
702 //*****************************************************************************\r
703 #define ESI_TSM_STATE_COMPARATOR_DISABLE    0x0\r
704 #define ESI_TSM_STATE_COMPARATOR_ENABLE     ESICA\r
705 \r
706 //*****************************************************************************\r
707 //\r
708 //The following are values that can be passed to\r
709 //highFreqClkOn_or_compAutoZeroCycle parameter in ESI_TSM_StateParams\r
710 //\r
711 //*****************************************************************************\r
712 #define ESI_TSM_STATE_HIGH_FREQ_CLK_ON        0x0\r
713 #define ESI_TSM_STATE_COMP_AUTOZERO_CYCLE     ESICLKON\r
714 \r
715 //*****************************************************************************\r
716 //\r
717 //The following are values that can be passed to\r
718 //outputLatchSelect parameter in ESI_TSM_StateParams\r
719 //\r
720 //*****************************************************************************\r
721 #define ESI_TSM_STATE_OUTPUT_LATCH_DISABLE  0x0\r
722 #define ESI_TSM_STATE_OUTPUT_LATCH_ENABLE   ESIRSON\r
723 \r
724 //*****************************************************************************\r
725 //\r
726 //The following are values that can be passed to\r
727 //testCycleSelect parameter in ESI_TSM_StateParams\r
728 //\r
729 //*****************************************************************************\r
730 #define ESI_TSM_STATE_TEST_CYCLE_DISABLE    0x0\r
731 #define ESI_TSM_STATE_TEST_CYCLE_ENABLE     ESITESTS1\r
732 \r
733 //*****************************************************************************\r
734 //\r
735 //The following are values that can be passed to\r
736 //dacSelect parameter in ESI_TSM_StateParams\r
737 //\r
738 //*****************************************************************************\r
739 #define ESI_TSM_STATE_DAC_DISABLE   0x0\r
740 #define ESI_TSM_STATE_DAC_ENABLE    ESIDAC\r
741 \r
742 //*****************************************************************************\r
743 //\r
744 //The following are values that can be passed to\r
745 //tsmStop parameter in ESI_TSM_StateParams\r
746 //\r
747 //*****************************************************************************\r
748 #define ESI_TSM_STATE_CONTINUE  0x0\r
749 #define ESI_TSM_STATE_STOP      ESISTOP\r
750 \r
751 //*****************************************************************************\r
752 //\r
753 //The following are values that can be passed to\r
754 //tsmClkSrc parameter in ESI_TSM_StateParams\r
755 //\r
756 //*****************************************************************************\r
757 #define ESI_TSM_STATE_HIGH_FREQ_CLK 0x0\r
758 #define ESI_TSM_STATE_ACLK          ESICLK\r
759 \r
760 //*****************************************************************************\r
761 //\r
762 //Values between these min and max can be pased to\r
763 //duration parameter in ESI_TSM_StateParams\r
764 //\r
765 //*****************************************************************************\r
766 #define ESI_TSM_STATE_DURATION_MIN  0x00\r
767 #define ESI_TSM_STATE_DURATION_MAX  0x1F\r
768 \r
769 typedef struct ESI_TSM_StateParams\r
770 {\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
779     uint16_t tsmStop;\r
780     uint16_t tsmClkSrc;\r
781     uint16_t duration;\r
782 } ESI_TSM_StateParams;\r
783 \r
784 void ESI_setTSMstateReg(ESI_TSM_StateParams *params,\r
785                         uint8_t stateRegNum);\r
786 \r
787 uint16_t ESIgetInterruptVectorRegister(void);\r
788 \r
789 //*****************************************************************************\r
790 //\r
791 //The following values can be be used to form the interrupt mask for\r
792 //ESI_enableInterrupt and ESI_disableInterrupt\r
793 //\r
794 //*****************************************************************************\r
795 #define ESI_INTERRUPT_AFE1_ESIOUTX \\r
796     ESIIE0\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
805     ESIIE8\r
806 \r
807 void ESI_enableInterrupt(uint16_t interruptMask);\r
808 void ESI_disableInterrupt(uint16_t interruptMask);\r
809 \r
810 //*****************************************************************************\r
811 //\r
812 //Return values for ESI_getInterruptStatus\r
813 //\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
824 \r
825 uint16_t ESI_getInterruptStatus(uint16_t interruptMask);\r
826 void ESI_clearInterrupt(uint16_t interruptMask);\r
827 \r
828 //*****************************************************************************\r
829 //\r
830 //Values for ifg0Src in ESI_setIFG0Source\r
831 //\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
841 \r
842 void ESI_setIFG0Source(uint16_t ifg0Src);\r
843 \r
844 //*****************************************************************************\r
845 //\r
846 //Values for ifg8Src in ESI_setIFG8Source\r
847 //\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
857 \r
858 void ESI_setIFG8Source(uint16_t ifg8Src);\r
859 \r
860 //*****************************************************************************\r
861 //\r
862 //Values for ifg7Src in ESI_setIFG7Source\r
863 //\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
869 \r
870 void ESI_setIFG7Source(uint16_t ifg7Src);\r
871 \r
872 //*****************************************************************************\r
873 //\r
874 //Values for ifg4Src in ESI_setIFG4Source\r
875 //\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
881 \r
882 void ESI_setIFG4Source(uint16_t ifg4Src);\r
883 \r
884 void ESI_setPSMCounter1UpperThreshold(uint16_t threshold);\r
885 void ESI_setPSMCounter1LowerThreshold(uint16_t threshold);\r
886 \r
887 //*****************************************************************************\r
888 //\r
889 // Set correct DAC values for LC sensors\r
890 //\r
891 //*****************************************************************************\r
892 void ESI_LC_DAC_calibration(uint8_t selected_channel);\r
893 \r
894 //*****************************************************************************\r
895 //\r
896 // Mark the end of the C bindings section for C++ compilers.\r
897 //\r
898 //*****************************************************************************\r
899 #ifdef __cplusplus\r
900 }\r
901 #endif\r
902 \r
903 #endif\r
904 #endif\r