新闻中心

EEPW首页 > 测试测量 > 设计应用 > 用免费的4层PCB,做了个很好用的仪器!实测一下!

用免费的4层PCB,做了个很好用的仪器!实测一下!

作者: 时间:2024-09-27 来源:嘉立创 收藏

做了个便携时钟源,4层板。

本文引用地址:https://www.eepw.com.cn/article/202409/463299.htm

主控采用

下文将分享——功能/亮点,实测说明,硬件设计,软件设计,成本说明,开源网址

一、功能/亮点

  • 输出20M-9800MHz射频信号,两个射频信号,一个参考输入,一个参考输出

  • 使用上位机、串口控制

  • 频率分辨率到1hz

  • 单个TYPEC口供电+通信+上位机图形化配置,无需单独配置各种寄存器,即插即用

  • 板载ocxo作为基准或锁定外部基准,支持锁定内部/外部参考信号输入

  • 整机启动时(恒温晶振预热)功耗约为4W,运行时稳定功耗约为2W-3W。

  • 硬件配置:1个type-c、6个状态指示灯。含:电源正常指示、锁定指示,实用内部OCXO指示、使用外部参考源指示、两个射频信号是否输出指示

二、实测一下

1.射频信号相噪特性

6GHz测试相位噪声:100hz处约 -70dBc

受限于仪器设备该档位的底噪(实际相噪会更小),无法测到更远位置的相位噪声情况。

  • 测试仪器:Keysight N9000B

  • 输出功率:0dBm

  • RBW:5.1Hz

在RBW=1Hz条件下测试。

6GHz测试相位噪声:100hz处约-80dBc

2.射频信号输出

下图为SDS804测试的114.5141MHz,双通道输出。

下图为Keysight测试的7.1GHz输出波形与FFT谱。

由于该PLL的VCO最大振荡频率为7100MHz,再往上需要使用片内的倍频器对VCO进行倍频,因此有较大的次谐波(怀疑是芯片没做次谐波的抑制),测试结果如下图所示。

可见FFT谱中9.8GHz输出时,有较大的4.6GHz的次谐波成分。

3.参考信号输出

测试仪器:Keysight

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

那么问题就来了,想做一个这样的“仪器”,如何设计软硬件呢?

三、硬件设计

原理图1

原理图2

原理图3

PCB图

1.说明

4层板,叠层:7628;板厚:1.6mm;RF单端:13.75mil

铝型材外壳尺寸23*54*80

内尺寸卡槽:51;板宽:47;最大高度:16

OCX0高度:12mm

四、软件设计

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

1.UART驱动

串口发指令控制,有十余条指令,可覆盖基本功能,所有命令及解释如下图所示:

2.上位机

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

3.实操说明

最主要的控制函数为LMX2592_WRITE_FREQ,用来配置PLL输出频率及基本寄存器。下面仅展示流程,详细代码见工程附件(参考第6章指引)。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=%fn",RX_freq);
     LMX2592_WRITE_FREQ(RX_freq);
   }  
       ...... 其余部分省略
       }

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

最后补充一下整体原理:

本质上就是基于锁相环对输入参考信号任意倍频,获得想要的输出信号想详细了解的可以去Bing搜一搜。

这次完成度蛮高的,有外壳有上位机,即插即用,尺寸也很小,一手掌握,揣在口袋里就走。

五、成本说明

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

参考资料:
https://oshwhub.com/z_star/pocket-rf-clock-source



关键词: STM32F411 DIY

评论


相关推荐

技术专区

关闭