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: Clarification regarding DMA control packet updates without disabling DMA controller

Part Number: TMS570LC4357


Hello TI Forums,

I have a design where I need to transmit variable lengths of data over a MIBSPI peripheral operating in multi-buffer mode and using DMA.

I need to update the DMA control packet to configure the source address and element count for each transfer, but while looking at the TRM (SPNU563A), p. 724, table 20-9, in the description of the DMA_EN bit, I understand that the control packet should be set before enabling the DMA controller.

What's unclear is whether the DMA controller should be disabled for updates to the control packet during execution, or if the control packets can be safely updated during execution without disabling and then re-enabling the DMA controller. I would very much prefer to avoid disabling the entire DMA controller to reconfigure a single channel, risking to stall/delay all of the other DMA channel transfers.

Note that the control packet would not be updated while the related DMA channel is involved in a transfer.

Thanks

  • Hi Marc-Andre,

    What's unclear is whether the DMA controller should be disabled for updates to the control packet during execution

    I would suggest you disable the DMA controller before updating control packet, because changing the contents of a channel control packet will clear the corresponding pending bit if the channel has a pending status. If the control packet of an active channel is changed, then the channel will stop immediately at an arbitration boundary. When the same channel is triggered again, it will begin with the new control packet information.

    --

    Thanks & regards,
    Jagadish.