数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 1110|回复: 10

[ARM] AT32F435CGT7+压控恒温晶振实现的频率计制作

[复制链接]
发表于 2025-5-12 18:52:52 | 显示全部楼层 |阅读模式
主控:AT32F435CGT7
压控恒温晶振:CTI OSC5A2B02 10MHz

设计思路:使用待测信号作为定时器时钟源,测量闸门时间内的脉冲数,待测信号频率=(脉冲数/闸门时间),假设闸门时间=1S,测得脉冲数=1000000,则频率=(1000000/1)=1MHz。


元件选择:
(1)主控:为提高测量频率上限、提高测量精度,尽量选择主频高、I/O速度快的芯片,AT32F435CGT7最高系统时钟频率288MHz。
(2)系统时钟源:要提高测量精度和稳定性,一般无源晶振是无法满足要求的,起码要用温补晶振,为尽量免调就能达到较高的精度,使用压控恒温晶振CTI OSC5A2B02 10MHz,标称精度200ppb,该晶振需要调整压控脚电压控制输出频率,不过,调整范围很窄,电压差一点输出频率影响不大。为了提高压控电压精度和稳定度,使用2.048V电压基准芯片REF3020AIDBZR提供压控电压。恒温晶振PLL倍频到288MHz作为系统时钟源。
(3)输入:1路直通输入,测量矩形波信号;1路放大输入,用于测量mV级的若信号,如晶振感应信号。

原理图(由于初版设计有问题,很多功能需要飞线实现,所以暂不提供PCB,改板可用后再提供;因理论水平有限,图中放大输入电路仅达到可用的效果,要减少失真,参数需要调整)


放大输入设计
设计输入信号幅度≥10mV,经过multisim仿真,大概需要3级共射极放大,加一级共集电极缓冲,共使用4级9018三极管放大。
普源示波器内置信号发生器输出100KHz 10mV正弦波的放大输出(以下测试均是此设备输出测试信号)

100KHz 50mV正弦波输入的放大输出

100KHz 100mV正弦波输入的放大输出

测试结果在99999Hz~100000Hz之间。

10MHz方波直接输入测量结果


程序设计:
(1)32位定时器2作为脉冲计数器使用,设置输入1/2作为定时器时钟源,同时启动定时器3开始闸门时间定时。
(2)经过1个闸门时间,读取、保存定时器2计数值,重置时器2计数值开始下一次测量。
(3)计算、显示频率值。

目前,基本测量功能已实现,待完善后开源,如果有需要当前版本来自行改善的可以发消息给我。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x

打赏

参与人数 2家元 +60 收起 理由
飞向狙沙 + 30 謝謝分享
慕名而来 + 30 優秀文章

查看全部打赏

发表于 2025-5-13 11:35:56 | 显示全部楼层
这个课题有挑战的地方是脉冲计数和门控的配合;   如何解决多计一个脉冲和小计一个脉冲的问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-13 12:19:15 | 显示全部楼层
mapleft 发表于 2025-5-13 11:35
这个课题有挑战的地方是脉冲计数和门控的配合;   如何解决多计一个脉冲和小计一个脉冲的问题 ...

这颗芯片功能设计不完美,它的输入捕获功能一次只能捕获一个脉冲产生一个捕获事件,如果能捕获N个脉冲再产生捕获事件,那样测量精度会高一些,现在只能用程序来实现这个功能。
如果待测频率不高,仍可使用输入捕获功能,捕获N次后再计算时间,那样,时间误差不超过2个定时器时钟周期,即(2/288MHz)。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-6-24 23:04:10 | 显示全部楼层
本帖最后由 mmxx2015 于 2025-7-1 13:08 编辑

修改硬件、软件后基本可用了,似乎精度还可以。

原理图和PCB





程序算法:先测量1秒大致脉冲数N,再测量(N*闸门时间)个脉冲,记录测量时间T,则频率f=(N*闸门时间)/T。T的单位=(1/288)μS,这样做可以尽量在脉冲开始时启动、结束计时,使时间T尽量接近真实时间。

测频示意图


源程序


测试效果
(1)测量另一个OSC5A2B02-10MHz恒温晶振输出
闸门时间=1秒


闸门时间=5秒


闸门时间=10秒



