Atmel Evaluation Kit AT91SAM9G25-EK AT91SAM9G25-EK Data Sheet

Product codes
AT91SAM9G25-EK
Page of 1102
481
SAM9G25 [DATASHEET]
11032C–ATARM–25-Jan-13
31.5
DMAC Software Requirements
z
There must not be any write operation to Channel registers in an active channel after the channel enable is made 
HIGH. If any channel parameters must be reprogrammed, this can only be done after disabling the DMAC 
channel.
z
When the destination peripheral has been defined as the flow controller, source single transfer requests are not 
serviced until the destination peripheral has asserted its Last Transfer Flag.
z
When the source peripheral has been defined as the flow controller, destination single transfer requests are not 
serviced until the source peripheral has asserted its Last Transfer Flag.
z
When the destination peripheral has been defined as the flow controller, if the destination width is smaller than the 
source width, then a data loss may occur, and the loss is equal to the Source Single Transfer size in bytes- 
destination Single Transfer size in bytes.
z
When a Memory to Peripheral transfer occurs, if the destination peripheral has been defined as the flow controller, 
then a prefetch operation is performed. It means that data is extracted from the memory before any request from 
the peripheral is generated.
z
You must program the DMAC_SADDRx and DMAC_DADDRx channel registers with a byte, half-word and word 
aligned address depending on the source width and destination width.
z
After the software disables a channel by writing into the channel disable register, it must re-enable the channel 
only after it has polled a 0 in the corresponding channel enable status register. This is because the current AHB 
Burst must terminate properly.
z
If you program the BTSIZE field in the DMAC_CTRLA as zero, and the DMAC has been defined as the flow 
controller, then the channel is automatically disabled.
z
When hardware handshaking interface protocol is fully implemented, a peripheral is expected to deassert any sreq 
or breq signals on receiving the ack signal irrespective of the request the ack was asserted in response to.
z
Multiple Transfers involving the same peripheral must not be programmed and enabled on different channels, 
unless this peripheral integrates several hardware handshaking interfaces.
z
When a Peripheral has been defined as the flow controller, the targeted DMAC Channel must be enabled before 
the Peripheral. If you do not ensure this and the First DMAC request is also the last transfer, the DMAC Channel 
might miss a Last Transfer Flag.
z
When the AUTO Field is set to TRUE, then the BTSIZE Field is automatically reloaded from its previous value. 
BTSIZE must be initialized to a non zero value if the first transfer is initiated with the AUTO field set to TRUE, even 
if LLI mode is enabled, because the LLI fetch operation will not update this field.