M471M/R1/S BSP V3.01.000
The Board Support Package for M4521
pdma.h
Go to the documentation of this file.
1/**************************************************************************/
8#ifndef __PDMA_H__
9#define __PDMA_H__
10
11#ifdef __cplusplus
12extern "C"
13{
14#endif
15
16
28#define PDMA_CH_MAX 8UL
30/*---------------------------------------------------------------------------------------------------------*/
31/* Operation Mode Constant Definitions */
32/*---------------------------------------------------------------------------------------------------------*/
33#define PDMA_OP_STOP 0x00000000UL
34#define PDMA_OP_BASIC 0x00000001UL
35#define PDMA_OP_SCATTER 0x00000002UL
37/*---------------------------------------------------------------------------------------------------------*/
38/* Data Width Constant Definitions */
39/*---------------------------------------------------------------------------------------------------------*/
40#define PDMA_WIDTH_8 0x00000000UL
41#define PDMA_WIDTH_16 0x00001000UL
42#define PDMA_WIDTH_32 0x00002000UL
44/*---------------------------------------------------------------------------------------------------------*/
45/* Address Attribute Constant Definitions */
46/*---------------------------------------------------------------------------------------------------------*/
47#define PDMA_SAR_INC 0x00000000UL
48#define PDMA_SAR_FIX 0x00000300UL
49#define PDMA_DAR_INC 0x00000000UL
50#define PDMA_DAR_FIX 0x00000C00UL
52/*---------------------------------------------------------------------------------------------------------*/
53/* Burst Mode Constant Definitions */
54/*---------------------------------------------------------------------------------------------------------*/
55#define PDMA_REQ_SINGLE 0x00000004UL
56#define PDMA_REQ_BURST 0x00000000UL
58#define PDMA_BURST_128 0x00000000UL
59#define PDMA_BURST_64 0x00000010UL
60#define PDMA_BURST_32 0x00000020UL
61#define PDMA_BURST_16 0x00000030UL
62#define PDMA_BURST_8 0x00000040UL
63#define PDMA_BURST_4 0x00000050UL
64#define PDMA_BURST_2 0x00000060UL
65#define PDMA_BURST_1 0x00000070UL
67/*---------------------------------------------------------------------------------------------------------*/
68/* Peripheral Transfer Mode Constant Definitions */
69/*---------------------------------------------------------------------------------------------------------*/
70#define PDMA_SPI0_TX 0x00000001UL
71#define PDMA_SPI1_TX 0x00000002UL
72#define PDMA_UART0_TX 0x00000004UL
73#define PDMA_UART1_TX 0x00000005UL
74#define PDMA_UART2_TX 0x00000006UL
75#define PDMA_UART3_TX 0x00000007UL
76#define PDMA_ADC_RX 0x00000009UL
77#define PDMA_PWM0_P1_RX 0x0000000BUL
78#define PDMA_PWM0_P2_RX 0x0000000CUL
79#define PDMA_PWM0_P3_RX 0x0000000DUL
80#define PDMA_PWM1_P1_RX 0x0000000EUL
81#define PDMA_PWM1_P2_RX 0x0000000FUL
82#define PDMA_PWM1_P3_RX 0x00000010UL
83#define PDMA_SPI0_RX 0x00000011UL
84#define PDMA_SPI1_RX 0x00000012UL
85#define PDMA_UART0_RX 0x00000014UL
86#define PDMA_UART1_RX 0x00000015UL
87#define PDMA_UART2_RX 0x00000016UL
88#define PDMA_UART3_RX 0x00000017UL
89#define PDMA_MEM 0x0000001FUL
91/*---------------------------------------------------------------------------------------------------------*/
92/* Interrupt Type Constant Definitions */
93/*---------------------------------------------------------------------------------------------------------*/
94#define PDMA_INT_TRANS_DONE 0x00000000UL
95#define PDMA_INT_TEMPTY 0x00000001UL
96#define PDMA_INT_TIMEOUT 0x00000002UL /* end of group PDMA_EXPORTED_CONSTANTS */
100
114#define PDMA_GET_INT_STATUS() ((uint32_t)(PDMA->INTSTS))
115
125#define PDMA_GET_TD_STS() ((uint32_t)(PDMA->TDSTS))
126
136#define PDMA_CLR_TD_FLAG(u32Mask) ((uint32_t)(PDMA->TDSTS = (u32Mask)))
137
147#define PDMA_GET_ABORT_STS() ((uint32_t)(PDMA->ABTSTS))
148
158#define PDMA_CLR_ABORT_FLAG(u32Mask) ((uint32_t)(PDMA->ABTSTS = (u32Mask)))
159
169#define PDMA_GET_EMPTY_STS() ((uint32_t)(PDMA->SCATSTS))
170
180#define PDMA_CLR_EMPTY_FLAG(u32Mask) ((uint32_t)(PDMA->SCATSTS = (u32Mask)))
181
191#define PDMA_CLR_TMOUT_FLAG(u32Ch) ((uint32_t)(PDMA->INTSTS = (1 << ((u32Ch) + 8))))
192
203#define PDMA_IS_CH_BUSY(u32Ch) ((uint32_t)(PDMA->TRGSTS & (1 << (u32Ch)))? 1 : 0)
204
215#define PDMA_SET_SRC_ADDR(u32Ch, u32Addr) ((uint32_t)(PDMA->DSCT[(u32Ch)].SA = (u32Addr)))
216
227#define PDMA_SET_DST_ADDR(u32Ch, u32Addr) ((uint32_t)(PDMA->DSCT[(u32Ch)].DA = (u32Addr)))
228
239#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)))
240
251#define PDMA_SET_SCATTER_DESC(u32Ch, u32Addr) ((uint32_t)(PDMA->DSCT[(u32Ch)].NEXT = (u32Addr) - (PDMA->SCATBA)))
252
262#define PDMA_STOP(u32Ch) ((uint32_t)(PDMA->STOP = (1 << (u32Ch))))
263
264/*---------------------------------------------------------------------------------------------------------*/
265/* Define PWM functions prototype */
266/*---------------------------------------------------------------------------------------------------------*/
267void PDMA_Open(uint32_t u32Mask);
268void PDMA_Close(void);
269void PDMA_SetTransferCnt(uint32_t u32Ch, uint32_t u32Width, uint32_t u32TransCount);
270void PDMA_SetTransferAddr(uint32_t u32Ch, uint32_t u32SrcAddr, uint32_t u32SrcCtrl, uint32_t u32DstAddr, uint32_t u32DstCtrl);
271void PDMA_SetTransferMode(uint32_t u32Ch, uint32_t u32Peripheral, uint32_t u32ScatterEn, uint32_t u32DescAddr);
272void PDMA_SetBurstType(uint32_t u32Ch, uint32_t u32BurstType, uint32_t u32BurstSize);
273void PDMA_EnableTimeout(uint32_t u32Mask);
274void PDMA_DisableTimeout(uint32_t u32Mask);
275void PDMA_SetTimeOut(uint32_t u32Ch, uint32_t u32OnOff, uint32_t u32TimeOutCnt);
276void PDMA_Trigger(uint32_t u32Ch);
277void PDMA_EnableInt(uint32_t u32Ch, uint32_t u32Mask);
278void PDMA_DisableInt(uint32_t u32Ch, uint32_t u32Mask);
279
280 /* end of group PDMA_EXPORTED_FUNCTIONS */
282 /* end of group PDMA_Driver */
284 /* end of group Standard_Driver */
286
287#ifdef __cplusplus
288}
289#endif
290
291#endif //__PDMA_H__
292
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:99
void PDMA_Trigger(uint32_t u32Ch)
Trigger PDMA.
Definition: pdma.c:295
void PDMA_EnableTimeout(uint32_t u32Mask)
Enable timeout function.
Definition: pdma.c:217
void PDMA_SetTimeOut(uint32_t u32Ch, uint32_t u32OnOff, uint32_t u32TimeOutCnt)
Set PDMA Timeout Count.
Definition: pdma.c:247
void PDMA_EnableInt(uint32_t u32Ch, uint32_t u32Mask)
Enable Interrupt.
Definition: pdma.c:314
void PDMA_Open(uint32_t u32Mask)
PDMA Open.
Definition: pdma.c:35
void PDMA_DisableTimeout(uint32_t u32Mask)
Disable timeout function.
Definition: pdma.c:231
void PDMA_Close(void)
PDMA Close.
Definition: pdma.c:57
void PDMA_DisableInt(uint32_t u32Ch, uint32_t u32Mask)
Disable Interrupt.
Definition: pdma.c:346
void PDMA_SetTransferMode(uint32_t u32Ch, uint32_t u32Peripheral, uint32_t u32ScatterEn, uint32_t u32DescAddr)
Set PDMA Transfer Mode.
Definition: pdma.c:139
void PDMA_SetBurstType(uint32_t u32Ch, uint32_t u32BurstType, uint32_t u32BurstSize)
Set PDMA Burst Type and Size.
Definition: pdma.c:202
void PDMA_SetTransferCnt(uint32_t u32Ch, uint32_t u32Width, uint32_t u32TransCount)
Set PDMA Transfer Count.
Definition: pdma.c:76