一个冗余电路导致的BUG

描述

昨天解了一个BUG,一个低级错误导致的BUG,一个冗余电路导致的BUG,写写做个记录。

先说问题现象:产品偶尔温度采集异常,温度不准,系统获取到错误信息,导致出现问题。温度采集电路超级简单,如下图,热敏电阻和普通电阻分压后送入单片机的ADC管脚采集电压,然后软件换算为温度值。挂上示波器,监听温度采集管脚电压,现象明确,出现异常时,ADC管脚出现异常波动。电路超级简单两个电阻分压,分压电源也正常,怎么会有波动?虽然心里坚信热敏电阻不会损坏,但是抱着一丝希望,更换一个热敏电阻还失败。不断尝试复现问题,发现一个规律,只要板上7伏高压电打开,温度采集就出现异常,不知为何7伏电压把温度采集管脚电压抬高了许多。就是这个温度采集不准问题,软件推硬件,说硬件电路设计有问题,硬件推软件,说只有两个分压电阻,不可能是硬件问题,扯皮了两天,真是无语了。

 

三极管

 

这时候就发挥我软硬都"精通"的优势了,跟硬件要了原理图从头到尾看了一遍发现一个冗余电路,这个电路属于预留设计,并未使用。原理是在7V电压存在的情况下,经过两个电阻分压后三极管导通,送入单片机的ADC采集管脚,这里明显超范围了,单片机供电为3.3V,严重超标。管脚不损坏已经是幸运了。这个电路以前是测量3.3V电源的,直接复制粘贴就出了问题。

 

三极管

 

这个电压采集和温度采集并不是同一个管脚,采集电压有问题怎么会导致温度采集不准呢。一般单片机的GPIO内部都有以下两个保护二极管,7V高压进入单片机后经过上面的二极管顶高了VCC电压,进而导致内部ADC模块出现异常,另外一个ADC管脚电压抬升。

 

三极管

 

拆除三极管后温度采集正常。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分