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.

TMS570LC4357: DMA controller

Part Number: TMS570LC4357

Tool/software:

Hi Ti team,

we are working on DMA Controller  and we are Accessing DMA through SPI2.

How to confirm Whether DMA is working or not

T_BOOL Spi2DMALpbk()
{
    T_BOOL return_status = FALSE;
    T_UINT16 tx_data = M_CLEAR;
    T_UINT16 rx_data = M_CLEAR;
    volatile T_UINT32 delay = M_ZERO;
    //T_SPI_LOOPBACKTYPE lpbk_type = DIGITAL_LBK;

 

    SpiDrvInit();
    SpiInit(SPI2);

 

    SpiSetOperatingMode(SPI2, SPI_SLAVE_MODE);
    //SpiEnableLoopback(SPI2, &lpbk_type);

 

    tx_data = M_PATTERN2;

 

    SpiTransmitData(SPI2, &tx_data, M_ONE);
    //SpiTxDMAPoll(SPI2, &tx_data, M_ONE);

 

    //SpiReceiveData(SPI2, &rx_data, M_ONE);
    SpiRxDMAPoll(SPI2, &rx_data, M_ONE);

 

    if(tx_data M_EQUAL rx_data)
    {
        return_status = TRUE;
    }
    else
    {
        return_status = FALSE;
    }

 

    SpiDisableLoopback(SPI2);

 

    return return_status;
}

Void SpiDrvInit (void)
{


/* SPI2 base register. */
Spi_driver_detail[SPI2].pt_spi_reg = M_SPI2_REG;

/* VIM Interrupt channel. */
Spi_driver_detail[SPI2].t_vim_channel_no = M_SPI2_VIM_INT_LVL0_CHNL;

/* SPI2 DMA transmit and receive channel numbers. */
Spi_driver_detail[SPI2].t_spi_dma_details.t_spi_dma_tx_chl\
= M_SPI2_DMA_TX_CHANNEL;
Spi_driver_detail[SPI2].t_spi_dma_details.t_spi_dma_rx_chl\
= M_SPI2_DMA_RX_CHANNEL;
/* SPI2 DMA transmit and receive request numbers. */
Spi_driver_detail[SPI2].t_spi_dma_details.t_spi_dma_tx_reqline\
= M_SPI2_DMA_TX_REQLINE;
Spi_driver_detail[SPI2].t_spi_dma_details.t_spi_dma_rx_reqline\
= M_SPI2_DMA_RX_REQLINE;
/* Set DMA source memory address to NULL. */
Spi_driver_detail[SPI2].t_spi_dma_details.pt_dma_src_mem =\
NULL;
/* Set DMA destination memory address to null. */
Spi_driver_detail[SPI2].t_spi_dma_details.pt_dma_dest_mem =\
NULL;
/* SPI2 DMA transmit and receive channel priority. */
Spi_driver_detail[SPI2].t_spi_dma_details.t_spi_dma_tx_pri\
= M_SPI2_DMA_TX_PRI;
Spi_driver_detail[SPI2].t_spi_dma_details.t_spi_dma_rx_pri \
= M_SPI2_DMA_RX_PRI;
/* Set RX initiated flag to 0. */
Spi_driver_detail[SPI2].t_spi_dma_details.\
t_spi_dma_initiated = M_ZERO;

}

Please help us soon.

Thnaks