McBSP_I2S通信(2)
ADC与DSP的McBSP之间通过I2S方式通信,实现数据采集。数据采集模块的主要功能是将模拟信号转换为数字信号,送到DSP指定的存储器。
软件设计的具体任务就是是设置ADC的时钟信号,并设置好ADC的采样频率,初始化DSP的McBSP端口和DMA通道,通过McBSP端口将数据传送给DSP,再由DMA将数据送到指定的内存中去。数据采集的软件流程图如下所示,
开始——>配置GPIO——>配置McBSP——>配置DMA——>设置ADC时钟信号和采样频率——>采集数据——>判断采集是否完成——>结束
1、通过引脚复用工具配置GPIO口,引脚复用选择McBSP0模块。如图所示:
即寄存器PINMUX2写0x02222220
2、ADC和DSP进行数据通信,McBSP软件配置过程为:
1)、首先将串行接口接收控制寄存器SPCRI和SPCRZ全部置零复位,接着设置接收数据长度寄存器RCRZ,让其字长为24位,一字一帧。因为ADC工作在主模式,McBSP为从机。所以将位时钟配置成外部输入,即SCLKME和CLKSM均为1,多通道不使能,开启McBSP中断,最后让McBSP工作。
2)、DMA简介:McBSP串口接收的数据需要经DMA发送的指定的内存中,DMA控制器是一种不需要CPU介入,就能将外设数据移动到内存或者将内部数据从一个地方转移到另一个地方的模块。DSP设备在数据处理过程中需要大量的数据转移,这可能是设备之间的,也可能是设备内部的,如果所有的数据转移,特别是数据量大的时候,都占用CPU资源,则CPU的效率是很低的。DMA控制器就是这样一种释放CPU压力,实现数据转移的器件。DMA模块是一个事件触发器,只有通过外部事件才能开启,也向CPU产生中断事件。
3)、我的方案中,ADC的转换字长为24位,DSP对信号的频谱进行分析时,需要采集大量数据,所以需要合理分配DSP的内存空间。6748的RAM空间较大,完全满足系统需求。在DMA传输数据前,首先要配置好cmd文件,合理分配RAM空间。
未完,待续……
感谢小编热心分享技能知识!学习了!