码迷,mamicode.com
首页 > 其他好文 > 详细

与电容有关的开发教训

时间:2016-08-19 19:00:45      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

1:ADC按键

以下是某平台提供的标准原理图:

技术分享

功能很简单,就是通过分压进行ADC采集。标准应用是没什么问题。但我们因为需求原因需要把一个按键拉到长距离传输数据。如上图绿色虚线部分。长度大约30M x 2。

当按下S5的时候,CPU会误报S6按下的值,并且和S5来回切换,一段时间后才消失。断开绿色虚线,一切正常。

在KEYADC网络和GND之间加0.1uF电容没太大效果,在PCB上R48靠近绿色虚线和GND之间加0.1uF效果明显,CPU不再误报。

原因:当S5按下的时候,AVCC---->R46---->R47---->GND有电流变化,产生的电压变化,经过长的绿色虚线,产生谐振。从高速信号原理看,这个电压变化已经是高速型号,来回在线的两端反射。加了电容之后,吸收谐振或者高速型号反射值。

教训:若要外引按键,需要在靠近PCB的两端接上电容,去谐振。并且实践证明高速信号是相对的,跟传输路径长度和信号带宽有关。(这里是外接线和开关按下带宽)

 

2:USB热拔插

做了一个USB HUB小模块,在主板上电后,插入小模块导致主板CPU重启,主板USB供电电路和USB模块如下:

技术分享     技术分享

PS为电源管理的电压,VCC-5V为主板输出USB供电电压。VCC5V_USB为USB小模块的输入电压。

在插入USB小模块时,测量了VCC-5V和PS电压,均出现电压下滑到一定值,这个直接原因导致主板CPU重启。去掉C61后,重启由必然变成概率性,后续发现是U4不符合datasheet描述(坑爹的国产假货),动态负载效果很差,更换了替换型号后,拔插没有再出现主板CPU重启,此时C61并没有焊接回去。经测试工程师多次拔插USB模块,会导致无法识别USB。查看USB模块,发现USB芯片损坏。查看其datasheet,芯片最高承受电压6V。可以断定是拔插过程产生机械抖动使电压超过6V,多次实验会导致USB芯片损坏。换一块新的USB模块,并焊接上C61。USB模块再也没有损坏,但是主板CPU会有1%左右的概率重启。可以推断是C61的容值选取和U4的动态负载能力有关,更换C61为4.7uF,多次拔插一切正常。

原因:电源动态带负载能力与热拔插产生的机械抖动假负载之间矛盾。若受供电一端没有电容,则会因为机械抖动产生的电压击坏电路。若受供电一端电容太大,会把供电端的电源芯片电压拉下,因为在一定频率下,电容越大,产生的负载阻抗越小,负载越重。

教训:对于热拔插,在供电一端可接受范围内尽可能加大电容,并确认电源动态带负载能力。受供电端在保护电路留好足够余量的前提下,折中选择电容大小。

 

与电容有关的开发教训

标签:

原文地址:http://www.cnblogs.com/kevinhwang/p/5788398.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!