...the world's most energy friendly microcontrollers
2014-07-02 - Gecko Family - d0001_Rev1.30
44
www.silabs.com
and this determines the arbitration rate. For example, if R = 4 then the arbitration rate is 2
4
, that is, the
controller arbitrates every 16 DMA transfers.
Table 8.1 (p. 44) lists the arbitration rates.
Table 8.1. AHB bus transfer arbitration interval
R_power
Arbitrate after x DMA transfers
b0000
x = 1
b0001
x = 2
b0010
x = 4
b0011
x = 8
b0100
x = 16
b0101
x = 32
b0110
x = 64
b0111
x = 128
b1000
x = 256
b1001
x = 512
b1010 - b1111
x = 1024
Note
You must take care not to assign a low-priority channel with a large R_power because this
prevents the controller from servicing high-priority requests, until it re-arbitrates.
The number of dma transfers N that need to be done is specified by the user. When N > 2
R
and is not an
integer multiple of 2
R
then the controller always performs sequences of 2
R
transfers until N < 2
R
remain
to be transferred. The controller performs the remaining N transfers at the end of the DMA cycle.
You store the value of the R_power bits in the channel control data structure. See Section 8.4.3.3 (p.
56) for more information about the location of the R_power bits in the data structure.
8.4.2.2 Priority
When the controller arbitrates, it determines the next channel to service by using the following
information:
• the channel number
• the priority level, default or high, that is assigned to the channel.
You can configure each channel to use either the default priority level or a high priority level by setting
the DMA_CHPRIS register.
Channel number zero has the highest priority and as the channel number increases, the priority of a
channel decreases. Table 8.2 (p. 44) lists the DMA channel priority levels in descending order of
priority.
Table 8.2. DMA channel priority
Channel
number
Priority level
setting
Descending order of
channel priority
0
High
Highest-priority DMA channel
1
High
-
2
High
-
Summary of Contents for EFM32G
Page 505: ......