AM273x MCU+ SDK  09.02.00
ecap/v2/ecap.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2021-2023 Texas Instruments Incorporated
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  * Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  *
11  * Redistributions in binary form must reproduce the above copyright
12  * notice, this list of conditions and the following disclaimer in the
13  * documentation and/or other materials provided with the
14  * distribution.
15  *
16  * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 
50 #ifndef ECAP_V2_H_
51 #define ECAP_V2_H_
52 
53 /* ========================================================================== */
54 /* Include Files */
55 /* ========================================================================== */
56 
57 #include <drivers/hw_include/cslr.h>
58 #include <drivers/hw_include/cslr_ecap.h>
59 
60 #ifdef __cplusplus
61 extern "C" {
62 #endif
63 
64 /* ========================================================================== */
65 /* Macros & Typedefs */
66 /* ========================================================================== */
67 
74 #define ECAP_CAPTURE_MODE (0U)
75 
76 #define ECAP_APWM_MODE (1U)
77 
85 #define ECAP_CAPTURE_EVENT_1 ((uint32_t)0x08U)
86 
87 #define ECAP_CAPTURE_EVENT_2 ((uint32_t)0x0cU)
88 
89 #define ECAP_CAPTURE_EVENT_3 ((uint32_t)0x10U)
90 
91 #define ECAP_CAPTURE_EVENT_4 ((uint32_t)0x14U)
92 
100 #define ECAP_CAPTURE_EVENT1_STOP ((uint32_t)0x00U)
101 
102 #define ECAP_CAPTURE_EVENT2_STOP ((uint32_t)0x01U)
103 
104 #define ECAP_CAPTURE_EVENT3_STOP ((uint32_t)0x02U)
105 
106 #define ECAP_CAPTURE_EVENT4_STOP ((uint32_t)0x03U)
107 
115 #define ECAP_APWM_ACTIVE_HIGH (0U)
116 
117 #define ECAP_APWM_ACTIVE_LOW (1U)
118 
126 #define ECAP_COUNTER_STOP (0U)
127 
128 #define ECAP_COUNTER_FREE_RUNNING (1U)
129 
137 #define ECAP_SYNC_IN_DISABLE ((uint32_t)0U)
138 
140 #define ECAP_ENABLE_COUNTER ((uint32_t)1U)
141 
149 #define ECAP_SYNC_IN ((uint32_t)0x0U)
150 
151 #define ECAP_PRD_EQ ((uint32_t)0x1U)
152 
153 #define ECAP_SYNC_OUT_DISABLE ((uint32_t)0x2U)
154 
162 #define ECAP_CEVT1_INT (CSL_ECAP_ECEINT_ECFLG_CEVT1_MASK)
163 
164 #define ECAP_CEVT2_INT (CSL_ECAP_ECEINT_ECFLG_CEVT2_MASK)
165 
166 #define ECAP_CEVT3_INT (CSL_ECAP_ECEINT_ECFLG_CEVT3_MASK)
167 
168 #define ECAP_CEVT4_INT (CSL_ECAP_ECEINT_ECFLG_CEVT4_MASK)
169 
170 #define ECAP_CNTOVF_INT (CSL_ECAP_ECEINT_ECFLG_CTROVF_MASK)
171 
172 #define ECAP_PRDEQ_INT (CSL_ECAP_ECEINT_ECFLG_CTR_EQ_PRD_MASK)
173 
174 #define ECAP_CMPEQ_INT (CSL_ECAP_ECEINT_ECFLG_CTR_EQ_CMP_MASK)
175 
183 #define ECAP_GLOBAL_INT (ECAP_ECFLG_INT)
184 
192 #define ECAP_CAPTURE_EVENT_RISING (0U)
193 
194 #define ECAP_CAPTURE_EVENT_FALLING (1U)
195 
203 #define ECAP_CAPTURE_EVENT_RESET_COUNTER_NO_RESET (0U)
204 
205 #define ECAP_CAPTURE_EVENT_RESET_COUNTER_RESET (1U)
206 
209 #define ECAP_CAPTURE_INPUT_SOURCE_SELECT_0 (0U)
210 
211 /* ========================================================================== */
212 /* Structures and Enums */
213 /* ========================================================================== */
214 
215 /* None */
216 
217 /* ========================================================================== */
218 /* Global Variables Declarations */
219 /* ========================================================================== */
220 
221 /* None */
222 
223 /* ========================================================================== */
224 /* Function Declarations */
225 /* ========================================================================== */
226 
232 void ECAP_captureLoadingEnable(uint32_t baseAddr);
233 
239 void ECAP_captureLoadingDisable(uint32_t baseAddr);
240 
250 void ECAP_prescaleConfig(uint32_t baseAddr, uint32_t prescale);
251 
263 void ECAP_operatingModeSelect(uint32_t baseAddr, uint32_t modeSelect);
264 
277 uint32_t ECAP_timeStampRead(uint32_t baseAddr, uint32_t capEvtFlag);
278 
286 void ECAP_counterConfig(uint32_t baseAddr, uint32_t countVal);
287 
307 void ECAP_captureEvtPolarityConfig(uint32_t baseAddr, uint32_t capEvt1pol,
308  uint32_t capEvt2pol, uint32_t capEvt3pol,
309  uint32_t capEvt4pol);
310 
330 void ECAP_captureEvtCntrRstConfig(uint32_t baseAddr, uint32_t counterRst1,
331  uint32_t counterRst2, uint32_t counterRst3,
332  uint32_t counterRst4);
333 
342 void ECAP_continuousModeConfig(uint32_t baseAddr);
343 
359 void ECAP_oneShotModeConfig(uint32_t baseAddr, uint32_t stopVal);
360 
372 void ECAP_oneShotReArm(uint32_t baseAddr);
373 
384 void ECAP_APWM_polarityConfig(uint32_t baseAddr, uint32_t flag);
385 
397 void ECAP_counterControl(uint32_t baseAddr, uint32_t flag);
398 
417 void ECAP_syncInOutSelect(uint32_t baseAddr, uint32_t syncIn, uint32_t syncOut);
418 
428 void ECAP_APWM_captureConfig(uint32_t baseAddr, uint32_t compareVal, uint32_t periodVal);
429 
437 void ECAP_APWM_shadowCaptureConfig(uint32_t baseAddr, uint32_t compareVal, uint32_t periodVal);
438 
446 void ECAP_counterPhaseValConfig(uint32_t baseAddr, uint32_t cntPhaseVal);
447 
455 void ECAP_globalIntrClear(uint32_t baseAddr);
456 
467 void ECAP_intrEnable(uint32_t baseAddr, uint32_t flag);
468 
479 void ECAP_intrDisable(uint32_t baseAddr, uint32_t flag);
480 
494 uint32_t ECAP_getIntrStatus(uint32_t baseAddr, uint32_t flag);
495 
506 void ECAP_intrStatusClear(uint32_t baseAddr, uint32_t flag);
507 
517 void ECAP_captureInputSourceSelect(uint32_t baseAddr, uint8_t srcSelect);
518 
519 
520 /* ========================================================================== */
521 /* Static Function Definitions */
522 /* ========================================================================== */
523 
524 /* None */
525 
526 #ifdef __cplusplus
527 }
528 #endif
529 
530 #endif /* #ifndef ECAP_V2_H_ */
531 
ECAP_APWM_captureConfig
void ECAP_APWM_captureConfig(uint32_t baseAddr, uint32_t compareVal, uint32_t periodVal)
When ECAP module is configured in APWM mode capture 1 and capture 2 registers are used as period and ...
ECAP_captureLoadingEnable
void ECAP_captureLoadingEnable(uint32_t baseAddr)
This function enables capture loading.
ECAP_captureEvtPolarityConfig
void ECAP_captureEvtPolarityConfig(uint32_t baseAddr, uint32_t capEvt1pol, uint32_t capEvt2pol, uint32_t capEvt3pol, uint32_t capEvt4pol)
This function configures Capture Event polarity.
ECAP_oneShotReArm
void ECAP_oneShotReArm(uint32_t baseAddr)
This function configures ECAP to One-Short Re-arming.
ECAP_counterPhaseValConfig
void ECAP_counterPhaseValConfig(uint32_t baseAddr, uint32_t cntPhaseVal)
This function configures the counter phase value.
ECAP_counterControl
void ECAP_counterControl(uint32_t baseAddr, uint32_t flag)
This function configures counter to stop or free running based on its input argument flag.
ECAP_intrStatusClear
void ECAP_intrStatusClear(uint32_t baseAddr, uint32_t flag)
This function clears of the status specified interrupts.
ECAP_operatingModeSelect
void ECAP_operatingModeSelect(uint32_t baseAddr, uint32_t modeSelect)
This function configures ecapture module to operate in capture mode or in APWM mode.
ECAP_captureInputSourceSelect
void ECAP_captureInputSourceSelect(uint32_t baseAddr, uint8_t srcSelect)
This function configures the capture input source select bits.
ECAP_globalIntrClear
void ECAP_globalIntrClear(uint32_t baseAddr)
This function clears global interrupt and enables the generation of interrupts if any of the event in...
ECAP_counterConfig
void ECAP_counterConfig(uint32_t baseAddr, uint32_t countVal)
This function configures the counter register which is used as Capture Time base.
ECAP_captureLoadingDisable
void ECAP_captureLoadingDisable(uint32_t baseAddr)
This function disables capture loading.
ECAP_oneShotModeConfig
void ECAP_oneShotModeConfig(uint32_t baseAddr, uint32_t stopVal)
This function configures ECAP to One-shot mode and also stop value for this mode.
ECAP_APWM_polarityConfig
void ECAP_APWM_polarityConfig(uint32_t baseAddr, uint32_t flag)
This function configures output polarity for APWM output.
ECAP_captureEvtCntrRstConfig
void ECAP_captureEvtCntrRstConfig(uint32_t baseAddr, uint32_t counterRst1, uint32_t counterRst2, uint32_t counterRst3, uint32_t counterRst4)
This function enables reset of the counters upon Capture Events.
ECAP_intrDisable
void ECAP_intrDisable(uint32_t baseAddr, uint32_t flag)
This function disables the specified interrupts.
ECAP_getIntrStatus
uint32_t ECAP_getIntrStatus(uint32_t baseAddr, uint32_t flag)
This function returns the status specified interrupts.
ECAP_intrEnable
void ECAP_intrEnable(uint32_t baseAddr, uint32_t flag)
This function enables the specified interrupts.
ECAP_syncInOutSelect
void ECAP_syncInOutSelect(uint32_t baseAddr, uint32_t syncIn, uint32_t syncOut)
This function configures Sync-In and Sync-Out.
ECAP_timeStampRead
uint32_t ECAP_timeStampRead(uint32_t baseAddr, uint32_t capEvtFlag)
This function returns time-stamp for a given capture event.
ECAP_continuousModeConfig
void ECAP_continuousModeConfig(uint32_t baseAddr)
This function configures ECAP to Continuous mode.
ECAP_prescaleConfig
void ECAP_prescaleConfig(uint32_t baseAddr, uint32_t prescale)
This function configures prescale value.
ECAP_APWM_shadowCaptureConfig
void ECAP_APWM_shadowCaptureConfig(uint32_t baseAddr, uint32_t compareVal, uint32_t periodVal)
This function configures the Shadow register.