eblc1388 发表于 2011-11-19 23:19:06

使用Mega48输入捕获, 用 GPS 1PPS 来校准恒温晶振 10MHz OCXO 至 0.01ppm或更好

今天想把 10MHz 的恒温晶振调校一下, 但没有频标, 只有 GPS 1PPS 讯号, 於是快速搭了以下简单电路, 效果还不错, 可非常容易达到0.01ppm或更好。

恒温晶振 10MHz OCXO 的输出是正弦波, 弄成方波作为 M48 时钟, 而 GPS 的 1PPS 用作为 ICP1 触发之用。

M48 的 Timer1 时钟设定使用最高速, 即10MHz。Timer1 溢出中断再用来递增一个16位元的变量, 所以 Timer1 等效长度是 32-Bit。Timer1 一直计数, 并不停止, 所以不久这32位便满溢并从零再开始。

每次输入捕获後都把捕获得到的值(32位), 和目标值(32位)相比较, 得出误差值, 在LCD显示, 然後把目标埴增大 10,000,000, 等待下次输入捕获出现。

不难明白, 如果恒温晶振输出是 10,000,001 或 9,999,999Hz 时, 误差值便每秒增加或减小一, 当然因为捕获与时钟相位问题, 当中会有+1 或 -1出现, 但趋势是非常明显的。

把恒温晶振 OCXO 的可变电阻调一下, 便可令误差值停留一段时间才改变, 如超过 10 秒才跳变一次, 即频率为 10,000,000.1Hz 或 9,999,999.9Hz, 也就是 0.01ppm。

我用的恒温晶振外接20圈的可变电阻, 可以调校到1圈内+/-45度, 令误差在多於一分钟後才增加或减小1。

http://cache.amobbs.com/bbs_upload782111/files_47/ourdev_696950JSLNN9.jpg
(原文件名:GPSDSO_M48_1.jpg)

http://cache.amobbs.com/bbs_upload782111/files_47/ourdev_696951QS3SLL.jpg
(原文件名:GPSDSO_M48_2.jpg)

beiguoqishi 发表于 2012-2-11 11:58:59

有用,顶。

lionsg 发表于 2012-6-20 17:33:37

mark:GPS驯服本地时钟

Q28182900 发表于 2012-9-4 14:56:21

lihe 发表于 2012-11-30 15:51:20

mark,有帮助。

hackerboygn 发表于 2012-11-30 16:12:23

一般GPS的1PPS抖动较大,授时GPS模块相对好些。
用简单的模拟电路让1PPS驯服OCXO,达到0.001ppm应该没什么问题,只是稳定时间过长{:titter:}
页: [1]
查看完整版本: 使用Mega48输入捕获, 用 GPS 1PPS 来校准恒温晶振 10MHz OCXO 至 0.01ppm或更好