你(们)好
我拥有TI DSP TMS320F2.8377万S,并且希望将SPI模块与DMA通道一起使用。
DMA通道的配置为:
- 中断已禁用
- OneShot已禁用
- 连续残疾
#定义连拍 1. //连拍大小为2个字(2x 16位) DMACH5BurstConfig (连拍,1.0); //脉冲大小,src步进,目标步进 DMACH5TransferConfig (传输,1,0);//传输大小,src步进, DEST STEP DMACH5ModeConfig (DMA_SPIATX,PERINT_ENABLE,OneShot_DISABLE,CONT_DISABLE, SYNC_DISABLE,SYNC_SRC,OVRFLOW_DISABLE,十六位, Chint_end,CHINT_DISABLE);
DMA通道使用缓冲区,例如256个双字。 连拍大小为2个字。
DMA缓冲区包含某种帧,这些帧的长度并不始终相同。 因此,我在DMA通道每次启动之前计算传输大小。
所以我不会一次处理整个DMA缓冲区。 我只处理帧后的帧。 对于每个帧传输,都将启动新的传输。
我将包装大小设置为(2*256)/2=256,这意味着256次突发后将有一个包装。 这是DMA缓冲区的结束时间。
然后,我将转至后续处理地址。 换行步骤保持在0。
但我的问题是,在每次传输开始时,自动换行计数设置为换行大小(256)。
这也可以在参考手册图4.7 中看到: http://www.ti.com/general/docs/litabsmultiplefilelist.tsp?literatureNumber=spruhx5d
我不知道如何正确设置换行大小或DMA通道以将DMA缓冲区用作循环缓冲区。
此致
Phil