TI工程师:
见谅,由于这个问题在上个帖子没有解决,且上头催的紧,所以我重新开一贴,也把最新实验情况介绍一下。
项目基本情况是这样的:slot大小为16,slot个数为2, 4个mic(a,b和c,d,分成两组)通过2个3106输送数据给dsp mcasp(接收发送通道分别为2个),最后由edma搬运数据。dma ACNT我配置的是8,配置为4无效果。两个3106单独配置时均可正常使用。信号源使用正弦波信号,一次只接通一个mic。
数据大小为16位:此时只能接收到一个3106(1)传过来的数据,但是数据排列顺序不对,不是理论中的LLRR的类型(见图1) ,而且用示波器测量另一3106(2)数据输出通道时有非噪声外的数据,而dsp寄存器中则没有正弦波数据(见图2)。接收通道都硬件断开过,那时dsp只能接收到0.
图1 这是3106(1)的数据
图2 这是3106(2)的数据
数据大小改为32位,slot大小也改为32,个数不变:此时3106(2)中数据可以读取到了,也是正确的,但接收到3106(1)的数据又不是正弦波数据,是无规律的数据,幅值跟正弦波数据差不多。见下图
这是3106(2)的数据
这是3106(1)的数据
请问一下这到底是什么原因导致的?
Tony Tang:
user5054519 数据大小改为32位,slot大小也改为32,个数不变:此时3106(2)中数据可以读取到了,也是正确的,
McASP, McBSP的数据只能按32bit访问。也就是说小于32bit的数据也是占32bit宽,不会两个16bit的数据合成一个32bit的数。
user5054519:
回复 Tony Tang:
有点不明白这跟接收不到正弦波信号没有关系吧
Tony Tang:
回复 user5054519:
可能跟你的DMA的配置有关系。
user5054519:
回复 Tony Tang:
我这个是用宏定义的,slot大小和数据大小的改变,dma中acnt会相应的变化的。而且mcasp单通道接收到多通道接收,dma配置也只需要改变acnt的吧