总结一些调试的心得,ES7243

嵌入式Linux

共 1977字,需浏览 4分钟

 ·

2021-11-15 16:58

这两天在调试一个与语音ADC芯片,也遇到了一些问题,到目前位置也解决了问题,所以想说一下嵌入式调试的一些心得,如果大家在调试设备的时候遇到问题,可以回头来看看这篇文章,可能会得到一些启发。


我调试的系统架构




硬件方案如上图


我们一共可以采集到10ch音频数据,其中有两路是最后的ES7243E给出来的,然后最后送给CPU的是最前面的那个ES7210.


CPU给ES7243E提供MCLK,但是另外两个ES7210芯片的时钟是由ES7243ET提供的。


音频调试就必须提到ALSA,ALSA就必须提到三个很重要的东西。



像应用用到的很多接口,都是由alsa接口提供的。





现在说下我遇到的问题

第一个问题,我通过录音命令可以录取到两个7210芯片上面的麦克风数据,但是录取不到ES7243E上面的两个麦克风的数据。

1、排查寄存器

这个是最重要的,如果寄存器设置的模式不正确,那么工作就不可能正常。上面的图中可以看到,7210的时钟是由7243E提供的,所以7243E需要设置成master模式。

2、测量时钟

这个是最关键的,音频调试,需要测量MCLK、LRCK、BCLK。

3、电源测量,这个时候比较次要了

然后经过各种调试,在顺芯的FAE王工的指导下,发现是LRCK不正确的原因,而且因为设置的寄存器相差一个bit位,我们用示波器看到的时钟是15.99K,实际需要的是16K。当时还怀疑示波器的问题。

那个关键的寄存器如下:


这里寄存器的解释,如果设置为0,那么时钟就会从MCLK除以1,如果是4095,那么BCLK = MCLK 除以 4096。

我的MCLK = 12288000HZ
我的BCLK = 16000HZ  采样

那么我就需要设置这个寄存器位 

寄存器的值是 12288000 除以 16000 = 768

然后寄存器设置的话,我就需要设置成  768 - 1 = 0x2FF

寄存器设置正常后,可以看到LRCK非常稳定在16K。

并且,之前看到的,BCLK和LRCK下降沿不对齐的情况也没有出现了。

正确的波形如下:(两个时钟的下降沿可以正确对齐)







第二个问题

我们录音的时候,使用12ch来录音,但是录取到的音频发现有时候物理麦克风1的音频在通道1上,有时候在通道6上。

我们使用的TDM录音格式如下:



这是一个非常典型的录音格式,我们平时用的声道只有两个,所以在LRCK低电平的时候传左声道,LRCK在高电平的时候传右声道。

TDM格式可以允许在LRCK上传输多个声道。

正常的时候,我们录取的音频如下


出问题的时候,我们的录取音频如下:


也就是LR音频变成了RL的音频


因为这个问题,我用示波器看了TDM格式的音频,7243E上的其中一个麦克风录取正弦波1K信号的时候波形如下:


检查这个的原因是想确认下,在传输过程中,每个ADC芯片的输出在LRCK的位置是不是正确的。

然后,确认了一遍后确定没有问题。

之后是和同事讨论后,问题出现在每次录音的时候,可能ADC的状态不一致导致。

然后我们抓取了ADC录音的LRCK和BCLK的波形。

正常情况下:


另一种情况:


上面两张图能说明的问题是,在每次开始录音的时候,LRCK的电平跳变是不同的。

然后我们检查电路,发现电路是没有上拉电阻在LRCK上的。

然后检查寄存器,发现寄存器有配置上拉电阻的情况,而且已经配置上了。

最后就是在不断测试和验证上下功夫,shutdown的时候,关闭掉ADC的使能,startup后,用work来使能寄存器让ADC正常工作。

研究发现如果不是代码设置,用i2ctool设置还可能因为时序问题还会出现偶发的上述问题。

在不断的测试后,才找到正确的情况,用示波器抓的开始信号也一直是正常的。





整理的不是十分充分,在调试通信问题上,最好还是以波形为主,不要着急,但是也要想清楚原理。

而且在第一个问题的解决上,我觉得还是有疑问

时钟是由7243E提供的,7243E录音出现问题,那为什么另外两颗7210录音正常?

我只能说7210对时钟的要求不是那么严格了。

第二个问题

TDM格式已经说明高电平传的是偶数通道数音频,为什么还可能出现乱序,我这里只能猜测是音频平台部分的cpu dai软件部分处理的不够完美。

即使在开始部分有异常,但是只要保证高低电平差异,我认为TDM都应该要处理正确。

好了,就这些,欢迎大家评论讨论~




推荐阅读:

专辑|Linux文章汇总
专辑|程序人生
专辑|C语言
我的知识小密圈

关注公众号,后台回复「1024」获取学习资料网盘链接。

欢迎点赞,关注,转发,在看,您的每一次鼓励,我都将铭记于心~
浏览 260
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报