|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
小弟做了个用CPLD检测信号频率和脉宽的板子.
考虑得比较简单.
用了两个计数器,两个D触发器.
分两个process
在第一个process中改变计数器的值:
在信号的高电平,计数器1自加,计数器0清零
在信号的低电平,计数器0自加,计数器1清零
在第二个process中取得并保持计数器的值
信号上升沿,取计数器0的值
信号下降沿,取计数器1的值
是单片机+CPLD的结构.
用单片机的串口与PC通讯来观察CPLD的运行情况.
结果发现CPLD运行不是很稳定
CPLD用的是20M的时钟,测试用信号源是一个周期为50赫兹,脉宽1.2us的矩形波,幅度在4.2V的样子,用示波器看不到明显的毛刺或者过冲.
理论值应该是计数器1输出24,计数器0输出400000-24
结果计数器1的输出基本上是22到23的样子,很偶尔出现个16(0x10),但是计数器0的输出一般是40万多一点,15%的概率出现十六七万的错误值.
网络上也看过一段时间的,可惜只看见怎么测量频率的,没有看到可以测量脉宽的.
希望不是原理上出现大的错误
求指点.
[ 本帖最后由 wxd1982 于 2006-9-12 23:12 编辑 ] |
|