您的位置 首页 元件

电容增加深思熟虑,加错便会后患无穷

据说在中国,评上了副高职称就算是高级知识分子了。老衲不才,忝列高知一载有余,才慢慢体会到,真正的研发工作需要有一种“理论指导实践,举一便能反三”的范儿。

据说在我国,评上了副高职称就算是高级常识分子了。老衲不才,忝列高知一载有余,才渐渐体会到,真实的研制工作需求有一种“理论指导实践,举一便能反三”的范儿。

比方加电容这个形似简略的问题,老衲的伙伴就栽了好几个跟头。在电容的加或不加、当加多少的问题上,他并没有遵照理论指导实践的政策道路,而是想当然地瞎干胡来,过后也只长经历不长经历,碰到其它的场合不能触类旁通。

1570772350308480.jpg

现在把它们共享出来,供各位瓜友拍砖。

1

饿了要吃馍,渴了找水喝,有搅扰的当地就要加电容滤波,这种朴素的经历简明有力,家喻户晓。可是这儿面的道道儿还许多,所以有的时分仍是会翻车。

几年前,老衲做了个简略的电机操控器,操控算法需求用到电机转速信息。

由于运用场景比较简略,电机转速传感器选用的是本钱低价的霍尔传感器,电机每转一周,该传感器输出4个周期的脉冲信号。虽然分辨率比每周都要输出上千个脉冲的QEP单元要低许多,但足以满意使用要求。

电机转速最高每分钟3000转,相当于每秒钟转50圈,对应200个脉冲信号。老衲选用了脉冲计数法核算电机转速,核算一秒内的脉冲个数,依据脉冲个数核算每秒钟转多少圈,然后再换算到每分钟多少转即可。

在这儿,我采取了“滑动时刻窗”法,将一秒钟分红五个时刻窗,两个核算周期之间的时刻错位为200毫秒,而不是1秒,这种办法能够增加转速的实时性和精确性。假如瓜友们对这种办法比较感兴趣,能够自行上网查阅,本文篇幅有限,不再赘述。

在这儿,脉冲个数的核算很要害。数字脉冲都有上升沿和下降沿,依据这种特性,老衲选用了中止触发办法核算脉冲个数。

明显,假如脉冲输出线上有毛刺,便或许误触发中止,形成核算转速大于实践转速。依据这种朴素的知道,老衲的硬件伙伴小A在脉冲输出线上加了个RC滤波。

RC滤波电路如此常见,以至于老衲底子认识不到它还能出问题。

2

老衲一边操作着信号发生器输出方波信号,一边通过仿真器调查一秒内的脉冲核算个数。

可是我很快发现,跟着信号频率的增加,脉冲收集功用竟然渐渐失效了。架上示波器,发现脉冲数据线上本来峻峭的信号沿变成了慢慢的山坡,从波形上来看,信号还没有爬到山顶就落了下来。

虽然这种状况并不多见,可是天分平平的老衲仍是立刻认识到这种爬不上去的波形明显是RC网络形成的。在这儿,有必要先给咱们遍及一下RC网络对信号的“推迟效果”。

RC滤波是个推迟环节,推迟时刻取决于时刻常数(即R*C),以RC滤波网络的输入输出来看,RC时刻常数表明的是输出信号电平到达输入信号电平的0.632倍所需的时刻。依据核算,通过2个时刻常数,输出到达输入的0.86倍,通过3个时刻常数,输出到达输入的0.95倍。。一般通过3-5个时刻常数后,输出就根本到达了输入电平。

可是现在的波形,脉冲信号通过RC滤波后还没有充到最高电平就开端放电了,明显是由于RC时刻常数设置得太长了!

待我把小A叫过来后,他跟我叙述了电容的奇葩核算办法,其时老衲就震动了。小A说:“最大脉冲频率为200Hz,依照香农采样定理,只要将滤波频率设定在400Hz以上,便能够收到滤波、采样的两层成效。他将滤波频率设定为500Hz,选用一般的RC滤波方式,所以他将R设定为2k、C设定为1uF。”

1570772374854231.jpg

3

嚯,把采样定理都搬出来了,好像无法从理论上辩驳,一开端也把老衲唬的一愣一愣的。可是细心想想,小A明显混杂了方波脉冲频率和信号最大频率的概念!

234.jpg

采样定理针对的是信号最大频率,可是这儿的信号是方波脉冲信号,脉冲频率为200Hz不等于信号中的最大频率成分为200Hz,从理论上讲,数字脉冲包括无量的信号频率,200Hz仅仅基波频率,还有二次谐波、三次谐波……

