2, 多通道设置例程
多通道应用背景:三个过程板与一个中心处理单元用sport总线相连,数据单向移动,从过程板向中心处理单元传送,传送方式:基于自动缓冲的DMA模式的sport多通道时分复用。
多通道时分复用的时候,sport口寄存器的设置:例如,两个设备,设备1设备2都向设备3发送,采用时分复用的方式主要寄存器设置如下:
基本参数:DSP : blackfin536
SCLK 100MHz
发送端没什么可说的,重点解释下面两个寄存器的设置
设备一:(发送)
*pSPORT1_MCMC1 =0x1000;//设备1窗口大小是16,偏移量是0
*pSPORT1_MCMC2 =MFD_1 |MCMEN;
*pSPORT1_MTCS0 = 0x0000FFFF; 发送通道是16个通道
设备二:(发送)
*pSPORT1_MCMC1 =0x1010;//设备2窗口大小是16,偏移量是16
*pSPORT1_MCMC2 =MFD_1 |MCMEN;
*pSPORT1_MTCS0 = 0x0000FFFF; 发送通道是前16个通道
设备三:接收设备 系统时钟100MHz
*pSPORT0_TCR1 = TCKFE | ITCLK;
*pSPORT0_TCR2 = SLEN_32 ;//| TSFSE; //这里设置字长是32位,可根据需要设定
*pSPORT0_RCR1 = RCKFE | IRFS | IRCLK; //多通道时发送端提供帧同步
*pSPORT0_RCR2 = SLEN_32 ; //这里设置字长是32位,可根据需要设定
*pSPORT0_RCLKDIV = 0x0001; //发送时钟分频,可根据需要设定
*pSPORT0_RFSDIV = 0x03C0; //帧同步分频
*pSPORT0_MCMC1 = 0x3000; //窗口大小是32.就是说每个接收循环接收32个字,窗口偏移是0,就是从0通道开始接收
*pSPORT0_MCMC2 = MFD_1 | MCMEN;
*pSPORT0_MTCS0 = 0x00000000;
*pSPORT0_MTCS1 = 0x00000000;
*pSPORT0_MTCS2 = 0x00000000;
*pSPORT0_MTCS3 = 0x00000000;
*pSPORT0_MRCS0 = 0xFFFFFFFF; 接收通道,32个通道
*pSPORT0_MRCS1 = 0x00000000;
*pSPORT0_MRCS2 = 0x00000000;
*pSPORT0_MRCS3 = 0x00000000;