一、问题描述
浪涌电流导致系统工作稳定性变差。
二、该问题造成的影响
消耗电池寿命;降低用户体验;废旧电池的环境污染等问题。
三、对该问题的分析过程
首先说明一点,硬件工程师在做小信号(如心电、肌电、脑电等微弱信号)采集电路时一定要保证采集前端的电源供电稳定,直接接网电源或锂电池等电源是万万不可取的,因为在采集过程中的电源纹波会很大程度上影响电信号的准确性,所以我们一般会采用DCDC或LDO,置于两者的区别自行搜索,选用哪个根据工程需要。
基于第一次对心电卡浪涌电流(其实是电源端瞬态压降的大小,因无相应测试设备)的测试及总结,我们定位到是因模拟电源芯片的问题,因此工程师们尝试新的方案以求能较大程度地优化该硬件性能,当前我们有三种模拟电源方案的心电卡设计,分别是RT9266、XC9119、SGM2019,前二者为DCDC方案,后者为LDO方案;前期硬件设计三种方案全是将输入端VDD与控制端CE短接,且输出端电路设计中的滤波电容等元器件均未改动,在这里我们将其总体设计定义为A设计,如下示例图A.1;因发现控制端单独操作可改善该问题,所以后期的修改方案为将控制端CE单独用IO控制通断,在这里我们将其总体设计定义为B设计,如下示例图B.1,以方便接下来我们进行注意的数据记录统计和分析。
A.1
B.1
接下来对以上A、B两种设计的6种情况做相同的测试和数据分析;
1)首先对A设计的3种方案逐一测试并记录(1.1.4固件端为APOWER开两次),使用同一固件对A设计的三种方案的心电卡各个状态下的浪涌电流大小进行测量记录,具体数据如下:
A_RT9266:在1.1.4固件的控制下测量到的数据如下表A_RT9266.1
times | 开机-----> | 连接-----> | 广播-----> | 关机 |
1 | 175(1800) | 175(1800) | low | 50(200) |
2 | 165(1800) | 165(1800) | low | 50(200) |
3 | 175(1800) | 170(1800) | low | 50(100) |
4 | 165(1500) | 165(1500) | low | 50(100) |
5 | 175(1300) | 175(1000) | low | 50(100) |
以上为第一块心电卡,以下为第二块心电卡,数据表示为mA(us),t为峰值降至20mA | ||||
1 | 175(1800) | 175(800) | low | 50(100) |
2 | 175(1700) | 165(800) | low | 50(100) |
3 | 175(1700) | 170(1700) | low | 37(100) |
4 | 175(800) | 165(800) | low | 37(100) |
5 | 175(800) | 175(800) | low | 50(100) |
表A_RT9266.1
A_XC9119:在1.1.4固件的控制下测量到的数据如下表A_XC9119.2
times | 开机-----> | 连接-----> | 广播-----> | 关机 |
90(1500) | 90(800) | low | 40(100) | |
2 | 90(800) | 90(800) | low | 30(100) |
3 | 90(700) | 90(900) | low | 25(100) |
4 | 90(1600) | 90(700) | low | 25(100) |
5 | 90(1000) | 90(700) | low | 30(100) |
6 | 90(800) | 90(700) | low | 30(100) |
7 | 90(1600) | 90(800) | low | 30(100) |
8 | 90(1600) | 90(700) | low | 35(100) |
9 | 90(700) | 90(700) | low | 25(100) |
10 | 95(1600) | 90(1500) | low | 30(100) |
以上为第一块心电卡,以下为第二块心电卡,数据表示为mA(us),t为峰值降至20mA | ||||
1 | 100(1000) | 100(1000) | low | 35(100) |
2 | 100(2000) | 100(1000) | low | 35(100) |
3 | 100(1000) | 100(1000) | low | 30(100) |
4 | 100(2000) | 100(900) | low | 35(100) |
5 | 100(2000) | 100(1000) | low | 35(100) |
6 | 100(2000) | 95(1000) | low | 30(100) |
7 | 100(2000) | 95(1000) | low | 35(100) |
8 | 100(2000) | 95(1000) | low | 35(100) |
9 | 100(1000) | 95(1000) | low | 30(100) |
10 | 100(1000) | 95(1000) | low | 30(100) |
表A_XC9119.2
A_SGM2019:在1.1.4固件的控制下测量到的数据如下表A_SGM2019.3
times | 开机-----> | 连接-----> | 广播-----> | 关机 |
1 | 110(700) | 105(700) | low | low |
2 | 110(1500) | 90(1000) | low | low |
3 | 110(1500) | 90(1000) | low | low |
4 | 110(1200) | 75(1000) | low | low |
5 | 110(1000) | 85(1000) | low | low |
以上为第一块心电卡,以下为第二块心电卡,数据表示为mA(us),t为峰值降至20mA | ||||
1 | 110(700) | 77(1000) | low | low |
2 | 110(700) | 95(700) | low | low |
3 | 110(700) | 90(1500) | low | low |
4 | 110(1000) | 100(700) | low | low |
5 | 110(1500) | 90(1300) | low | low |
表A_SGM2019.3
从A设计的三种方案的测试结果中可以看出,浪涌电流大小排序为SGM2019 < XC9119 < RT9266,即A设计中SGM2019方案性能最优,但从中亦可以看出,固件端操作APOWER开关两次导致了开机和连接时出现了两次大小相等的浪涌电流,这是不允许的。
2)再对B设计的3种方案逐一测试并记录(1.2.0固件端为APOWER只在开机时开一次,关机时关掉),使用同一固件对B设计的三种方案的心电卡各个状态下的浪涌电流大小进行测量记录,具体数据如下:
B_RT9266:手动控制EN使能脚的状态,测量到的数据如下表B_RT9266.1,
times | 开机---> | 连接---> | Enable--> | 测量---> | 广播---> | Disable-> | 关机 |
1 | 137(500) | 112(500) | 75(100) | low | low | low | 50(100) |
2 | 112(500) | 112(500) | 75(200) | low | low | low | 50(100) |
3 | 112(500) | 112(500) | 85(200) | low | low | low | 50(100) |
4 | 112(500) | 112(500) | 75(200) | low | low | low | 50(100) |
5 | 112(500) | 112(500) | 75(200) | low | low | low | 50(100) |
以上为第一块心电卡,以下为第二块心电卡,数据表示为mA(us),t为峰值降至20mA | |||||||
1 | 100(1000) | 100(500) | 125(200) | low | low | low | 50(100) |
2 | 100(1500) | 100(1500) | 100(200) | low | low | low | 50(100) |
3 | 100(1500) | 87(500) | 85(200) | low | low | low | 50(100) |
4 | 100(1500) | 100(1500) | 112(500) | low | low | low | 50(100) |
5 | 100(1500) | 100(1500) | 125(500) | low | low | low | 50(100) |
表B_RT9266.1
B_XC9119:手动控制EN使能脚的状态,测量到的数据如下表B_XC9119.2,
times | 开机---> | 连接---> | Enable--> | 测量---> | 广播---> | Disable-> | 关机 |
75(1000) | 75(300) | low | low | low | 40(100) | ||
2 | 75(800) | 75(300) | 20(700) | low | low | low | 40(100) |
3 | 75(1200) | 75(1000) | 20(700) | low | low | low | 35(100) |
4 | 75(1000) | 80(1000) | 20(700) | low | low | low | 30(100) |
5 | 75(1000) | 75(1000) | 20(700) | low | low | low | 40(100) |
6 | 75(1200) | 70(500) | 20(700) | low | low | low | 40(100) |
7 | 80(700) | 70(500) | 20(700) | low | low | low | 35(100) |
8 | 75(1300) | 70(1000) | 20(700) | low | low | low | 30(100) |
9 | 75(1200) | 70(1000) | 20(700) | low | low | low | 40(100) |
10 | 75(1200) | 70(500) | 20(700) | low | low | low | 35(100) |
以上为第一块心电卡,以下为第二块心电卡,数据表示为mA(us),t为峰值降至20mA | |||||||
1 | 80(1500) | 70(1000) | 20(700) | low | low | low | 35(100) |
2 | 70(1200) | 70(1200) | 20(700) | low | low | low | 25(100) |
3 | 70(1200) | 70(500) | 20(700) | low | low | low | 25(100) |
4 | 70(1200) | 70(1000) | 20(700) | low | low | low | 25(100) |
5 | 75(1100) | 75(1100) | 20(700) | low | low | low | 25(100) |
6 | 75(1200) | 75(1200) | 20(700) | low | low | low | 30(100) |
7 | 75(1300) | 70(500) | 20(700) | low | low | low | 35(100) |
8 | 75(1300) | 70(500) | 20(700) | low | low | low | 35(100) |
9 | 75(1500) | 70(1000) | 20(700) | low | low | low | 30(100) |
10 | 75(1000) | 70(500) | 20(700) | low | low | low | 30(100) |
B_XC9119.2
B_SGM2019:手动控制EN使能脚的状态,测量到的数据如下表B_SGM2019.3,
times | 开机---> | 连接---> | Enable--> | 测量---> | 广播---> | Disable-> | 关机 |
1 | 40(100) | 40(100) | 80(1200) | low | low | low | low |
2 | 30(100) | 30(100) | 80(1000) | low | low | low | low |
3 | 35(100) | 35(100) | 80(1000) | low | low | low | low |
4 | 40(100) | 40(100) | 80(800) | low | low | low | low |
5 | 30(100) | 30(100) | 80(1000) | low | low | low | low |
以上为第一块心电卡,以下为第二块心电卡,数据表示为mA(us),t为峰值降至20mA | |||||||
1 | 37(300) | 37(100) | 80(600) | low | low | low | low |
2 | 50(800) | 50(100) | 80(600) | low | low | low | low |
3 | 20(500) | 25(100) | 80(600) | low | low | low | low |
4 | 25(500) | 25(100) | 80(500) | low | low | low | low |
5 | 25(700) | 25(100) | 70(500) | low | low | low | low |
B_SGM2019.3
从B设计的三个方案测试的数据对比来看,仍然是SGM2019方案在浪涌电流这项指标上有更好的表现,所以毋庸置疑地选择了第三种方案。
另外:在确定了使用SGM2019方案后,又后续对其做了一些测试,发现将原理图中输出级的C41电容去掉后效果又比上述测试结果好了一些,具体数据如下表B_SGM2019.11,
times | 开机---> | 连接---> | Enable--> | 测量---> | 广播---> | Disable-> | 关机 |
1 | low | low | 45(800) | low | low | low | low |
2 | low | low | 45(800) | low | low | low | low |
3 | low | low | 45(800) | low | low | low | low |
4 | low | low | 45(800) | low | low | low | low |
5 | low | low | 45(800) | low | low | low | low |
以上为第一块心电卡,以下为第二块心电卡,数据表示为mA(us),t为峰值降至20mA | |||||||
1 | low | low | 42(500) | low | low | low | low |
2 | low | low | 42(800) | low | low | low | low |
3 | low | low | 45(800) | low | low | low | low |
4 | low | low | 45(800) | low | low | low | low |
5 | low | low | 45(800) | low | low | low | low |
表B_SGM2019.11
受到上述修改方式的启发,再结合SGM2019datasheet上的参考设计,我们决定将芯片的前级和后级的10uF电容全部去掉,只保留1uF,在保证输出纹波符合要求的基础上,测量发现心电卡的浪涌电流在各个阶段都极低于原来的值,最高时是连接并开启APOWER,浪涌电流约为15mA,所以该问题到此算是有了一个较为满意的解决方案。
四、解决该问题的修改方案
正如上述数据和表述中提及的,对比发现当前最优的解决方案是用B设计的SGM2019方案的,并将外围电路中的10uF大电容去除。
五、体会
这一切的功劳要归功于新买的那台手持式示波器啦,没它真不知道啥时候能定位并解决这个问题,论测试设备的重要性!也谢谢在这个过程中给予帮助的硬件工程师们,随时帮我解惑,当然选取IC的时候也是考验硬件工程师们的经验,这种问题恐怕只有在对信号或系统要求极其苛刻时才会引起我们的注意,让我们这些人为此费劲脑汁。