Hi,
我想把OMAPL137的官网例程aic3106修改成McASP为 burst模式,aic3106为DSP模式,中断的方式读取和放出音频数据,slot大小为32bit,word大小为16bit,这样一个FS内可以采集和放出左右两个通道的数据,做了以下的修改,其他都没变,现在发现放出声音的话可以两通道分别放,但是从麦克采集的数据是有问题的,不知道哪里设置错了。请大家指教。
aic3106只修改了这里:EVMC6747_AIC3106_rset( 9, 0x40 ); // 9 Audio Interface Control B <- [DSP mode][16 bit]
McASP只修改了这里:
mcasp->regs->XFMT = 0x000080F8; // MSB 16bit, 0-delay, no pad, CFGBus
mcasp->regs->AFSXCTL = 0x00000002; // burst, Rising, INTERNAL FS, Single bit
mcasp->regs->ACLKXCTL = 0x000000AF; // ASYNC, Rising INTERNAL CLK, div-by-16
mcasp->regs->AHCLKXCTL = 0x00000000; // EXT CLK
mcasp->regs->XTDM = 0x00000001; // slot 0
mcasp->regs->XINTCTL = 0x00000020; // interrupt on transmit
mcasp->regs->XCLKCHK = 0x00000000;
这里感觉时钟源是内部还是外部应该不需要改动吧?引脚是输入和输出应该也不用改动吧?得到的结果很不规律,之前用例程I2S方式得到的数据就是很好的正弦波。多谢指教!