when accessing the McBSP data receive or transmit registers, the value of these
registers should be set to zero.
Source/Destination
Transfer Step (SRC/
DST_TRANSFER_STEP)
This specifies the address offset to start the next burst transfer after
completing the current burst transfer.
This is used in cases where registers or data memory locations are spaced at
constant intervals. This value is a signed 2's compliment number so that the
address pointer can be incremented or decremented as required.
Source/Destination
Wrap Step (SRC/
DST_WRAP_STEP):
When the wrap counter reaches zero, this value specifies the number of words to
add/subtract from the BEG_ADDR pointer and hence sets the new start address.
This implements a circular type of addressing mode, useful in many applications.
This value is a signed 2's compliment number so that the address pointer can be
incremented or decremented as required.
Note
Regardless of the state of the DATASIZE bit, the value specified in the STEP registers are for 16-bit
addresses. So, to increment one 32-bit address, a value of 2 should be placed in these registers.
Three modes are provided to control the way the state machine behaves during the burst loop and the transfer
loop:
One Shot Mode
(ONESHOT)
If one shot mode is enabled when an interrupt event trigger occurs, the DMA will continue
transferring data in bursts until TRANSFER_COUNT is zero. If one shot mode is disabled,
then an interrupt event trigger is required for each burst transfer and this will continue until
TRANSFER_COUNT is zero.
Note
When ONESHOT mode is enabled, the DMA will continuously transfer bursts of data on the given
channel until the TRANSFER_COUNT value is zero. This could potentially hog the bandwidth of a
peripheral and cause long CPU stalls to occur. To avoid this, you could configure a CPU timer (or
similar) and disable ONESHOT so as to avoid this situation.
High-priority mode and ONESHOT mode may not be used at the same time on channel 1. Other
channels may use ONESHOT mode when channel 1 is in high-priority mode.
Continuous Mode
(CONTINUOUS)
If continuous mode is disabled the RUNSTS bit in the CONTROL register is cleared at the
end of the transfer, disabling the DMA channel.
The channel must be re-enabled by setting the RUN bit in the CONTROL register before
another transfer can be started on that channel. If the continuous mode is enabled the
RUNSTS bit is not cleared at the end of the transfer.
Channel
Interrupt Mode
(CHINTMODE)
This mode bit selects whether the DMA interrupt from the respective channel is generated
at the beginning of a new transfer or at the end of the transfer.
If implementing a ping-pong buffer scheme with continuous mode of operation, then the
interrupt would be generated at the beginning, just after the working registers are copied
to the shadow set. If the DMA does not operate in continuous mode, then the interrupt is
typically generated at the end when the transfer is complete.
All of the above features and modes are shown in
.
Direct Memory Access (DMA) Module
SPRUH18I – JANUARY 2011 – REVISED JUNE 2022
TMS320x2806x Microcontrollers
737
Copyright © 2022 Texas Instruments Incorporated
Содержание TMS320 2806 Series
Страница 2: ......