This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CCS/TM4C123GH6PM: uDMA with UART6 RX

Part Number: TM4C123GH6PM

Tool/software: Code Composer Studio

Hello, Im trying to configure uDMA for UART6 RX channel, I tried a lot but with no result yet. Please somebody can give some example code of configure uDMA with UART6 RX channel? I made it work for a SW channel but not with this peripheral.  This is the code I wrote until now:

HWREG(0x400FE60C) = 0x01;

    //IntEnable(INT_UDMAERR);
    //uDMAIntRegister(INT_UDMAERR,uDMAIntHandler);
    //UARTIntClear(UART6_BASE,UART_INT_RX);
    //uDMAIntClear(UDMA_CH10_UART6RX);
    //uDMAErrorStatusClear();
    uDMAEnable();
    uDMAControlBaseSet(ui8ControlTable);

    uDMAChannelAssign(UDMA_CH10_UART6RX);

    uDMAChannelAttributeEnable(UDMA_CH10_UART6RX,UDMA_ATTR_USEBURST|UDMA_ATTR_HIGH_PRIORITY|UDMA_ATTR_REQMASK);

    uDMAChannelControlSet(UDMA_CH10_UART6RX|UDMA_PRI_SELECT,UDMA_SIZE_8|UDMA_SRC_INC_NONE|UDMA_DST_INC_NONE|UDMA_ARB_1);

    uDMAChannelTransferSet(UDMA_CH10_UART6RX|UDMA_PRI_SELECT,UDMA_MODE_BASIC,(void *)(UART6_BASE + UART_O_DR),Destiny,sizeof(Destiny));

    uDMAChannelEnable(UDMA_CH10_UART6RX);

    //uDMAChannelRequest(UDMA_CH10_UART6RX);
    //uDMACHannelRequest();

  • Hi David,
    There is an example provided by the TivaWare. It is in <TivaWare_installation>/examples/boards/ek_tm4c123gxl/udma_demo. It will do DMA transfers to the UART.
  • Would it not make great sense to "first" get UART_6 up and running - and (only then) add the complexity of µDMA?

    Implementing "too much" - "too soon" - most always fails - and greatly complicates diagnostic efforts. (note that many users here have difficulty w/the "higher numbered" MCU UARTs - which often are not fully represented - under the standard library.)

    One "failed link" in your multi-link system will prevent correct operation - thus wise to "test/verify" (each) prior to engaging the combination...