AnsweredAssumed Answered

Continous data transfer to GPIO with DMA SPC56EL

Question asked by Patrik Schantl on Feb 3, 2015
Latest reply on Feb 5, 2015 by Patrik Schantl
Hello,

I would like to use DMA to control the states of some GPIOs. The software should write the entries of an array to the PGPDO[0] register. For that case, I wrote a small demo program. The outputArray is uint16_t and contains 256 elements. Each element stands for a state of 8 GPIO pins. The software should write these elements circular to the PGPDO[0] register, but it doesn´t work. The configuration looks like that:
 
   edmaChannelStart(0);
  edmaTCDSetWord0(edmaGetTCD(0),&outputArray);
  edmaTCDSetWord1(edmaGetTCD(0),1,1,2);
  edmaTCDSetWord2(edmaGetTCD(0),512);
  edmaTCDSetWord3(edmaGetTCD(0),-512);
  edmaTCDSetWord4(edmaGetTCD(0),&SIUL.PGPDO[0].R);
  edmaTCDSetWord5Linked(edmaGetTCD(0),0,0xFF,1);
  edmaTCDSetWord6(edmaGetTCD(0),0);
  edmaTCDSetWord7Linked(edmaGetTCD(0),0,0xFF,EDMA_TCD_MODE_START);

Can anybody tell me what I have to change in my configuration when I want the DMA transfer to run continuously as fast as possible?

Best regards,
Patrik

Outcomes