打印

cpld读脉冲的问题?

[复制链接]
3312|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我用cpld读脉冲进行计数,用信号发生器输入3.3v的100hz脉冲信号,可以正确读数;当采用稳压整流出来的3.3v的100hz脉冲信号输入给cpld,可就是不能正确计数。观察两个波形差别,信号发生器的波形上升沿时间很窄,而整流出来的脉冲上升沿时间很长达到4us,后来加入施密特触发器(74hc14),其输出波形上升沿时间降低,但上升阶段出现一点小的抖动,可cpld计数还是不正确。谁能帮帮我啊!!

相关帖子

沙发
sinetech| | 2010-6-10 17:33 | 只看该作者
稳压整流出来的3.3v的100hz脉冲信号?怎么实现的?不能正确计数的现象是什么,丢脉冲还是就不计数?

使用特权

评论回复
板凳
mr.king| | 2010-6-10 19:19 | 只看该作者
如果确定100Hz左右信号,硬件不行就靠软件,做禁止重复触发的锁存器,在触发后3ms内不接受第二次触发可以躲开边沿的抖动,如果你频率范围变化大就不能用这方式了,可以在外面想法做出正交脉冲,这样随便脉冲多慢都不会误触发

使用特权

评论回复
地板
dandanzhou|  楼主 | 2010-6-10 21:22 | 只看该作者
其实,100hz也只是我测试的一个值,这个脉冲其实是转速信号转换过来的,频率范围应该在(0~250hz)。脉冲信号是有一个滞回比较器通过稳压管限幅产生+-3.3v的电压,再通过二极管半波整流后得到3.3v的脉冲信号。
不能计数,就是计数不正确,比正确的值多的多,还不稳定,老是变化。

使用特权

评论回复
5
dandanzhou|  楼主 | 2010-6-10 21:41 | 只看该作者

使用特权

评论回复
6
dandanzhou|  楼主 | 2010-6-10 21:42 | 只看该作者
可以看到第一个图就是二极管半波整流后的输出波形,上升沿时间有4us,第二个图就是通过施密特触发器后,脉冲上升沿时间变短了很多,但是出现了畸变,我初步怀疑就是这个畸变导致cpld读书错误。但是不知道是不是这个原因,那应该怎么做呢?

使用特权

评论回复
7
sinetech| | 2010-6-11 21:40 | 只看该作者
你有没有把畸变的信号展开看看?你用来计数的时钟频率是多少?如果频率比被测信号高很多,很可能是把信号的抖动也记下来了。可以做些消抖处理。

使用特权

评论回复
8
shen8103| | 2010-6-12 05:25 | 只看该作者
不知道楼主说的计数不正确是数多了还是数少了,看波形感觉数多了的可能性比较大。

如果确实是数多了的话把波形再展开看看,是不是有微小的毛刺什么的,加施密特触发器、电容等处理一下应该就可以了吧。

使用特权

评论回复
9
dandanzhou|  楼主 | 2010-6-12 12:46 | 只看该作者
图2就是通过施密特触发器后的波形啊。
后来我在二极管整流出来后加入了光耦(6n137),可能增加了驱动能力和隔离效果,施密特触发器的输出波形改善了很多。
但是,现在又有一个新的问题,在高频3,400hz的时候,可以正确计数,而低频的时候,几十赫兹就不能正确计数。
为什么阿?

使用特权

评论回复
10
xujin2002ji| | 2010-6-12 14:34 | 只看该作者
输入信号数字滤波。  你的采样频率肯定很高。 , 连采5次都是1,就把输入认为1, 连采5次0 就把输入认为0,否则保持不变。

使用特权

评论回复
11
sinetech| | 2010-6-13 00:11 | 只看该作者
ls所说即是消抖的思想,不过具体判断多少根据实际情况来定最好

使用特权

评论回复
12
lelee007| | 2010-6-14 13:14 | 只看该作者
哈哈,当年我们大二时也遇到过这种问题,不过那时我也没有很好的解决

当时我们好几个组都有这个问题,脉冲整形电路用了很多,软件的方法也用了,但是效果都不理想

期待LZ解决并分享

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

41

帖子

0

粉丝