M4521_BSP V3.02.000
The Board Support Package for M4521
pdma.h
Go to the documentation of this file.
1/**************************************************************************/
12#ifndef __PDMA_H__
13#define __PDMA_H__
14
15#ifdef __cplusplus
16extern "C"
17{
18#endif
19
20
32#define PDMA_CH_MAX 8UL
34/*---------------------------------------------------------------------------------------------------------*/
35/* Operation Mode Constant Definitions */
36/*---------------------------------------------------------------------------------------------------------*/
37#define PDMA_OP_STOP 0x00000000UL
38#define PDMA_OP_BASIC 0x00000001UL
39#define PDMA_OP_SCATTER 0x00000002UL
41/*---------------------------------------------------------------------------------------------------------*/
42/* Data Width Constant Definitions */
43/*---------------------------------------------------------------------------------------------------------*/
44#define PDMA_WIDTH_8 0x00000000UL
45#define PDMA_WIDTH_16 0x00001000UL
46#define PDMA_WIDTH_32 0x00002000UL
48/*---------------------------------------------------------------------------------------------------------*/
49/* Address Attribute Constant Definitions */
50/*---------------------------------------------------------------------------------------------------------*/
51#define PDMA_SAR_INC 0x00000000UL
52#define PDMA_SAR_FIX 0x00000300UL
53#define PDMA_DAR_INC 0x00000000UL
54#define PDMA_DAR_FIX 0x00000C00UL
56/*---------------------------------------------------------------------------------------------------------*/
57/* Burst Mode Constant Definitions */
58/*---------------------------------------------------------------------------------------------------------*/
59#define PDMA_REQ_SINGLE 0x00000004UL
60#define PDMA_REQ_BURST 0x00000000UL
62#define PDMA_BURST_128 0x00000000UL
63#define PDMA_BURST_64 0x00000010UL
64#define PDMA_BURST_32 0x00000020UL
65#define PDMA_BURST_16 0x00000030UL
66#define PDMA_BURST_8 0x00000040UL
67#define PDMA_BURST_4 0x00000050UL
68#define PDMA_BURST_2 0x00000060UL
69#define PDMA_BURST_1 0x00000070UL
71/*---------------------------------------------------------------------------------------------------------*/
72/* Peripheral Transfer Mode Constant Definitions */
73/*---------------------------------------------------------------------------------------------------------*/
74#define PDMA_SPI0_TX 0x00000001UL
75#define PDMA_SPI1_TX 0x00000002UL
76#define PDMA_UART0_TX 0x00000004UL
77#define PDMA_UART1_TX 0x00000005UL
78#define PDMA_UART2_TX 0x00000006UL
79#define PDMA_UART3_TX 0x00000007UL
80#define PDMA_ADC_RX 0x00000009UL
81#define PDMA_PWM0_P1_RX 0x0000000BUL
82#define PDMA_PWM0_P2_RX 0x0000000CUL
83#define PDMA_PWM0_P3_RX 0x0000000DUL
84#define PDMA_PWM1_P1_RX 0x0000000EUL
85#define PDMA_PWM1_P2_RX 0x0000000FUL
86#define PDMA_PWM1_P3_RX 0x00000010UL
87#define PDMA_SPI0_RX 0x00000011UL
88#define PDMA_SPI1_RX 0x00000012UL
89#define PDMA_UART0_RX 0x00000014UL
90#define PDMA_UART1_RX 0x00000015UL
91#define PDMA_UART2_RX 0x00000016UL
92#define PDMA_UART3_RX 0x00000017UL
93#define PDMA_MEM 0x0000001FUL
95/*---------------------------------------------------------------------------------------------------------*/
96/* Interrupt Type Constant Definitions */
97/*---------------------------------------------------------------------------------------------------------*/
98#define PDMA_INT_TRANS_DONE 0x00000000UL
99#define PDMA_INT_TEMPTY 0x00000001UL
100#define PDMA_INT_TIMEOUT 0x00000002UL /* end of group PDMA_EXPORTED_CONSTANTS */
104
118#define PDMA_GET_INT_STATUS() ((uint32_t)(PDMA->INTSTS))
119
129#define PDMA_GET_TD_STS() ((uint32_t)(PDMA->TDSTS))
130
140#define PDMA_CLR_TD_FLAG(u32Mask) ((uint32_t)(PDMA->TDSTS = (u32Mask)))
141
151#define PDMA_GET_ABORT_STS() ((uint32_t)(PDMA->ABTSTS))
152
162#define PDMA_CLR_ABORT_FLAG(u32Mask) ((uint32_t)(PDMA->ABTSTS = (u32Mask)))
163
173#define PDMA_GET_EMPTY_STS() ((uint32_t)(PDMA->SCATSTS))
174
184#define PDMA_CLR_EMPTY_FLAG(u32Mask) ((uint32_t)(PDMA->SCATSTS = (u32Mask)))
185
195#define PDMA_CLR_TMOUT_FLAG(u32Ch) ((uint32_t)(PDMA->INTSTS = (1 << ((u32Ch) + 8))))
196
207#define PDMA_IS_CH_BUSY(u32Ch) ((uint32_t)(PDMA->TRGSTS & (1 << (u32Ch)))? 1 : 0)
208
219#define PDMA_SET_SRC_ADDR(u32Ch, u32Addr) ((uint32_t)(PDMA->DSCT[(u32Ch)].SA = (u32Addr)))
220
231#define PDMA_SET_DST_ADDR(u32Ch, u32Addr) ((uint32_t)(PDMA->DSCT[(u32Ch)].DA = (u32Addr)))
232
243#define PDMA_SET_TRANS_CNT(u32Ch, u32TransCount) ((uint32_t)(PDMA->DSCT[(u32Ch)].CTL=(PDMA->DSCT[(u32Ch)].CTL&~PDMA_DSCT_CTL_TXCNT_Msk)|(((u32TransCount)-1) << PDMA_DSCT_CTL_TXCNT_Pos)))
244
255#define PDMA_SET_SCATTER_DESC(u32Ch, u32Addr) ((uint32_t)(PDMA->DSCT[(u32Ch)].NEXT = (u32Addr) - (PDMA->SCATBA)))
256
266#define PDMA_STOP(u32Ch) ((uint32_t)(PDMA->STOP = (1 << (u32Ch))))
267
268/*---------------------------------------------------------------------------------------------------------*/
269/* Define PWM functions prototype */
270/*---------------------------------------------------------------------------------------------------------*/
271void PDMA_Open(uint32_t u32Mask);
272void PDMA_Close(void);
273void PDMA_SetTransferCnt(uint32_t u32Ch, uint32_t u32Width, uint32_t u32TransCount);
274void PDMA_SetTransferAddr(uint32_t u32Ch, uint32_t u32SrcAddr, uint32_t u32SrcCtrl, uint32_t u32DstAddr, uint32_t u32DstCtrl);
275void PDMA_SetTransferMode(uint32_t u32Ch, uint32_t u32Peripheral, uint32_t u32ScatterEn, uint32_t u32DescAddr);
276void PDMA_SetBurstType(uint32_t u32Ch, uint32_t u32BurstType, uint32_t u32BurstSize);
277void PDMA_EnableTimeout(uint32_t u32Mask);
278void PDMA_DisableTimeout(uint32_t u32Mask);
279void PDMA_SetTimeOut(uint32_t u32Ch, uint32_t u32OnOff, uint32_t u32TimeOutCnt);
280void PDMA_Trigger(uint32_t u32Ch);
281void PDMA_EnableInt(uint32_t u32Ch, uint32_t u32Mask);
282void PDMA_DisableInt(uint32_t u32Ch, uint32_t u32Mask);
283
284 /* end of group PDMA_EXPORTED_FUNCTIONS */
286 /* end of group PDMA_Driver */
288 /* end of group Standard_Driver */
290
291#ifdef __cplusplus
292}
293#endif
294
295#endif //__PDMA_H__
296
void PDMA_SetTransferAddr(uint32_t u32Ch, uint32_t u32SrcAddr, uint32_t u32SrcCtrl, uint32_t u32DstAddr, uint32_t u32DstCtrl)
Set PDMA Transfer Address.
Definition: pdma.c:103
void PDMA_Trigger(uint32_t u32Ch)
Trigger PDMA.
Definition: pdma.c:299
void PDMA_EnableTimeout(uint32_t u32Mask)
Enable timeout function.
Definition: pdma.c:221
void PDMA_SetTimeOut(uint32_t u32Ch, uint32_t u32OnOff, uint32_t u32TimeOutCnt)
Set PDMA Timeout Count.
Definition: pdma.c:251
void PDMA_EnableInt(uint32_t u32Ch, uint32_t u32Mask)
Enable Interrupt.
Definition: pdma.c:318
void PDMA_Open(uint32_t u32Mask)
PDMA Open.
Definition: pdma.c:39
void PDMA_DisableTimeout(uint32_t u32Mask)
Disable timeout function.
Definition: pdma.c:235
void PDMA_Close(void)
PDMA Close.
Definition: pdma.c:61
void PDMA_DisableInt(uint32_t u32Ch, uint32_t u32Mask)
Disable Interrupt.
Definition: pdma.c:350
void PDMA_SetTransferMode(uint32_t u32Ch, uint32_t u32Peripheral, uint32_t u32ScatterEn, uint32_t u32DescAddr)
Set PDMA Transfer Mode.
Definition: pdma.c:143
void PDMA_SetBurstType(uint32_t u32Ch, uint32_t u32BurstType, uint32_t u32BurstSize)
Set PDMA Burst Type and Size.
Definition: pdma.c:206
void PDMA_SetTransferCnt(uint32_t u32Ch, uint32_t u32Width, uint32_t u32TransCount)
Set PDMA Transfer Count.
Definition: pdma.c:80