嘉立创产业服务站群
发作品签到
专业版

口袋射频时钟源

工程标签

1.4w
0
0
44

简介

做了个便携时钟源,两通道的20M到9.8Ghz输出,一个参考输入,一个参考输出。支持使用板载ocxo作为基准或锁定外部基准。可以用上位机图形化配置,频率分辨率到1hz。

简介:做了个便携时钟源,两通道的20M到9.8Ghz输出,一个参考输入,一个参考输出。支持使用板载ocxo作为基准或锁定外部基准。可以用上位机图形化配置,频率分辨率到1hz。
星火计划2024

开源协议

CC BY 3.0

创建时间:2024-04-23 11:43:06更新时间:2024-04-25 08:30:58

描述

项目说明

这几天做了一个便携射频时钟源,尺寸很小,一手掌握,揣在口袋里就走。双通道输出,频率范围为20MHz到9.8GHz,频率分辨率理论可达1Hz。输入方面有一个参考输入,一个参考输出,支持使用板载ocxo作为基准或锁定外部基准。控制方面通过TYPEC口进行控制+供电,做到即插即用。目前是串口发指令控制,写了十条指令,基本功能均能覆盖。后续会考虑用QT搭建上位机,图形化配置。

PS: QT挺好玩的,玩了两天简单做了个上位机,现已可以图形化控制便携射频时钟源了,TYPEC连上电脑即用,无需单独配置各种寄存器。

77c3af708fddcd5b8d7162e9e2ccf6f6.jpg
072d1ec839d2838d57b0dd71ce102083.jpg
2687d15ab2318d7423186f4f45d2aed6.jpg

开源协议说明

<font color="Red">未经作者允许,禁止商用。转载或引用需注明原作者与工程链接</font>

项目相关功能

1.整版资源概述:

本射频源板载OCXO,默认参考信号频率为10MHz。板载STM32F411进行控制与跟上位机通信。射频链路均匹配到了50Ω阻抗,板载非反射式射频开关用于对参考信号切换,支持外部参考信号输入。板载低抖动时钟缓冲器,附加一路参考信号输出。并且本次设计包括了<font color="Orange">铝型材外壳与PCB面板</font>,将PCB及元件封装起来,更像一个真正的口袋仪器。

2.TYPEC接口:

本次供电与通信使用单个TYPEC口完成,无需驱动,即插即用(使用串口芯片为CH343P,绝大部分电脑可以免驱运行)。处于保护考虑,TYPEC接口含有<font color="Orange">ESD+共模滤波EFUSE</font>,防止烧坏电脑接口。

3.电源管理:

为了减小小数分频模式的杂散,本次并未引入DC-DC电源,各项供电均采用的超高PSRR、低噪声的LDO+穿心电容滤波器,以获得较为干净的电源,引入更小的噪声。整机启动时(恒温晶振预热)功耗约为4W,运行时稳定功耗约为2W-3W。

4.恒温晶振参考源:

恒温晶振采用DAPU的O22S-1802(全新约50元),高稳定性,低相位噪声,标称参数1KHz@10MHz 相噪典型值为-150dBc,算是全新的OCXO中比较具有性价比了。
f820af9b7b4f58dd76ff9afdcb4ae4f5.png

5.PLL芯片:

锁相环频率合成器采用的TI的LMX2592(全新约75),输出频率范围为 20 至 9800MHz,有着优秀的VCO相位噪声,在输出为 6GHz 且偏移为 1MHz 时为 –134.5dBc/Hz。归一化 PLL本底噪声为-231dBc/Hz。支持分数 N 和整数 N 模式,具有一个 32 位分数分频
器,支持选择合适的频率。可编程输出功率水平。
ea87b16094c065056d8bae2a15951890.png

项目属性

本项目为首次公开,为本人原创项目。项目未曾在别的比赛中获奖。

项目进度

一、硬件部分:

硬件部分验证已全部完成,所有目标功能均已实现,可正常输出20M-9800MHz射频信号,可正常锁定外部参考或者内部参考信号,参考信号缓冲输出也正常。

1.射频信号相噪特性:6GHz测试相位噪声为100hz处约 -70dBc ,受限于仪器设备该档位的底噪(实际相噪会更小),无法测到更远位置的相位噪声情况。(测试仪器为Keysight N9000B,输出功率为0dBm,RBW为5.1Hz) 第二张图为在RBW=1Hz条件下测试,6GHz测试相位噪声为100hz处约-80dBc

Screen_0001.png3665ad2df39135d4c70597eb792024b1.jpg

2.射频信号输出:可正常输出理论分辨率为1Hz的20M-9800M内任意频点信号,如图1为SDS804测试的114.5141MHz,双通道输出;图二为Keysight 测试的7.1GHz输出波形与FFT谱。

06e8ebf679ba9c090f286ce3e5df7dcc.png
Screen_2024-03-15000003.png
其次,由于该PLL的VCO最大振荡频率为7100MHz,再往上需要使用片内的倍频器对VCO进行倍频,因此有较大的次谐波(怀疑是芯片没做次谐波的抑制),测试结果如下图所示,可见FFT谱中9.8GHz输出时有较大的4.6GHz的次谐波成分
Screen_2024-03-15000002.png

3.参考信号输出:可正常输出10MHz参考信号,输出阻抗为50Ω,10MHz。峰峰值为1.72V,上升沿为330ps左右(甚至可以用来做TDR),如下图,测试仪器来自Keysight

Screen_2024-03-15000001.png

4.显示与通信:通信与LED显示功能均正常,共有6个LED,分别为Power Good信号、LOCK信号、使用内部参考源信号、使用外部参考信号、以及AB通道输出使能信号。

