Quantcast
Channel: Forums - Recent Threads
Viewing all articles
Browse latest Browse all 262198

CCS/TM4C1294NCPDT: Not able to observe uart transferred data by using udma in com port

$
0
0

Part Number:TM4C1294NCPDT

Tool/software: Code Composer Studio


Hii,

I'am transferring data from memory to uart by using udma controller.If i'am enabling the loop back by using (HWREG(UART1_BASE + UART_O_CTL) |= UART_CTL_LBE) then we are able to see the data in ui8RxBufA,ui8RxBufB buffers but we are not able to get the transferred data in uart com port.


#define MEM_BUFFER_SIZE 1024

#define UART_TXBUF_SIZE 256

#define UART_RXBUF_SIZE 256

static uint8_t g_ui8TxBuf[UART_TXBUF_SIZE];

static uint8_t g_ui8RxBufA[UART_RXBUF_SIZE];

static uint8_t g_ui8RxBufB[UART_RXBUF_SIZE];

static uint32_t g_ui32RxBufACount = 0;

static uint32_t g_ui32RxBufBCount = 0;

void UART1IntHandler(void)

{

uint32_t ui32Status;

uint32_t ui32Mode;

 ui32Status = UARTIntStatus(UART1_BASE, 1);

UARTIntClear(UART1_BASE, ui32Status);


 ui32Mode = uDMAChannelModeGet(UDMA_CHANNEL_UART1RX | UDMA_PRI_SELECT);

if(ui32Mode == UDMA_MODE_STOP)

{

g_ui32RxBufACount++;

uDMAChannelTransferSet(UDMA_CHANNEL_UART1RX | UDMA_PRI_SELECT,UDMA_MODE_PINGPONG,(void *)(UART1_BASE + UART_O_DR),g_ui8RxBufA, sizeof(g_ui8RxBufA));

}

 ui32Mode = uDMAChannelModeGet(UDMA_CHANNEL_UART1RX | UDMA_ALT_SELECT);

if(ui32Mode == UDMA_MODE_STOP)

{

g_ui32RxBufBCount++;

uDMAChannelTransferSet(UDMA_CHANNEL_UART1RX | UDMA_ALT_SELECT,UDMA_MODE_PINGPONG,(void *)(UART1_BASE + UART_O_DR),g_ui8RxBufB, sizeof(g_ui8RxBufB));

}

if(!uDMAChannelIsEnabled(UDMA_CHANNEL_UART1TX))

{

uDMAChannelTransferSet(UDMA_CHANNEL_UART1TX | UDMA_PRI_SELECT,UDMA_MODE_BASIC, g_ui8TxBuf,(void *)(UART1_BASE + UART_O_DR),sizeof(g_ui8TxBuf));

uDMAChannelEnable(UDMA_CHANNEL_UART1TX);

}

}

void InitUART1Transfer(void)

{

uint_fast16_t ui16Idx;

for(ui16Idx = 0; ui16Idx < UART_TXBUF_SIZE; ui16Idx++)

 g_ui8TxBuf[ui16Idx] = 'A';

SysCtlPeripheralEnable(SYSCTL_PERIPH_UART1);

SysCtlPeripheralSleepEnable(SYSCTL_PERIPH_UART1);


UARTConfigSetExpClk(UART1_BASE, ui32SysClkFreq, 115200,UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |UART_CONFIG_PAR_NONE);

UARTFIFOLevelSet(UART1_BASE, UART_FIFO_TX4_8, UART_FIFO_RX4_8);


UARTEnable(UART1_BASE);

UARTDMAEnable(UART1_BASE, UART_DMA_RX | UART_DMA_TX);

HWREG(UART1_BASE + UART_O_CTL) |= UART_CTL_LBE;

IntEnable(INT_UART1);

///////receiving parameter

uDMAChannelAttributeDisable(UDMA_CHANNEL_UART1RX,UDMA_ATTR_ALTSELECT | UDMA_ATTR_USEBURST | UDMA_ATTR_HIGH_PRIORITY | UDMA_ATTR_REQMASK);

uDMAChannelControlSet(UDMA_CHANNEL_UART1RX | UDMA_PRI_SELECT,UDMA_SIZE_8 | UDMA_SRC_INC_NONE | UDMA_DST_INC_8 | UDMA_ARB_4);

uDMAChannelControlSet(UDMA_CHANNEL_UART1RX | UDMA_ALT_SELECT,UDMA_SIZE_8 | UDMA_SRC_INC_NONE | UDMA_DST_INC_8 | UDMA_ARB_4);

uDMAChannelTransferSet(UDMA_CHANNEL_UART1RX | UDMA_PRI_SELECT,UDMA_MODE_PINGPONG,(void *)(UART1_BASE + UART_O_DR),g_ui8RxBufA, sizeof(g_ui8RxBufA));

uDMAChannelTransferSet(UDMA_CHANNEL_UART1RX | UDMA_ALT_SELECT,UDMA_MODE_PINGPONG,(void *)(UART1_BASE + UART_O_DR),g_ui8RxBufB, sizeof(g_ui8RxBufB));


/////////transimitting paramter

uDMAChannelAttributeDisable(UDMA_CHANNEL_UART1TX,UDMA_ATTR_ALTSELECT | UDMA_ATTR_HIGH_PRIORITY | UDMA_ATTR_REQMASK);

uDMAChannelAttributeEnable(UDMA_CHANNEL_UART1TX, UDMA_ATTR_USEBURST);

uDMAChannelControlSet(UDMA_CHANNEL_UART1TX | UDMA_PRI_SELECT,UDMA_SIZE_8 | UDMA_SRC_INC_8 |UDMA_DST_INC_NONE | UDMA_ARB_4);

uDMAChannelTransferSet(UDMA_CHANNEL_UART1TX | UDMA_PRI_SELECT,UDMA_MODE_BASIC, g_ui8TxBuf,(void *)(UART1_BASE + UART_O_DR),sizeof(g_ui8TxBuf));


uDMAChannelEnable(UDMA_CHANNEL_UART1RX);

uDMAChannelEnable(UDMA_CHANNEL_UART1TX);


UARTIntEnable(UART1_BASE, UART_INT_DMATX | UART_INT_DMATX);

}

int main(void)

{

 ui32SysClkFreq = SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480), 120000000);

SysCtlPeripheralClockGating(true);

SysCtlPeripheralEnable(SYSCTL_PERIPH_UDMA);

SysCtlPeripheralSleepEnable(SYSCTL_PERIPH_UDMA);

IntEnable(INT_UDMAERR);

uDMAEnable();

uDMAControlBaseSet(pui8ControlTable);

InitUART1Transfer();

}

Thanks and Best Regards,

Anamika


Viewing all articles
Browse latest Browse all 262198


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>