1.项目概述
项目方向:无线-射频信号源
项目主题:基于ADF4351/ADF4350的射频信号源设计
项目介绍:
本实验围绕ADF4350锁相环频率合成芯片,完成基础射频信号源的设计与验证工作。
项目内容包括:原理图设计、PCB Layout 以及底层驱动开发,实现了对芯片寄存器的配置和输出频率的控制。
系统通过MCU经SPI接口对ADF4350的寄存器进行编程,使芯片输出目标射频信号。在没有外接射频天线也没有频谱仪的情况下,直接使用RTL2832U SDR设备,对电路产生的近场辐射信号频率进行了测量,成功观测到与配置频率一致的信号输出,验证了频率合成与控制逻辑的正确性。
2.系统架构
系统框图:

设计思路:频率生成使用ADF4350进行PLL合成,先计算好输出频率所需的寄存器值,使用MCU通过SPI协议配置到ADF4350,最后进行输出频率的检测。
硬件模块介绍
PLL 频率合成模块:ADF4351/ADF4350(ADF4350 输出频率范围可达到 137.5MHz~4.4GHz,ADF4351输出频率范围为35MHz~4.4GHz)。(这两个芯片物理引脚通用,只是个别寄存器配置不一样,所以我描述时和画原理图时使用ADF4350进行描述,和ADF4351兼容的)。
时钟模块:使用25MHz晶振。
控制模块:板子引出SPI接口使用外部MCU进行通信。
电源模块:3.3V直接供电。
输出模块:SMA射频同轴连接器,以便接入其他系统(实际测试时直接用电路板的近场辐射区进行输出频率测量)。
3.关键实现
3.1 原理图
原理图总览:

引脚说明:


详细设计如下:
- 1 2 3 通信使用兼容spi的通信 CLK DATA LE,30脚muxout也接出来
- 4 芯片使能,上拉到3.3v
- 5 sw 不接
- 26 RF关断引脚,接电源

- 6 10 16 17 28 32 接电源 3.3v(3.0~3.6v),每个都接104 10pf 电容,16 17 为一个脚可以当一个。

- 8 9 11 18 21 27 31 33 接地
- 22 复位引脚,和GND接电阻,控制电荷泵电流

- 19 23 24 都通过电容接地

- 25 输出检测,接LED

- 7 和 20, 控制vco的环路滤波

- 12,13 射频输出使用单端输出,RFOUTA-接GND,RFOUTA+ 如下设计

后来参考其他设计改为如下设计:

- 29 接晶振

- 引出电源、通信引脚,加一个电源灯

3.2 PCB
3.2.1 PCB 总览图:
预览图

背面丝印是旅行者2号(Voyager 2)的任务图(使命轨迹:造访四颗气态巨行星 木星、土星、天王星、海王星及其卫星)。旅行者2号是一艘于1977年8月20日发射的美国宇航局无人星际航天器,截至现在依旧正常运作,是有史以来运作时间最久的空间探测器。
下面列出设计重点:
3.2.2 vture-cpout 部分

3.2.3 射频输出部分

3.3 软件驱动
3.3.1 驱动
通信:使用类似SPI的协议进行通信,CLK(对应SPI CLK)、 DATA(对应SPI MOSI)、 LE(对应SPI CS)。
写入时序:

写入内容:通过SPI依次写入寄存器值(R5~R0的值)即可
3.3.2 计算输出频率
理论:
这颗芯片本质是一个 PLL 频率合成器:需要计算输出频率,计算公式见下图:

其中鉴相器频率Fpfd计算公式如下图:

频率计算:
当前已经确定的值或者要设定值有:
- 参考时钟输入为25MHz晶振,
- RFdiv=16 (输出分频设定16分频)
- 鉴相器 Fpfd = 25MHz (设置 T D 均为0)
- MOD = 400
- 预计输出200Mhz, 则 Fvco = 200*16 = 3.2GHz
- 计算INT 和 FRAC:通过一个N来计算

