
2. Configure channel 1 in the DMA, including enabling the channel.
3. Configure a timer for the desired trigger interval.
4. Write 0xC5 to CHCFG1.
The following code example illustrates steps 1 and 4 above:
void DMAMUX_Init(uint8_t DMA_CH, uint8_t DMAMUX_SOURCE)
{
DMAMUX_0.CHCFG[DMA_CH].B.SOURCE = DMAMUX_SOURCE;
DMAMUX_0.CHCFG[DMA_CH].B.ENBL = 1;
DMAMUX_0.CHCFG[DMA_CH].B.TRIG = 1;
}
To enable a source, without periodic triggering:
1. Determine with which DMA channel the source will be associated. Note that only the
first 2 DMA channels have periodic triggering capability.
2. Clear the CHCFG[ENBL] and CHCFG[TRIG] fields of the DMA channel.
3. Ensure that the DMA channel is properly configured in the DMA. The DMA channel
may be enabled at this point.
4. Select the source to be routed to the DMA channel. Write to the corresponding
CHCFG register, ensuring that CHCFG[ENBL] is set while CHCFG[TRIG] is
cleared.
NOTE
The following is an example. See the chip configuration details
for the number of this device's DMA channels that have
triggering capability.
To configure source #5 transmit for use with DMA channel 1, with no periodic triggering
capability:
1. Write 0x00 to CHCFG1.
2. Configure channel 1 in the DMA, including enabling the channel.
3. Write 0x85 to CHCFG1.
The following code example illustrates steps 1 and 3 above:
In File registers.h:
#define DMAMUX_BASE_ADDR 0x40021000/* Example only ! */
/* Following example assumes char is 8-bits */
volatile unsigned char *CHCFG0 = (volatile unsigned char *) (DMAMUX_BA0x0000);
volatile unsigned char *CHCFG1 = (volatile unsigned char *) (DMAMUX_BA0x0001);
volatile unsigned char *CHCFG2 = (volatile unsigned char *) (DMAMUX_BA0x0002);
volatile unsigned char *CHCFG3 = (volatile unsigned char *) (DMAMUX_BA0x0003);
volatile unsigned char *CHCFG4 = (volatile unsigned char *) (DMAMUX_BA0x0004);
volatile unsigned char *CHCFG5 = (volatile unsigned char *) (DMAMUX_BA0x0005);
volatile unsigned char *CHCFG6 = (volatile unsigned char *) (DMAMUX_BA0x0006);
volatile unsigned char *CHCFG7 = (volatile unsigned char *) (DMAMUX_BA0x0007);
volatile unsigned char *CHCFG8 = (volatile unsigned char *) (DMAMUX_BA0x0008);
volatile unsigned char *CHCFG9 = (volatile unsigned char *) (DMAMUX_BA0x0009);
volatile unsigned char *CHCFG10= (volatile unsigned char *) (DMAMUX_BA0x000A);
volatile unsigned char *CHCFG11= (volatile unsigned char *) (DMAMUX_BA0x000B);
volatile unsigned char *CHCFG12= (volatile unsigned char *) (DMAMUX_BA0x000C);
volatile unsigned char *CHCFG13= (volatile unsigned char *) (DMAMUX_BA0x000D);
Initialization/application information
MKW01Z128 MCU Reference Manual, Rev. 3, 04/2016
314
Freescale Semiconductor, Inc.
Summary of Contents for MKW01Z128
Page 7: ...MKW01xxRM Reference Manual Rev 3 04 2016 viii Freescale Semiconductor Inc...
Page 11: ...MKW01xxRM Reference Manual Rev 3 04 2016 xii Freescale Semiconductor Inc...
Page 133: ...MKW01Z128 MCU Reference Manual Rev 3 04 2016 2 Freescale Semiconductor Inc...
Page 233: ...Module clocks MKW01Z128 MCU Reference Manual Rev 3 04 2016 102 Freescale Semiconductor Inc...
Page 513: ...Interrupts MKW01Z128 MCU Reference Manual Rev 3 04 2016 382 Freescale Semiconductor Inc...
Page 633: ...CMP Trigger Mode MKW01Z128 MCU Reference Manual Rev 3 04 2016 502 Freescale Semiconductor Inc...