没有频率很准的频率可调信号源,假设测量OSC5A2B02结果是准的,再分别用逻辑分析仪输出10MHz、32KHz信号做对比,设置10 MHz,测得9999874.05 Hz,设置32 KHz,测得31998.6 Hz,按比例换算,精度还可以。
10MHz
Hz
OSC5A2B02
9999999.68
 



逻辑分析仪10MHz
9999874.05
比例
0.99998744
 

逻辑分析仪32KHz
31998.6
比例
0.99995625



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

发表于 2025-6-25 09:40:49 | 显示全部楼层
不错的制作,很多简单的测试原理变成实际的测量设备都是一个辛苦的过程,从头脑风暴到纸上谈兵再到满屏代码个中艰难唯有动手者知道。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-6-25 10:43:17 | 显示全部楼层
慕名而来 发表于 2025-6-25 09:40
不错的制作,很多简单的测试原理变成实际的测量设备都是一个辛苦的过程,从头脑风暴到纸上谈兵再到满屏代码 ...

做这个本来是用来微调外挂32768Hz晶振的设备的时钟频率的,不过,结果不太理想,低频测量精度比较低,仿制的32768Hz选频放大电路还不能正常工作,还无法无接触感应测量。
回复 支持 反对

使用道具 举报

发表于 2025-6-25 13:11:00 | 显示全部楼层
mmxx2015 发表于 2025-6-25 10:43
做这个本来是用来微调外挂32768Hz晶振的设备的时钟频率的,不过,结果不太理想,低频测量精度比较低,仿 ...

我从来没弄过测量装置,另外那些年修老电视等家电弄晶体管电路也烦了、很多年不弄了很多知识都淡忘了,个人认为对于普通32k时钟晶振而言,其自身精度只是指标之一其温度稳定性才是影响精度的不可忽视的因素,想起初期的电子手表电路板上都带有一个微小的可调电容,可以把时间调的很准,但四季分明的地方气候变化时也要跟踪调校,这也是我喜欢RX8025T的原因。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-6-25 13:22:23 | 显示全部楼层
慕名而来 发表于 2025-6-25 13:11
我从来没弄过测量装置,另外那些年修老电视等家电弄晶体管电路也烦了、很多年不弄了很多知识都淡忘了,个 ...

这里是南方,冬季也就一个月左右,温度一般都在10℃以上,其它时间温度都在20℃~35℃之间,微调可以保证大部分时间误差不大。
回复 支持 反对

使用道具 举报

发表于 2025-6-25 13:42:01 | 显示全部楼层
mmxx2015 发表于 2025-6-25 13:22
这里是南方,冬季也就一个月左右,温度一般都在10℃以上,其它时间温度都在20℃~35℃之间,微调可以保证 ...

那就好很多,我这里东北,近些年我住的楼房添加外墙保温后室温在冬天的部分时间内和初夏季节能短暂的保持恒温25度左右但一年四季高到30多度低时20度波动也很多,也建议利用高频晶振通过单片机定时器获取1S脉冲试试,通过调整定时器赋值可以在微秒级别上调校,我这个没有理论依据但我早前做的一个类似的时钟曾经半年多误差还在秒以内。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-7-1 12:59:33 | 显示全部楼层
算法更新:实际计数周期=周期值+1,计算频率时取(TMR2_PR+1)作为脉冲数。
这样修改后,不同闸门时间的测频值差异很小了。

外部脉冲计数逻辑


修改算法后的程序



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-7-5 15:30:55 | 显示全部楼层
慕名而来 发表于 2025-6-25 13:42
那就好很多,我这里东北,近些年我住的楼房添加外墙保温后室温在冬天的部分时间内和初夏季节能短暂的保持 ...

用NP0电容补偿校准32768Hz晶振(x宝KDS 2x6 6pF 5ppm)频率差不多准后,分别在室温、冰箱冷冻后测量晶振频率,结果大概是这样,频率整体偏差每降低1℃降低0.058Hz。
温度(℃)
频率(Hz)
备注
0
32766.1
塑料袋保住冷冻20小时
1
32766.28
塑料袋保住冷冻6小时
32.4
32767.99
室温


回复 支持 反对

使用道具 举报

发表于 前天 11:39 | 显示全部楼层
mapleft 发表于 2025-5-13 11:35
这个课题有挑战的地方是脉冲计数和门控的配合;   如何解决多计一个脉冲和小计一个脉冲的问题 ...

可以用门同步去解决,周渭教授有研究论文。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-11-9 04:55 , Processed in 0.140401 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表