b3c7f9e3fc95ed20668b5e3e1dae32a1.jpg

二、软件部分:

1.PLL驱动:

已完成LMX2592各个寄存器控制,可实现预定功能。

2.UART驱动:

串口发指令控制,有十余条指令,可覆盖基本功能。所有命令均以'\n'(0x0A)结尾,并写了帮助菜单,输入HELP\n即可获取帮助菜单,所有命令及解释如下图所示:

3e8d025169aabfb731599edcf8bc7124.png

3.上位机:

玩了玩QT6,简单写了个图形化上位机,该有的功能基本都有了,目前支持Win平台,可控制输出频率,参考信号切换,N分频模式,每个通道输出使能与关闭,每个通道的输出功率等。
e36a1780be65b15471a88477b136723e.png

设计原理

没什么好说的,本质上就是基于锁相环对输入参考信号任意倍频,获得想要的输出信号,想详细了解的可以去Bing搜一搜。只是这次完成度蛮高的,基本上封装成一个产品的样子了,有外壳有上位机,即插即用,尺寸也很小,一手掌握,揣在口袋里就走。

软件说明

底层驱动基于C语言,使用STM32HAL库开发,开发软件为Keil v5

最主要的控制函数为LMX2592_WRITE_FREQ,用来配置PLL输出频率及基本寄存器。下面仅展示流程,详细代码见工程附件。LMX2592寄存器部分代码为LMX2592.c /.h文件中

void LMX2592_WRITE_FREQ(double freq){
	// Fvco = Fpd x PLL_N_PRE x (PLL_N + PLL_NUM / PLL_DEN)
	// The VCO core covers an octave from 3.55 to 7.1 GHz.
	// F_PFD=20Mhz Fout = pfd * (N) / channel_div;   input freq is in Mhz
	// denominator = 20M(0x0131 2D00 )    the resolution = 1Hz
    /****************** REF PART ********************/	

    /****************** OUTPUT PART ********************/

    /****************** NDIV SET ********************/	

    /****************** STRAT WORK ********************/	
}

与上位机通信、接收命令,发送状态函数在UART_CTRL.c /.h文件中,主要依赖strstr函数对命令进行检测。UART通信采用的中断接收。

    void LMX2592_FREQ_CTRL(){

        temp_ret=strstr(CTRLBuffer, "FREQ=");
		if(temp_ret){
			RX_freq=atof(temp_ret+5);
			
		if(debug_outen) printf("freq=%f\n",RX_freq);
			LMX2592_WRITE_FREQ(RX_freq);
		}	
        ...... 其余部分省略
        }

上位机基于QT6 Cmake,比较简单,但基本功能均已实现

eba287b2c1537ae18d2a0cbee6f06d11.png

  1. 串口选择区,确保射频时钟源连接上电脑后,点击<font color="Orange">Scan COM</font>获取到射频时钟源串口号,下拉选择串口为射频时钟源,点击<font color="Orange">Open COM</font>打开串口,如果连接成功,上面的Select COM指示灯将会变为<font color="Green">绿色</font>

  2. 接上串口后,再对话框中输入想要输出的频率,单位是Mhz,范围为20-9800,而后点击<font color="Orange">Set FREQ</font>设置频率,如果射频时钟源成功锁定,(5)的Locked将会转为<font color="Green">绿色</font>,且仪器上的LOCK指示灯将会亮起。

  3. 此处选择N分频模式,可选整数分频与不同阶数的小数分频,默认为小数分频,阶数为3.

  4. 此处选择参考源为内部的OCXO还是外部输入,选择后应重新输入频率进行VCO校准与锁定

  5. lock指示灯,如果射频时钟源成功锁定,(5)的Locked将会转为<font color="Green">绿色</font>,且仪器上的LOCK指示灯将会亮起。

  6. 此处为控制AB通道输出使能、输出功率。如果要A通道输出,勾选上<font color="Orange">Enable CHA</font>,在下面的下拉栏里可以选择输出功率大小。下方B通道控制同A一样。

实物展示

77c3af708fddcd5b8d7162e9e2ccf6f6.jpg
8a58186fe75c33fb97fee18a7763119b.png
659291e4c61d74e09966e82ae0b330d2.png

注意事项

板子上的金色小颗粒区域为镀金铜颗粒,兼顾散热与装饰的作用,尺寸为3x3x1.5 mm

焊接时可最后再焊OCXO,防止阻挡。

铝型材外壳尺寸为54x23x80 mm 黑色漆,约9元一个

由于板子功耗较大,插入铝盒时应在背面贴上高导热软硅胶垫片,使板子与铝外壳紧密接触,将热量导到外壳去。导热软垫厚度为2.5mm,贴上板子往铝盒子中推时会被外壳自动切削掉多余的厚度,以达到紧密连接

PCB上STM32烧录口为SWD,可用CMSIS-DAP进行烧录

PCB通过SMA接口固定在前面板上,再通过前面板的螺丝固定在外壳上。安装时可以先安装后面板(有TYPEC的一侧),而后将装好前面板的PCB推入外壳,后固定。

附件中的Protable RF Synthesizer中的上位机,点击其中的.exe文件启动

附件中LMX2592文件为STM32驱动,包含STM32 cubemx配置文件

由于上传大小限制,完整演示视频和说明将发布在B站,链接在这里: 口袋射频时钟源

总体成本大概150元以内,预祝各位制作成功。

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
1
Protable RF Synthesizer.zip
1132
2
LMX2592.zip
1112
3
屏幕录制 2024-04-24 131543_compressed.mp4
691
克隆工程
添加到专辑
0
0
分享
侵权投诉

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航