DMA(Direct Memory Access)直接储存器访问
dsPIC33F DMA子系统使用双端口SRAM储存器(DPSRAM)和寄存器结构,这种架构无需进行周期挪用。
周期挪用的意思就是(也叫周期窃取)当CPU和DMA都需要访问储存器时,DMA优先级高于CPU,会使CPU暂停。当CPU正在访问储存器时,DMA则需等待CPU处理完再进入。按手册的说法,这710就是没有周期挪用的。
DMA也需要触发,可以用定时器和外部中断进行触发,我们一般习惯用定时器,每个DMA通道都是单向的,要进行读写操作的话,必须分配两个DMA通道。共有8个独立通道,都可以设置成发送或者接收但是都必须为单向。通道也有传输优先级。
只有外部中断0、Timer2和Timer3可以选择用于产生DMA请求
传输数据长度在DMAxCON寄存器的SIZE位中指定。
SMPI<3:0>位(ADxCON2<5:2>)用来选择DMA RAM缓冲区指针递增的频率。
ADDMABM位(ADxCON1<12>)决定转换结果填充到DMA RAM的方式,置1为顺序写入。
置0为分散。