Yuhang Zheng
wm8960修改MCLK时钟

问题出现的背景:

最近两天遇到了一个iMX6的项目定制WM8960音频芯片播放声音出现砰砰声的问题。

此问题出现在客户的批量产品上,一共检验280台,喇叭噪音大的有10多台,噪音小的有50多台。砰砰声比较大的板子更换音频芯片后测试正常,但换下来的音频芯片在公司自己的6Q-C底板上面无杂音。

前期判断:

以上述信息来看的话,就是这个现象不是必出的,而且和硬件有一定的关联性,由于客户定制做好的板子比较多,单靠硬件去排查解决的话不现实,还是希望能在软件上通过一些手段将这个问题解决或者规避掉。

因为自己对音频这块不是很熟悉,完全不知道如何下手。

刚开始排查的时候,同事提醒有可能是音频芯片的DAPM部分的问题,所谓DAPM,也就是Dynamic Audio Power Management动态音频电源管理,就是通过音频使用过程中用户所使用的音频路径bybass,动态控制路径上的门开关来实现诸如如果使用MIC录音,Speaker放音的时候,就关闭掉Line in通道的输入和HeadPhone放音的路径。这样才来实现节能的功能。

初期猜想是DAPM控制的时候,有一些控制没有做好,导致客户的定制版使用speaker放音的时候,别的通路开关串进去了杂音信号。

因为在6Q-C的Linux4.1.15的系统上测试speaker也有轻微可以接受的砰砰声,而3.0.35系统上没有。李哥说这两个系统的区别就是当时调Linux3.0.35的音频的时候关掉了DAPM的功能,所以理所当然的想到如果把Linux4.1.15系统上音频的DAPM也关掉。

音频的IIS引脚的理解

来个音频部分的名词解释:

SSI (Synchronous Serial Interface) 同步串行接口
IIS (IntegrateInterfaceofSound) 集成音频接口
PCM (Pulse-code modulation) 脉冲编码调制
Codec 编解码器
DAPM (Dynamic Audio Power Management) 动态音频电源管理
DAI (Digital Audio Interfaces) 数字音频接口
mfd (Multifunction device) 多功能设备
LDO (low dropout regulator) 低压差线性稳压器


飞凌imx6平台中,Codec与SOC连接部分,是使用SOC的 SSI 接口用作 IIS 功能,以下分别是IIS的引脚名称

AUD3_TXFS 发送帧同步
AUD3_TXC 发送时钟
AUD3_RXD 发送
AUD3_TXD 接收
AUD_MCLK 外部24M时钟

相对应的Codec的引脚为

DACLRC 数字转模拟左右声道时钟
BCLK Bit Clock 位时钟
ADCDAT 模拟转数字数据
DACDAT 数字转模拟数据
MCLK 外部24M时钟

104x的emmc和SD启动的电平问题

问题描述:

对于ls104x的核心板,其支持两种启动方式,一种是Qspi启动,一种是emmc启动,然后根据客户实际使用需求拓展出了SD卡启动的方式。但实际上,SD卡启动的原理是插入SD卡之后,直接将SOC上的emmc引脚引到SD卡上,直接抢掉了emmc的引脚。

这样做的问题是,由于SD卡的引脚电平为3.3v,emmc的引脚电平是1.8v,所以如果我们将SD卡和emmc启动的镜像使用同一个,按照SD卡的电平来进行设置的的时候,在emmc启动的时候,给emmc的芯片的电压就是3.3v,会使其更容易损坏,emmc输出的引脚电平为1.8v,会被SOC使用3.3v电平域读取的时候误将高电平信号读成低电平信号,导致emmc无法启动或者出现其他不稳定的现象。

所以,我们需要寻找一个新的解决方法。

已知启动顺序:

QSPI启动时,硬件最早介入1.8v——>RCW介入变成3.3v——>uboot的emmc驱动介入(mmc rescan的时候)——>内核驱动介入1.8v

此过程的uboot是由emmc默认配置读入到RAM的

emmc启动时,硬件最早介入1.8v——>RCW介入变成3.3v——>SPL阶段uboot的emmc驱动介入——>内核驱动介入1.8v

此过程的uboot是由SPL中uboot的emmc驱动配置读入到RAM的。

再见,过去的2020年

现在是2021年1月4日的10:06,新年上班后的第一天,上午又是不在状态的摸鱼划水,正好也没有太要紧的工作去完成,就简单的随便写点东西吧。

过去的2020年,发生了太多太多的事情,是人生中记忆深刻的一年,可能也是会写进历史的一年。

2017年毕业之后接近四年的时间,一直都是庸碌平凡,一份简单的工作,三点一线的时光。唯独刚刚过去的2020年,却在这重复的时光之外,又悄悄地将生活从熟悉的模样中改变了好多。一切似乎没变,又似乎剧变。

今年疫情来了,大家都没办法再热热闹闹的出去玩;家门口新开的万达开业即遭遇寒冬,也很难再看到开业时候熙熙攘攘热闹的样子;河大的小吃街被推了,虽然那不是记忆中经常光顾之地,也不跟河大的学生一样在那留下什么青春记忆,但是心里总是感觉少了点什么;五月份订婚,十月份结婚,从此终于不再是一个人,有了小家,也有了老家;九月份陪着珊珊找工作考教编,每天晚上八点半骑着小电车回家,凉飕飕的秋晚中后座上带着她心里确是满满的幸福和憧憬;九月底买了小车车,丰田奕泽也算是一眼欢喜带它回家,从此家里有了一个笨笨大大的铁朋友,从此月夜晨光,风雨共赏,冷暖兼程;十二月老妈被车撞了一下,至今仍在修养,从健步如飞到步履蹒跚,最近还要去再检查脑袋里面的积液是否需要做个手术,不知道是不是再也难回到记忆中的从前;

记忆中熟悉的生活在逐渐老去,有新的未来在逐渐的盛开发芽。旧的世界崩离,新的世界才能够建立,只是在这正在崩离的世界中,也有太多的美好的东西随时光逝去;在这新建立的世界中,鬼魅,不堪和混乱也伴随着出现并糅杂在未来的时光中。我们要做的,也不过认真的同每一份正在失去的美好认真告别,然后在新世界建立的过程中,努力的驱赶着黑暗再将那其中诞生的珍贵的美好的东西拾捡出来,当成坚持未来成长的信仰,继续前进下去。

2020也已经过去,2021尚在发生,新的一年继承了去年的所有糟糕的事情,大家却也在怀着憧憬希望扭转未来。认真的过好当下,热爱并且相信着明天,每一个发生在身边的事情,都是对成长的邀请。

祝愿,安好。