cancel
Showing results for 
Search instead for 
Did you mean: 

Query regarding - SPC58EG DMA

VPhat.1
Associate

We need your help regarding SPC58EG DMA configurations. We wanted configure DMA for DSPI communication.

Below configurations are done in code , currently not working.

eDMA_1 module , DMA channel – 12 (TX), 13 (RX), DMACHMUX_0 slot 6, 7 (as per below snap) , priorities for channels are set to 14

Here , pls confirm if TX channel needs to have source ? as intention is RAM to DSPI PUSH transfer.

To prove DMA module working we tried memory to memory transfer just to test DMA as below

 #define EDMA           (*( volatile struct EDMA_tag *)      0xF40A4000)

void Test_dma(void)

{

  EDMA.TCD[0].SADDR              = (unsigned32_t)&DMA_test_tx_data[0];;          

  EDMA.TCD[0].SIZE_MOD.R         = 0x0202;                  

  EDMA.TCD[0].SOFF               = 4;                   

  EDMA.TCD[0].NBYTES             = 4;                        

  EDMA.TCD[0].DADDR              = (unsigned32_t)&DMA_test_rx_data[0]; // DSPIB_PUSHR register

  EDMA.TCD[0].CITER_ELINKYES_CITER= 2;

  EDMA.TCD[0].DOFF               = 0;         

  EDMA.TCD[0].DLAST_SGA          = 0;

  EDMA.TCD[0].BITER_ELINKYES_CITER= 2;

  EDMA.TCD[0].BWC                = 0;     

  EDMA.TCD[0].MAJORLINKCH        = 0;   

  EDMA.TCD[0].MAJORELINK         = 0;    

  EDMA.TCD[0].ESG                = 0;         

  EDMA.TCD[0].DREQ               = 1;                     

  EDMA.TCD[0].INTHALF            = 0;       

  EDMA.TCD[0].INTMAJ             = 0;  

  EDMA.TCD[0].START              = 0;

 EDMA.TCD[0].BITER_ELINKYES_CITER = 2;

 EDMA.TCD[0].CITER_ELINKYES_CITER = 2;

 EDMA.TCD[0].SLAST = 0;///-8

 EDMA.SERQ.R = 0; // Enable Tx request

}

DMA ch –0, eDMA_1 module, DMACHMUX_0 slot 62 , priorities for channels are set to 13

(below – didn’t worked )

Request you to please guide what is missed for triggering DMA transfer.

Part number - SPC58EG80E5QEC0X

0 REPLIES 0