English
Language : 

PXN20RM Datasheet, PDF (518/1376 Pages) Freescale Semiconductor, Inc – PXN20 Microcontroller
DMA Channel Multiplexer (DMA_MUX)
4. Select the source to be routed to the DMA channel. Write to the corresponding CHCONFIG
register, ensuring that the ENBL is set and the TRIG bit is cleared.
Example 23-2. Configure DSPI_B Transmit for use with DMA Channel 2, with no periodic triggering
capability.
1. Write 0x00 to CHCONFIG2 (base address + 0x02).
2. Configure channel 2 in the DMA, including enabling the channel.
3. Write 0x93 to CHCONFIG2 (base address + 0x02).
The following code example illustrates steps #1 and #3 above:
In File registers.h:
#define DMAMUX_BASE_ADDR
0xFFFDC000/* Base addr for PXN20 */
/* Following example assumes char is 8-bits */
volatile unsigned char *CHCONFIG0 = (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x0000);
volatile unsigned char *CHCONFIG1 = (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x0001);
volatile unsigned char *CHCONFIG2 = (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x0002);
volatile unsigned char *CHCONFIG3 = (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x0003);
volatile unsigned char *CHCONFIG4 = (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x0004);
volatile unsigned char *CHCONFIG5 = (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x0005);
volatile unsigned char *CHCONFIG6 = (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x0006);
volatile unsigned char *CHCONFIG7 = (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x0007);
volatile unsigned char *CHCONFIG8 = (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x0008);
volatile unsigned char *CHCONFIG9 = (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x0009);
volatile unsigned char *CHCONFIG10= (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x000A);
volatile unsigned char *CHCONFIG11= (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x000B);
volatile unsigned char *CHCONFIG12= (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x000C);
volatile unsigned char *CHCONFIG13= (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x000D);
volatile unsigned char *CHCONFIG14= (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x000E);
volatile unsigned char *CHCONFIG15= (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x000F);
volatile unsigned char *CHCONFIG16= (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x0010);
volatile unsigned char *CHCONFIG17= (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x0011);
volatile unsigned char *CHCONFIG18= (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x0012);
volatile unsigned char *CHCONFIG19= (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x0013);
volatile unsigned char *CHCONFIG20= (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x0014);
volatile unsigned char *CHCONFIG21= (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x0015);
volatile unsigned char *CHCONFIG22= (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x0016);
volatile unsigned char *CHCONFIG23= (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x0017);
volatile unsigned char *CHCONFIG24= (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x0018);
volatile unsigned char *CHCONFIG25= (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x0019);
volatile unsigned char *CHCONFIG26= (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x001A);
volatile unsigned char *CHCONFIG27= (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x001B);
volatile unsigned char *CHCONFIG28= (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x001C);
volatile unsigned char *CHCONFIG29= (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x001D);
volatile unsigned char *CHCONFIG30= (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x001E);
volatile unsigned char *CHCONFIG31= (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x001F);
In File main.c:
#include “registers.h”
:
:
*CHCONFIG2 = 0x00;
*CHCONFIG2 = 0x93;
23-14
PXN20 Microcontroller Reference Manual, Rev. 1
Freescale Semiconductor