
stm32-简易频率计
简介
基于STM32F103C8T6的简易数字频率计项目,使用1.8TFT屏幕进行数据显示,支持1Hz~20MHz波形频率测量,支持任意波形,不局限于方波输入,输入电压范围在0.7~3.3V
简介:基于STM32F103C8T6的简易数字频率计项目,使用1.8TFT屏幕进行数据显示,支持1Hz~20MHz波形频率测量,支持任意波形,不局限于方波输入,输入电压范围在0.7~3.3V开源协议
:GPL 3.0
描述
一、项目介绍👾

简介:基于STM32F103C8T6的简易数字频率计项目,使用1.8TFT屏幕进行数据显示,支持1Hz-20MHz波形频率测量,支持任意波形,不局限于方波输入,输入电压范围在0.7-3.3V,项目板载SI5351-时钟芯片,理论上支持2.5KHz-200MHz频率输出,且支持小数位分频,可以用来作为基准频率测量与校准。
二、 仿真验证🐲
在tina中搭建pwm转dac电路以及比较器转换电路,对电路进行仿真,希望得到的输出波形是一个占空比为50%左右的方波,这样能够最好的采集信号的上升沿或下降沿从而计数得到频率。
![]() | ![]() |
|---|
三、项目测试🐞
使用板载时钟芯片测试10KHz、100KHz、1MHz;频率基本没有误差。
![]() | ![]() | ![]() |
|---|---|---|
| 板载10KHz输出 | 板载100KHz输出 | 板载1MHz输出 |
使用板载时钟芯片测试5Mhz、10Mhz、20Mhz;频率误差在万分之一左右,推测是单片机程序执行的延时,也可能是晶振本身频偏的累计,此处我没有专业设备,没办法校准,理论上可以通过线性拟合进行校准。
![]() | ![]() | ![]() |
|---|---|---|
| 板载5MHz输出 | 板载10MHz输出 | 板载20MHz输出 |
![]() | ![]() | ![]() |
|---|---|---|
| 5MHz实际频率数 | 10MHz实际频率数 | 20MHz实际频率数 |
在低频下表现也比较友好,此时测量我均是使用高频输入通道(定时器ETR功能)进行测量,感觉偏差也不大,如果是需要hz级别测量且有小数点,也同样提供了低频输入通道(定时器捕获功能),但是我没有设备输出小数点hz频率,所以在代码中也没有写,有需要可以自行增加。
![]() | ![]() | ![]() |
|---|---|---|
| 0.7V、10Hz锯齿波输出 | 0.7V、10Hz方波输出 | 0.7V、1Hz方波输出 |
四、使用说明🦄
目使用非常简单,烧录代码后,使用万用表-小表笔测量外部信号即可。项目没有做信号电压调理,所以不要测量超过3.3V的信号,以免造成损坏。
五、现存问题⚠️
受限于pwm转dac的性能,以及比较器的性能,输入电压目前没办法小于0.7V以下,且输入信号频率不能高于30MHz,否则此时比较器基准电压的波动会被放大导致输出信号不是一个良好的方波,从而导致测量不准。
除此之外,目前硬件电路设计似乎会导致比较大的寄生电容干扰,虽然后级经过比较器后对输入到单片机的信号影响较小,但是直接使用该频率计测量单片机上的无源晶振电路时,会导致晶振寄生电容异常从而停振。目前没有想到较好的办法解决。
六、电路分析✨
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。
