实践上,依据傅里叶变换的常识,等周期、占空比为50%的脉冲信号为“半波信号”,没有偶次谐波重量,只要奇次谐波重量。即该信号有200Hz、600Hz、1000Hz……等正弦重量,其间,三次谐波重量和5次谐波重量还占有比较大的比重。并且,就像在《信号与体系》这门课程的教科书里讲的那样,假如要在实践工程中使用香农定理的话,最好把采样频率设为最大频率的3-5倍,没有依照2倍信号最大频率使用香农定理的。

不过,这儿明显不是采样定理的用武之地。要想在理论上解说小A的过错,还得回到RC网络的推迟效果上来。

1570772422454079.gif

依照RC网络时刻常数的推迟效果,依据小A的RC取值,时刻常数τ=0.002秒,200Hz的方波信号高电平继续0.0025秒,低电平继续0.0025秒,都大大小于2个时刻常数,也就是说,当输入高电平继续时刻结束时,输出电平还远没有有到达输入电平的0.86倍,通过预算大约还不到0.7倍。

可是依照CMOS电平理论,关于5V信号,4.5-5V之间的信号才会精确地被认定为高电平,0-0.5V之间的确定为低电平。故而,输入高电平继续时刻结束时,MCU还没有被触发上升沿中止,所以脉冲收集功用才失效的。

所以,这儿真要滤波的话,要把RC时刻常数至少设置为高电平继续时刻的三分之一到五分之一,依照五分之一核算,时刻常数τ=0.0005秒,能够将R设定为5k、C设定为0.1uF。

老衲把小A讲晕后,让他调换了电阻和电容,再次测验公然就没有问题了。

4

可是电容并不是全能的,也并非非用不可。有时分,反而需求在“应该滤波”的当地去掉电容,才干满意详细功用的要求。

比方前两年做了一个遥控器,在接纳遥控信号时,便遇到了电容的取舍问题。

仍是相似的脉冲信号收集,仅仅这一次不是核算脉冲个数了,反而需求核算高电平的继续时刻、低电平的继续时刻,并且信号也不是方波信号了,而是曼彻斯特信号,即以“两高一低”或“两低一高”来表明数字位0和1,这儿的“两高一低”指的是两个时刻单位的高电平和一个时刻单位的低电平。时刻单位因遥控器和遥控协议而异,这儿测验时为125us。

已然是数字信号收集,已然信号线上或许会遭到电磁辐射搅扰的影响而呈现毛刺,加个电容滤下波好像也是应有之义。

并且这儿的遥控信号的凹凸电平继续时刻都很短,所以老衲选用的RC时刻常数很小,R=1k,C=1nF,明显,时刻常数τ=1us,现已是一个比较小的数字了,按理说既能起到恰当的滤波效果,也根本不会损坏信号的波形。

可是这次,工作却没有那么简略了。由于我发现,加了个RC滤波网络之后,遥控信号有时就接纳禁绝了。

1570772444612591.jpg

正如上面所说,这非必须收集的是高电平继续时刻和低电平继续时刻,已然接纳禁绝了,老衲模模糊糊地觉得,虽然从理论核算上没什么问题,可是这儿加的电容明显会损坏电平继续时刻的判别。

所以,我把电容取了下来。再一次测验,好使了!

理论核算没问题,加了电容,三个时刻常数(3us)后就能触发上升沿中止,关于125us来说,也是一个很小的差错,老衲在程序里现已给出了满足的余量(100us-150us均视为1个时刻单位),完全能够“忽视”掉这种差错。

可是无情的现实就摆在面前,用仿真器存储多个凹凸电平继续时刻,的确发现了一些“不规范”的时刻长度。明显,老衲疏忽掉了什么!

5

小A在一旁沉浸在“苍天啊,大地啊”的哀怨中,老衲却遽然认识到了一个问题:信号线和地平面之间的电容是不是不只要自己所增加的这个1nF!

看着在各个电源(VCC-12V/VCC-5V/VCC-3.3V)入口处的电容,老衲觉悟了过来,电容无处不在,当你接了一个1nF到地平面上时,你也就将信号线归入了无比苍莽的大地,这儿地平面的电容也许是动态的,才形成只会个别得影响、而不是影响一切的凹凸电平。

这就了然了!不是这个1nF的电容自己有问题,而是把它接进来,就敞开了潘多拉的盒子。它后边还跟着一个不断崎岖改变的地平面上的电容簇,它就像隐藏在内幕中的猎人,随时对着遥控信号线射出一记冷枪!

跋文

理论指导实践不是一句废话,当理论和实践不相符时,咱们要反躬自省,是不是有哪些因素没有考虑到?比方关于电容,咱们就应该深深紧记:电容增加深思熟虑,加错便会后患无量!

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/yuanjian/114495.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部