使用TLV320AIC23B这个音频codec遇到的一个让人哭笑不得的坑!!!

     如果有问题,请加QQ群 891339868 进行交流

    前一段时间将TMS320VC5509A这个DSP通过I2S接口接到NUC972上模拟成一个音频codec成功后,就将TMS320VC5509A的MCBSP1接口接了一个TLV320AIC23B这个音频codec做数据采集和播放,再通过MCBSP2接口和NUC972进行音频数据的交互,具体的录音流程是:

TLV320AIC23B ------5509A_MCBSP1-----5509A_MCBSP2-------NUC972

放音流程正好相反:

NUC972-------5509A_MCBSP2-------5509A_MCBSP1--------TLV320AIC23

在这个过程中,DSP5509A的MCBSP1和MCBSP2都作为从设备,分别从TLV320AIC23B和NUC972接收时钟信号,将两个音频的采样率都设置为8Khz,刚开始没有特别注意,音频很正常,但是经过长时间的测试发现一个很奇怪的现象,同样的采样率,NUC972发送给DSP5509A的数据会慢慢的比DSP5509A发送给TLV320AIC23B的数据多,而且会越来越多,而且具有周期性,这个问题难为了我好长时间,怀疑硬件设计的问题,等等等等,都没有解决问题,突然有一天,在TLV320AIC23B的技术手册上看到了下面一句话,顿悟了!第一感觉就是TI太坑爹了!如下图所示:

是不是很坑爹?当使用12M晶振时,不能产生精确的8k、44.1k、88.2k的采样率!!!这也太让人郁闷了,而且字写得那么小!我正好使用的是12M晶振,正好设置的是8k的采样率,所以怎么坑爹的事情就被我遇到了。根据测试结果,我猜测设置成8k的采样率,而实际的采样率要比8k低,根据这个猜测,将采样率设置成8.021k,运行后发现,DSP5509A发送给TLV320AIC23的数据会慢慢的比NUC972发送给DSP5509A的数据要多,这样就解释了上面的问题。TLV320AIC23B对使用主时钟与采样率设置有详细的说明,首先是USB模式,也就是主频率是12M的模式,如下图所示:

其次是正常模式:

由图上可以看出来,如果想产生精确的8k的采样率,只能使用正常模式,不能使用USB模式,而且主时钟频率只能是12.288M和18.432M,使用TLV320AIC23B,而且使用它的时钟(如果不使用它的时钟,可以忽略)的小伙伴,一定要注意了,最后,还是忍不住再说一句:实在是太坑爹了!!!

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值