myRIO FPGA 实现高频率等精度频率计

很久之前就想写这篇博客,但因为这是学校的课程设计,在没验收前发怕老师说抄袭,所以拖到现在。此次的小玩意

是一个频率计,准确来讲是一个数字频率计,只能测TTL方波。采用了等精度方法,具体等精度和直接测周期或直接

测频率法有什么异同,优缺点可以参考

http://wenku.baidu.com/link?

url=o7Y4CeJ3qYVVa7ZoX8KpCrz5l3NxXIDfTYHVisPPbfSldJXTmYFhWwpcuh91cPWMTtEEC4HAlCOQ0DdN

asNtKuzjg35S4JVOGS6TvJaELkK

按上面的思路就写成了下面的程序,如果知道等精度测量的思路,程序应该很容易读懂

问题:程序中上升沿检测为何一开始要跟高电平比较(也就是真常量),大家思考一下。

myRIO FPGA 实现高频率等精度频率计_第1张图片

说明一下,myRIO时钟默认为40M,为扩大可测量频宽,可进行分频,这个也很简单,操作如下:

右击40M那个时钟,选择new 什么什么clock,然后直接在框图位置中输入要的频率,点OK,之后双击本页第一个图

的定时循环时钟,选择为你想要的时钟即可。

myRIO FPGA 实现高频率等精度频率计_第2张图片

注意:在本程序中,时钟太高会编译不通过,因为FPGA实际是对芯片进行专门话设计,你程序对信号取反,相当于

用FPGA门阵列生成一个非门,所以时钟太高,在定时循环中硬件反应不过来,编译就不通过了(以上为个人推

测),考虑自己的需求,我将频率分为了240M(可以再高一点点,但大于320M就编译不通过了,每次编译若超时

编译器会告诉你最小时间,感兴趣同学可以自己计算最高频率)

然后以下是我在调试中遇到的问题:

错误程序:

myRIO FPGA 实现高频率等精度频率计_第3张图片

首先闸门用上面会出现问题,程序无法计算上升沿,N,n值为0,原因自行分析。

其次,测试时的线不能用有衰减的,最好用鳄鱼夹那种,因为现在在宿舍,没能拍照,包涵。

还有,myRIO数字输入信号不能是函数电平,要用TTL,不然也读不到上升沿(我因为这个调了挺久,调到怀疑人

生,最后才发现问题所在)

如果要测正弦波的话就要用自己弄一个整形电路啦,电路实在不是我的强项,不过这次我人品好,两个方案就搞定

了,第一次用的是tl3016外加两级功放,什么阻抗匹配、纹波系数啥啥的我也没学好,就不瞎扯了。这个方案不行,

之后直接用函数发生器测方波,发现2mV也很准,就把功放去了,然后申请的3016芯片用完了,又不想拆(走狗屎

运的关键一步),然后就用了tlv3501,没功放,直接典型电路,可以,之后我会附上整个设计的PCB和程序(包括

ARM部分,串口,自动量程切换什么的,当然这个我想赚点积分,我没积分可用了)。上面相关芯片资料可直接在ti

datasheet和申请样片。

测试结果因为有名字学号学校等信息就不附了,方波用函数发生器误差小于十万分之一,正弦波小于万分之一(和设

计的电路整形后的信号有关)

啰啰嗦嗦写了这么多,到此吧,希望大家多和我交流。

你可能感兴趣的:(myRIO,FPGA,实现高频率等精度频率计,LABVIEW_MYRIO)