好多年前,我曾经设计过一款便携式血糖仪,才真的感受到成本压力。
原来我设计的都是一些工业用的仪表,一般只要不是太夸张的奢侈型设计,都能够通过公司的成本考核,因为工业仪表相对专业,利润率比较高,因此设计的时候更多的是追求精度和可靠性,硬件成本相对就较少考虑;而血糖仪属于大众消费性的产品,都是用户购买血糖试纸时赠送的,因此客户对于成本的要求近乎苛刻。
先说结果,因为硬件成本的限制,我自作聪明,结果被这张图给害惨了:
图源:9S08LL16 Reference Manual : 13.4.1.4.2
血糖仪的工作原理是这样的:
血糖试纸利用前端的酶与血液中的糖份进行反应,产生uA级的电流,血糖仪就需要测量出这微小的电流,并根据试纸的特性计算出被测血液的血糖值。
要测量大小多少,就必须有标准。比如测量程度需要尺子,测量重量需要称等等。
而测量电流,实际上就是测量电压(电流流过电阻产生电压)。那么,要知道电压的多少,就必须有一个标准的电压,被测值和标准值相比,才能知道被测值到底有多大。
线路设计,碰到问题:
对于血糖测量电路来讲,也需要有一个基准电压(大约1V左右的标准电压)来给线路提供标准参考。
但是,我是用的是FREESCALE公司(现在已被恩智浦NXP收购)的型号为MC9S08LL16的MCU,它只有内部的电压基准,并没有引脚可以引出这个标准电压,也没有D/A(数字/模拟)模块可以输出标准电压。一般情况下就要使用外部电压基准元件,比如LM385,
图源:LM385 DATASHEET: Typical Application
可是,LM385的成本要1块多人民币,这对于要把硬件成本的目标压缩在20元RMB以内来说,是一个巨大的开销,难以承受。
真是一分钱难倒英雄汉,到底还有什么省钱的解决方案呢?为此我想了好几天,一直闷闷不乐。
发现捷径,大胆假设:
直到有一天,我正盯着初步的电路原理图看的时候,感觉是神仙附体,灵光乍现:
9S08LL16自带LCD驱动模块,而LCD驱动的时候,需要很多不同的电压,像我使用的1/4占空比,1/3偏压驱动的LCD,其工作波形是这样的:
图源:9S08LL16 Reference Manual : 13.4.1.4.2
原理是把LCD的驱动电压(VLL3)分成3份,其中VLL1等于1/3 VLL3,VLL2等于2/3 VLL3,而在这个设计里,使用了LCD驱动模块的内部升压泵,VLL3被设定成3V,所以VLL1等于1V。
而VLL1,VLL2,VLL3因为要加外接界电容,在MCU上是有引脚输出的:
图源:9S08LL16 Reference Manual :Figure 2-1
这样一来,VLL1如果稳定的话(并不需要准确,因为可以用程序使用内部电压基准进行校正),就可以作为基准电压来驱动外部线路了。
保险起见,进一步查Reference Manual,看看VLLx的生成机制,发现只有模块图:
图源:9S08LL16 Reference Manual :Figure 13-2.
没有再详细的介绍,那就只能实际测量了。
用万用表测得MCU工作时,VLL1是1.1V,每一片MCU有些差异,基本在0.1V以内,再用示波器看VLL1的输出波形,几乎是一条直线,没有波动。
我这时感觉发现了宝藏:就这样,能节省1块多人民币,基本硬件问题就解决了。
冗余处理,小心求证:
因为在Reference Manual上并没有详细的VLL1规格介绍,比如温漂,误差等参数。
为了防止这个到来的误差,我在血糖仪每次测量前,都用MCU的内部基准校正一下VLL1的值。每一次血糖测量只需要几秒钟,在这几秒钟以内,VLL1是不会出现波动的。
我用这个特性做了设计:
还是把LM385放在了设计里面,只是生产时不用焊接。
就这样,我考虑了所有的可能性,将所能想到的潜在风险都一一针对做了处理,设计完成以后试产了几百台,都没有问题,我也松了口气,开始让工厂批量生产,第一批出货5000台,第二第三批都是几万台,也排好了出货时间。
闯祸了:
本以为是高枕无忧的享受时间,结果工厂传来了噩耗:大约有3%~5%的血糖仪,生产出来测试不良。而出货时间迫在眉睫,没办法,连夜飞往工厂,开始寻找不良原因。
最后,发现不良的血糖仪,MCU所输出的VLL1是在波动的,
- 有像这样的三角波:
- 也有像这样很任性的波形:
它们的共同点是,平均值是正常的1.1V左右,只是波动很频繁。
没办法,因为急着出货,只能采用原来预留的备用方案:焊上LM385,让成本增加了1块多钱。
追根溯源:
同时,联系了供应商和freescale原厂,几天后得到了回复:
VLL1的设计并不是要给设计者用来做外部基准的,仅仅供LCD驱动使用,而LCD驱动看中的是平均电压,些许的波动不影响LCD显示效果,因此MCU出现少部分比例的波动不属于质量问题,而且原厂并不保证VLL1出现波动的百分比。
也就是说,试产时运气好,没有碰到不良,这次批量我们碰到的是3%~5%的不良率,而下一批货可能是80%~90%,这都是没有保证的。
没办法,因为头几批货出货时间都很急,也为了节约生产成本,所以所有的血糖仪都焊接了LM385,公司损失了一些利润,我也少拿了一些奖金,真的是心痛啊!!!
而在这期间,我也找了很多种标准电压的方案,最后还是决定升级MCU,使用9S08LL36,这一款有基准电压的输出,其精度和稳定度是厂家设计保证的,成本多了大约0.4RMB。
总结:
作为设计者,一定要熟练掌握元器件的特性,datasheet上所有的特性最好都要去了解到,并在设计时充分考虑冗余工作。
而在datasheet上没有提到的功能,最好不要轻易使用,因为这属于超范围应用,很可能就落在了原厂设计考量之外,其性能是没有办法保证的。
这是关乎到自己奖金的血淋淋的教训,希望广大的设计工程师都能引以为戒。
参考资料:
LM385 DATASHEET
本文由 @julian2013原创,图片引用自元件datasheet,或者亲自绘出,实际拍摄,未经允许谢绝转载,谢谢!
Posted using Partiko iOS
This page is synchronized from the post: 血淋淋的教训:研发过程中节约成本闯的祸