前话:
之前使用方糖播放音乐时总感觉音质太差,就想着能否改装到音响上,3.5mm耳机孔输出或是蓝牙、FM发送出去。
在网上找了一大圈,也没有符合我要求的,只有将i2s接出来解码输出的,所以自己花了半天时间将协议分析了下。
第一步: 外壳拆解
拆解详情可以搜索百度,好多教程。不同于天猫X1,方糖的外壳是一体的,前面板拆下来后很难再恢复回去,我拆解的魔岩灰。
第二步:确定引脚定义
新版的方糖音频解码使用的是AM82884F,网上找不到资料,猜测是定制芯片,这个芯片的作用是i2s解码+功率放大。
这里需要知道的是i2s引脚和参数控制脚,因为没有datasheet,引脚确定费了点时间,如下定义:
音频数据引脚(iis):
- 串行时钟SCLK(BCLK),在每个边缘传送一位数据;
- 帧时钟LRCK(WS),用于切换左右声道的数据。‘1’表示传输右声道数据,为“0”则是左声道;
- 串行数据SDATA,音频数据。
芯片参数控制引脚(iic):
用来设置功放芯片的参数,比如音量、休眠、音效等。 AM82884使用的是iic串行协议,详细请百度。
- SDA :串行数据线
- SCL :串行时钟
第三步:音频数据 iis分析
飞线,测试...
从下图采集到的数据可以看出
1.主控芯片输出的音频数据是左右两个声道的,
2.采样率是48kHz,属于什么档次的音质,我也不太清楚。
第四步:控制数据 iic分析
分析这个数据主要想得到mcu发出来的音量控制指令,看看后续改装是否可以通过原有语音功能调节音量大小。
1.首先我尝试操作音量, 静音、从0调到100,截获波形:
可以看出芯片地址是0x30, 音量寄存器是0x03,后面紧跟着1byte的音量值(0x3E 对应音量56%)。
2.然后喊出指令“天猫精灵” “放首歌”,截获以下数据。
每次天猫精灵开始播放声音时,都要发送 02 00指令,播放完都发送02 7f指令。
猜测0x02寄存器是控制芯片休眠之类的指令。
3.测试上电时的初始化芯片指令
这部分真的想吐槽写下这段代码的兄台,首先初始化指令操作了2遍,每遍里面还重复者大量的类似指令(猜测是EQ模式),
我一共截取了500多条指令,我没见过哪个芯片需要重复设置这么多次,不过还是希望是我的错判,
我相信阿里的工程师都应该是很厉害的!
总结下
根据这次拆解,总结一下有用信息:
1.芯片引脚定义ok,见上图;
2.iis数据是两个声道的;
3.iis传输音频数据的采样率是48khz;
4.iic的通讯速率是100k;
5.信号高电平电压是1.8V;
6.可以通过iic接口获取到音量等控制指令;
附:音量大小对应的数据表:
下一篇将介绍怎么进行实际改装,接下来几天需要设计一块小板。
什么时候出改装篇,辛苦大神
后面有章节介绍改装的,而且开发资料也开源了。
你好宫师傅。长按中间按键切换模式屏幕会闪一下,但是PCM5102还是没电,状态没变。
长按中间按键切换模式后会上一下电,接着就又关掉了,我有另一块板,没焊PCM5102,长按中间按键切换模式后量PCM5102供电电容有电,但一直在下降,Q1,Q2 G级也保持高电平。
怀疑是硬件问题,你留个微信,我加你下
好的搜:“wb1138552356”就能加我了
宫师傅好,我手艺不太行,改了两个方糖,一个老版一个新版,怎么每个aux都是杂音严重,用的漆包线,用手触摸bck线稍微清晰点,触摸另外两根声音消失…望指点一下,谢谢你了,我微信18603060506
宫师傅晚上好!我的微信15585558808有事请教
能否改装一下,付费
现在都是单声道了,没改的价值了