一,DMA基础
- DMA控制器模块在没有CPU干预的情况下将数据从一个地址传输到另一个地址。本章描述DMA控制器的操作。DMA控制器在MSP430x15x和MSP430x16x设备。
- 译文:直接内存访问(DMA)控制器在整个地址范围内将数据从一个地址传输到另一个地址,而不需要CPU干预。例如,DMA控制器可以将数据从ADC12转换内存移动到RAM。
- 采用DMA控制器可以提高外围模块的吞吐量。
- 它还可以通过允许CPU保持在低功耗模式,而不必唤醒来从外设移动数据来降低系统功耗。
特点
三个独立的传输通道
可配置DMA通道优先级
字节或字和混合字节/字传输能力
可配置的传输触发器选择
单、块或突发块传输模式
二,寄存器设置
DMACTL0, DMA Control Register 0
DMA0 TSELx
DMA触发选择.
0000 DMAREQ bit (software trigger) 0001 TACCR2 CCIFG bit 0010 TBCCR2 CCIFG bit 0011 URXIFG0 (UART/SPI mode), USART0 data received (I2C mode) 0100 UTXIFG0 (UART/SPI mode), USART0 transmit ready (I2C mode) 0101 DAC12_0CTL DAC12IFG bit 0110 ADC12 ADC12IFGx bit 0111 TACCR0 CCIFG bit 1000 TBCCR0 CCIFG bit 1001 URXIFG1 bit 1010 UTXIFG1 bit 1011 Multiplier ready 1100 No action 1101 No action 1110 DMA0IFG bit triggers DMA channel 1 DMA1IFG bit triggers DMA channel 2 DMA2IFG bit triggers DMA channel 0 1111 External trigger DMAE0
DMACTL1, DMA Control Register 1
DMA ONFETCH
DMA在获取
0 DMA传输立即发生
1 DMA传输发生在触发器后的下一个指令获取ROUND ROBIN
这个位启用了轮循DMA通道优先级。
0 DMA通道优先级为DMA0−DMA1−DMA2
1个DMA通道优先级随着每次传输而改变ENNMI
启用敝中断。该位允许通过NMI中断中断DMA传输。当NMI中断DMA传输时,当前的传输正常完成,进一步的传输停止,并设置DMAABORT。
0 NMI中断不中断DMA传输
NMI中断中断DMA传输DMAxCTL, DMA Channel x Control Register
DMADTx
DMA传输模式。