昨天解了一个BUG,一个低级错误导致的BUG,一个冗余电路导致的BUG,写写做个记录。
先说问题现象:产品偶尔温度采集异常,温度不准,系统获取到错误信息,导致出现问题。温度采集电路超级简单,如下图,热敏电阻和普通电阻分压后送入单片机的ADC管脚采集电压,然后软件换算为温度值。挂上示波器,监听温度采集管脚电压,现象明确,出现异常时,ADC管脚出现异常波动。电路超级简单两个电阻分压,分压电源也正常,怎么会有波动?虽然心里坚信热敏电阻不会损坏,但是抱着一丝希望,更换一个热敏电阻还失败。不断尝试复现问题,发现一个规律,只要板上7伏高压电打开,温度采集就出现异常,不知为何7伏电压把温度采集管脚电压抬高了许多。就是这个温度采集不准问题,软件推硬件,说硬件电路设计有问题,硬件推软件,说只有两个分压电阻,不可能是硬件问题,扯皮了两天,真是无语了。
这时候就发挥我软硬都"精通"的优势了,跟硬件要了原理图从头到尾看了一遍发现一个冗余电路,这个电路属于预留设计,并未使用。原理是在7V电压存在的情况下,经过两个电阻分压后三极管导通,送入单片机的ADC采集管脚,这里明显超范围了,单片机供电为3.3V,严重超标。管脚不损坏已经是幸运了。这个电路以前是测量3.3V电源的,直接复制粘贴就出了问题。
这个电压采集和温度采集并不是同一个管脚,采集电压有问题怎么会导致温度采集不准呢。一般单片机的GPIO内部都有以下两个保护二极管,7V高压进入单片机后经过上面的二极管顶高了VCC电压,进而导致内部ADC模块出现异常,另外一个ADC管脚电压抬升。
拆除三极管后温度采集正常。
-
三极管
+关注
关注
142文章
3611浏览量
121874 -
单片机
+关注
关注
6035文章
44554浏览量
634668 -
热敏电阻
+关注
关注
14文章
1163浏览量
101502 -
adc
+关注
关注
98文章
6495浏览量
544470 -
BUG
+关注
关注
0文章
155浏览量
15665
发布评论请先 登录
相关推荐
评论