ADuCM360的DMA
ADuCM360的DMA,有12个专用通道,每个外设均有自己的可编程优先级的DMA通道,这样对数据交换提供了很大的方便。
DMA根据目的寄存器(存储器)的特点,可以灵活使用字节、半字、字的传输宽度。
DMA控制器支持外设至存储器、存储器至外设、存储器至存储器的数据传输。当处理器与DMA有相同的目的地址时,处理器将暂停一些对系统总线的控制周期。每一通道有各自的中断控制
DMA通道的优先级,由通道号及优先等级决定,每个通道都可以由DMAPRISET寄存器设置为约定优先级及高优先级。同一优先级,通道号越低,优先级越高。
. DMA Channel Assignment
Channel | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| SINC2 output/step detection |
DMA通道控制数据结构,每通道都有原始数据结构及交替数据结构。对于简单传输模式及复合数据传输模式 ,均可使用原始的及交替数据结构。每个数据结构在内在中占居4 x 32bit存储空间,
. Channel Control Data Structure
Offset | | |
| | |
| | |
| | Control data configuration |
| | |
控制数据配置:
在CHNL_CFG寄存器中,可对DMA传输时的一些参数进行设置。如源及目的地址的增量、数据大小、控制数据结构、传输类型等
DMA传输类型
CHNL_CFG寄存器的最低三个决定传输类型。
1、无效型 (CHNL_CFG[2:0] = 000)。代表DMA通道没有允许。如果DMA传输结束后,就会置通道无效,以阻止重复相同的传输。
2、基本型(CHNL_ CFG[2:0] = 001)。DMA控制器可以配置为原始数据结构及交替数据结构。
3、自动请求型(CHNL_CFG[2:0] = 010)。它对控制器收到单一的请求时使用,对于象存储器拷贝时特别有用。它不用于外围的DMA传输。
4、乒乓传输(Ping-Pong (CHNL_CFG[2:0] = 011))。乒乓传输时,控制器使用一种数据结构传输,然后切换到另一种数据结构。这种类型很适用于外围到不同缓冲区的内存中。
5、存储器分散收集型(Memory Scatter-Gather (CHNL_CFG[2:0] =100 or 101))。这种类型,控制器必须设置成使用两种(primary andalternate data structures)数据结构。
6、外围分散收集型(Peripheral Scatter-Gather (CHNL_CFG[2:0] = 110 or 111))
地址计算
DMA控制器计算源地址,是基于SRC_END_PTR内容、源地址增量设置CHNL_CFG,及N_MINUS_1 (CHNL_CFG[13:4])的当前值。
同样地,目的地址的计算是基于DST_END_PTR的内容、目的地址增量CHNL_CFG以及N_MINUS_1 (CHNL_CFG[13:4])的当前值。
源地址 = SRC_END_PTR −(N_MINUS_1 << (SRC_INC))
--- SRC_INC = 0,1, 2时
源地址 = SRC_END_PTR
---- SRC_INC = 3时
目的地址 = DST_END_PTR −(N_MINUS_1 << (DST_INC))
--- DST_INC = 0, 1, 2时
目的地址 = DST_END_PTR
---- DST_INC = 3时
DMA寄存器及其配置
略
[
本帖最后由 dontium 于 2013-5-24 16:23 编辑 ]