环境背景介绍:
使用mcasp 进行音频数据传输, 使用16个通道时序;
mcasp 时钟与帧同步信号由外面输入,
问题:
机器上电或者运行一段时间,使用示波器抓取信号,发现所有通道TX的数据与对应的FS 相比,均前偏了一个通道(8bit)(也有出现前偏两个通道);
最终导致只能接收声音,不能传输声音数据。
Jian Zhou:
也就是说播放声音不正常?
问下用的是Linux SDK么?
wenfeng lin:
回复 Jian Zhou:
是播放声音不正常,TX异常。
使用的是 linux-3.2.0-psp05.06.00.00
Jian Zhou:
回复 wenfeng lin:
在我们TI的demo板上MCASP播放声音是正常的啊,您有改过驱动么?
wenfeng lin:
回复 Jian Zhou:
有改过驱动,但是改的不多。主要是修改一些寄存器的值。
另外一个问题请教一下
/* wait for TX ready */ cnt = 0; while (!(mcasp_get_reg(dev->base + DAVINCI_MCASP_XRSRCTL_REG(offset)) & TXSTATE) && (cnt < 100000)) cnt++; mcasp_set_reg(dev->base + DAVINCI_MCASP_TXBUF_REG, 0);
问题: 这里如果没有等待TX ready 便设置寄存器DAVINCI_MCASP_TXBUF_REG, 会有什么影响???
谢谢!