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.

CC2640R2F: CC2640R2F UDMA0 module can't be enabled (CFG register not set)

Part Number: CC2640R2F
Other Parts Discussed in Thread: BLE-STACK

I am calling Driverlib udma.h and udma.c code directly, the UDMA module can't be enabled after hardware initialization

// Enable power on Peripheral domain; GPIO module (and GPTM, DMA, I2S, SEC)
HWREG(PRCM_BASE + PRCM_O_PDCTL0PERIPH) = PRCM_PDCTL0PERIPH_ON;

// Wait for stable power
while((HWREG(PRCM_BASE + PRCM_O_PDSTAT0) &
PRCM_PDSTAT0_PERIPH_ON) == 0)
{
}

PRCMPeripheralRunEnable(PRCM_PERIPH_UDMA);
PRCMPeripheralSleepEnable(PRCM_PERIPH_UDMA);
PRCMPeripheralDeepSleepEnable(PRCM_PERIPH_UDMA);
PRCMLoadSet();
while (!PRCMLoadGet())
{
;
}

//---------------------------------------------------------------------------

SSIEnable(SSI0_BASE);
SSIDMAEnable(SSI0_BASE, SSI_DMA_RX | SSI_DMA_TX);
uDMAChannelDisable(UDMA0_BASE, 0xFFFFFFFF);
uDMAControlBaseSet(UDMA0_BASE, (void*)UDMACC26XX_CONFIG_BASE);
uDMAEnable(UDMA0_BASE);

  • Hello,

    It looks like you are using SPI with DMA, is there a reason you are not using TI-RTOS and the SPIDMA driver?
    TI-RTOS is a pre-requisite for using the BLE-Stack.

    The driverlib initialization can be found in section 12.4 of the TRM found here: www.ti.com/.../swcu117

    You can also reference the code in the UDMACC26XX and SPICC26XXDMA drivers