|
周末分享一下上周的一个实际案例。
大概情况: 客户要求用炬力音频数传双模的ATS2825蓝牙芯片3天搞定完成demo。以前一直用TI的5717,接单之前没有任何资料和经验。
依照时间进程大概步骤是如下:
1. 第一天索要客户端样板电路板。pcb图,原理图(PDF)。同步有一台可正常工作的wifi音箱样板电路。
2. 分析现有样板电路设计缺陷。 同步使用开发板飞线方式完成电路硬件修正。
上午安排软件工程师,尝试用5717的时序,驱动NTP8230,没有是声音出来。
之后,使用wifi音箱主板的i2c初始化流程,ATS2825的EVB开发板上提供I2S,随机的有声音出来。
晚上加班确认。可能是初始化的问题。采用logic8,多次抓取wifi音箱的相关通道波形。由于没有实际原理图,经过大概3个多小时的不同测试点波形的分析对比。初步确定了,正确初始化时序,及初始化参过程
软件上初步确认,必须先reset一段时间后,才能走I2c初始化配置时序,之后必须延时一段时间再输出i2S数据
经过几次硬件修正。每次都能可靠有声音出来但是有间断喀喇声,上电有瞬态大电流及怪声出来。 分析,I2s数据流没问题,应该还是是初始化问题。
持续到晚上2点
3. 第二天,软件工程师依据正确波形。重建初始化参数表。尝试使用ATS2825,来做初始化,尝试脱开wifi板独立完成功放初始化。 不成功。
硬件工程师分析对比2个电路的差异特性。由于没有wifi版本的原理图和pcb图。采用最原始的抄板对比法,用扫描仪扫描wifi板,由于是4层板。花费了一上午确定,功放部分的差一点,就只是在mclk上。wifi板使用的是有源晶振。而蓝牙版本,使用的是模组输出的mclk
下午。软件工程师依据重建的初始化参数表,能正确初始化功放。但是最讨厌的,上电瞬态大电流及怪声一直无法解决。
随后,软件硬件配合做了如下实验:
a. 使用wifi箱体上的板,使用其i2S+MCLK,使用EVB板上I2C初始化,上电时无噪声
b. 使用wifi箱体上的板,使用其I2C初始化,使用EVB板I2S+MCLK,EVB板上电时有噪声。
c. 使用wifi箱体上的板,使用其MCLK,使用其I2C初始化,使用EVB板上的I2S信号,上电时无噪声,但是音乐中间一直处于有噪声状态,比较小的间断咔咔声(间断间隔大约1~3s不等)
d 单独供MCLK,加上I2C初始化流程。无噪声
e. 使用一个EVB板提供MCLK,先上电,再用另外一个EVB板提供I2c+I2s信号驱动功放,无启动噪声。电流平顺
f 软件匹配测试流程:先维持RST低电平,同时用mos将BCK,LRC信号强制拉到低电平,待初始化完成后再释放。依旧有噪声。
g. 软件匹配测试: 先维持RST低电平,用与非门模式将mclk强制拉底,同时屏蔽i2s数据输出。i2c初始化完成后,再提供mclk信号,之后再提供BCK及LRC信号。无启动噪声。电流平顺
测试发现不同码流的音乐切换时会有间断的声音。
h. 使用有源晶振提供mclk。无启动噪声。电流平顺,但是不同采样率的音乐播放时会有噪声。明显的采样率不匹配的状态。
持续到晚上3点。
4 第三天。上午开会对前面测试做总结。确定如下几点:
芯片内部肯定有一个时钟系统。我们蓝牙芯片上电初期初始化时序达到10ms,所有IO输出的浮空的高电平。在上电完成到初始化起始点这段时间,会产生mclk不匹配的情况。导致瞬态大电流及怪声音。
如果使用内部时钟,完成初始化,后期切换时钟时会产生喀喇声。
如果使用外部晶振,不同采样率音频播放会产生不同的播放效果,采样率差频噪声。
如果使用蓝牙芯片的mlck,初始化,播放都没问题。但是在不同采样率音乐切换到过程中依旧会产生喀喇声。
结论,所有问题都是有mclk导致。必须使用外部晶振。蓝牙芯片,必须对音频数据做重采样处理,以达到输出采样率和外部晶振匹配的效果。
随后,开始分工。硬件先准备软件工程师必须的硬件环境。修正客户原理图错误。
依据修正后原理图,在客户样板上焊接3套的demo板。
软件工程师开始痛苦的算法编写过程。期间艰辛掠过。
晚上2点,软件工程师完成了算法测试。无启动噪声。电流平顺,不同采样率播放正常。硬件3套demo只有一套能正常工作。
5. 第四天上午,客户到公司,初步认可效果,但是与客户需求还有差异。
软硬件工程师,继续完成未完成工作。
业务开始与商务交涉,主要是拖延时间,客户也基本认可我们的努力,愿意在公司现场等待调试结果。之后就是工程师苦逼的干活,业务苦逼的陪客户喝茶喝酒。
下午4点多。客户测试基本达到要求。带样板离开。工程师回家,休息到周一再上班。
总结:
团体配合非常重要。经验非常重要。熟练,有效使用工具非常重要。各类元器件储备非常重要。
1. 团队配合上软硬件要各自发挥优势,业务也必须与客户能良好沟通。虽然超出客户预期时间,但是让客户看到了我们努力及诚意,一般客户都可以可以接受延期的
2. 冒险的事情不要做。但是适当的冒险是有必要的。后期才了解到,这个项目找过2个大的方案商都没有搞定,前后持续了接近一个月的时间。而我们4天时间搞定,客户对我们的认可度在后期变得比较高。
回看技术上我们的确有些冒险,但是基本还是在我们能把控的范围内。最大的冒险其实是算法上做重采样。如果这个没搞定,前面所有的努力白费。
3. 我们期间最痛苦的一件事,业务半夜11点半给朋友打电话要晶振,跑到工厂拿到晶振,在回公司测试得出结论,方便第二天的测试,往返2个多小时。但是整个团队没有任何抱怨。
4. 有效使用工具,非常重要,虽然logic8,便宜,但是在整个项目初期非常有效,大多数分析性方案的验证,及数据获取都是他,软硬件工程师围绕其做了多种针对性设计的方案,为迅速找到下一步方向提供了正确的指向。特别是初始化参数的获取。要是靠读芯片手册,没有个把月真的搞不定。我们最后的效果让客户都奇怪,能做到和样板基本一样的效果,就是靠这个小小的logic8
同时公司的16G内存的机子发挥重大作用,在24M采样率的情况下,4G,8G的机器都跑不动,看来win7,配8G以上内存还是有必要的。我们最大一个波形图是2.7G,打开多个波形图,4G的机器就死机了
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
如果天空是黑暗的,那就摸黑生存;
如果发出声音是危险的,那就保持沉默;
如果自觉无力发光,那就蜷伏于牆角。
但是,不要习惯了黑暗就为黑暗辩护;
也不要为自己的苟且而得意;
不要嘲讽那些比自己更勇敢的人。
我们可以卑微如尘土,但不可扭曲如蛆虫。
|