
ISD91200 Series Technical Reference Manual
Release Date: Sep 16, 2019
- 331 -
Revision 2.4
5.15.4 Function Description
The PDMA controller has four channels of DMA, each channel can be configured to one of the following
transfer types: Peripheral-to-SRAM SRAM-to-Peripheral or SRAM-to-SRAM. The SRAM and the AHB-
APB bus bridge each have an AHB bus arbiter that allows AHB bus access to occur either from the
CPU or the PDMA controller. The PDMA controller requests bus transfers over the AHB bus from one
address into a single word buffer within the PDMA controller then writes this buffer to another address
over the AHB bus. Peripherals with PDMA capability generate control signals to the PDMA block
requesting service when they need data (Rx request) or have data to transfer (Tx request). The PDMA
control registers reside in address space on the AHB bus.
Transfer completion can be determined by polling of status registers or by generation of PDMA interrupt
to CPU. A transfer is set up as a specified number of bytes from a source address to a destination
address. Both source and destination address can be configured as a fixed address, an incrementing
address or a wrap-around buffer address.
The general procedure to operate a DMA channel is as follows:
•
Enable PDMA channel
n
clock by setting
PDMA_GCTLn.CHnCKEN
•
Enable PDMA channel
n
by setting
PDMA_CTLn.CHEN
•
Set source address in
PDMA_SADDRn
•
Set destination address in
PDMA_DADDRn
•
Set the transfer count in
PDMA_TXCNTn
•
Set transfer mode and address increment mode in
PDMA_CTLn.MODESEL
•
Route peripheral PDMA request signal to channel
n
in service selection register.
•
Trigger transfer
PDMA_CTLn.TXEN
If the source or destination address is not in wraparound mode, the PDMA will continue the transfer
until
PDMA_CURTXCNTn
decrements to zero (
PDMA_CURTXCNTn
is initialized to
PDMA_TXCNTn
, in
wraparound mode,
PDMA_CURTXCNTn
will reload and continue until
PDMA_GCTL.CHnCKEN
is disabled). If
an error occurs during the PDMA operation, the channel stops until software clears the error condition
and sets the
PDMA_CTnL.SWRST
bit to reset the PDMA channel. After reset the
PDMA_CTLn.CHEN
and
PDMA_CTLn.TXEN
bits would need to be set to start a new operation.