|ARM Technical Support Knowledge Articles|
Applies to: PL08x DMAC (DM & SM)
(1) In the case where the DMAC is the flow controller, if I set Burst size (same for both source and destination) to 128 and width is word, then, should I set TransferSize to 512 i.e. 128*4, bytes or 128 (items of burst)? (2) Whether Unit of TransferSize is bytes or items of burst, why is TransferSize needed at all? If I use Burst size, I think the size of the transfer is determined, though it is fixed by the Burst size. Or, if I decide to use TransferSize, then the Burst size is not need.
(1) The TransferSize is the number of <source width> transfers to perform when the DMAC is the flow controller. So, in your example, the TransferSize is 128; the total number of bytes transferred will be 128 x 4 = 512. (2) This all depends on whether the DMAC is the Flow Controller or not. TransferSize is only used when the DMAC is the flow controller. In this case, the DMAC needs to know how much data to transfer when the DMACBREQ signal is asserted by the peripheral. If the DMAC is NOT the flow controller, i.e flow is controlled by the peripheral, how much data is transferred at any assertion of DMACBREQ is given by the SBSize and DBSize parameters.
Did you find this article helpful? Yes No
How can we improve this article?