N = 3200/25 = 128
INT = 128
FRAC = 0
在R0中设置 INT 和 FRAC。
最终寄存器值为
// 寄存器基础值(25MHz参考时钟优化)
#define ADF_R0_BASE 0x00400000 // INT+FRAC,运行时计算, INT=128, FRAC=0
#define ADF_R1_BASE 0x08000c81 // MOD=400, 预分频器8/9,phase=1
#define ADF_R2_BASE 0x04005fc2 // R=1, 正极性
#define ADF_R3_BASE 0x00000003 // 时钟分频, 未使用
#define ADF_R4_BASE 0x00CC803C // 反馈=VCO, RF分频=16, 输出=+5dBm, BandSelect=200
#define ADF_R5_BASE 0x00400005 // 数字锁定检测
为了对比,再计算一个R0(0x00430000),对应频率为209.375
计算过程如下:

4.验证与结果
硬件功能展示:
板子商店并使用mcu进行驱动写入:(裸漏的杜邦线是好的调试手段,下一节说明)

使用RTL2832U SDR查看频率:

在输出209.375MHz频率时,使用RTL2832U SDR查看频率:

可以看到输出频率为209.375附近,与寄存器控制后预期频率相同,代表此信号源硬件和驱动可用。
5.总结
5.1 遇到难题和解决办法
一共打了4次板(每一次都表示遇到问题),来一张全家福

从左到右依次说明,
第一版:焊接练习。因为ADF4351比较贵,为了焊接成功,焊接了QFN32(4mm * 4mm)封装的stc mcu,点灯。后来知道 ADF4351是类似QFN32的 LFCSP(5*5mm),相当于是ADI的QFN32别名。
第二版:随便找了个参考画了原理图和pcb,打板,焊接,发现芯片烫的不行,大概能有个50~60度,完了。
第三版:痛定思痛,好好画了下原理图和pcb,买了个平替的芯片继续,发现电流不太正常(太低了)。想通过寄存器是否写入成功,但是这个SPI不能读取,不过muxout引脚可以读取一些中间过程,可是我偷懒没引出muxout,便用飞线引出了一次,结果还是读取失败。

第四版:将muxout引出重新打板,重新买芯片。为了确保焊接成功(上一版用风枪焊接的,这一版打算用焊台),打了个钢网。焊接成功,调试成功。

5.2 心得
焊接经验:
- pcb设计时最好把元件放到一面,用焊台焊接很方便
- 钢网很好用
- 普通项目用0603贴片阻容大小刚刚好
- 焊接准备是可以用这种元件盒将所需元件放好,不用贴标签,直接用表格标记随时可更改


调试经验:如果用逻辑分析仪等设备分析数据时,有那种小夹子,但是杜邦线夹不住时可以在杜邦线剥开1-2mm来进行测试,如果有多根线,剥的位置要错开防止短路。
芯片数据计算:寄存器计算时需要对照手册进行细致计算,用计算器(程序员模式)或者其他工具验证位是否设置正确。
5.3 关于近场区和远场区的一个疑惑
为了知道我当前天线和板子距离30cm这种属于辐射近场区还是远场区,找到了一篇 区分天线的感应近场区、辐射近场区和远场区。

当前L=0.2m,λ = c/f = 3e8/200e6=1.5
2*0.04/1.5 = 0.05m
所以我超过5厘米以上就是远场区?但是AI说超过1m才是远场区。
AI解惑:
这个结果在工程上是“数学成立,但物理上不太靠谱”的
原因:对小天线(D ≪ λ)这个公式会失真
现在:
- λ = 1.5 m
- D = 0.2 m
D ≈ λ / 7.5(属于“小天线”)
这时候:
- 远场公式给出 很小的距离(几厘米)
- 但实际测量中:
远场往往要到 λ/2 ~ 几个 λ 才“干净”
更靠谱的经验判断
对于你这个 200 MHz:
- λ = 1.5 m
经验上:
区域 | 大致范围 |
|---|---|
感应近场 | < 0.1 ~ 0.2 m |
辐射近场 | 0.2 m ~ 1 m |
远场 | > 1 m(更稳) |
所以我这个算时近场辐射区测量的信号。
5.3 总结
通过本次的射频信号源实验,理解了 PLL 频率合成原理,理解了一些射频的基本概念,学会使用SDR做调试工具。
这是第一个射频相关的玩具,以后会继续做下去,直到完成一个SDR。
