FastBond4挑战部分-基于ADF4351/4350的射频信号源设计
该项目使用了ADF4351,实现了射频信号源的设计,它的主要功能为:控制频率输出。
标签
嵌入式系统
射频
信号源
姜小豆
更新2026-04-27
148


1.项目概述

项目方向:无线-射频信号源

项目主题:基于ADF4351/ADF4350的射频信号源设计

项目介绍

本实验围绕ADF4350锁相环频率合成芯片,完成基础射频信号源的设计与验证工作。

项目内容包括:原理图设计、PCB Layout 以及底层驱动开发,实现了对芯片寄存器的配置和输出频率的控制。

系统通过MCU经SPI接口对ADF4350的寄存器进行编程,使芯片输出目标射频信号。在没有外接射频天线也没有频谱仪的情况下,直接使用RTL2832U SDR设备,对电路产生的近场辐射信号频率进行了测量,成功观测到与配置频率一致的信号输出,验证了频率合成与控制逻辑的正确性。


2.系统架构

系统框图:

1777131162194-c067f2c9-9079-40c1-84f6-8537295d751a.png


设计思路:频率生成使用ADF4350进行PLL合成,先计算好输出频率所需的寄存器值,使用MCU通过SPI协议配置到ADF4350,最后进行输出频率的检测。


硬件模块介绍

PLL 频率合成模块:ADF4351/ADF4350ADF4350 输出频率范围可达到 137.5MHz~4.4GHz,ADF4351输出频率范围为35MHz~4.4GHz)。(这两个芯片物理引脚通用,只是个别寄存器配置不一样,所以我描述时和画原理图时使用ADF4350进行描述,和ADF4351兼容的)。

时钟模块:使用25MHz晶振。

控制模块:板子引出SPI接口使用外部MCU进行通信。

电源模块:3.3V直接供电。

输出模块:SMA射频同轴连接器,以便接入其他系统(实际测试时直接用电路板的近场辐射区进行输出频率测量)。


3.关键实现

3.1 原理图

原理图总览:

1777135566158-34c27a43-1217-42fb-bee6-4aef5e10c07a.png


引脚说明:


1769053953535-3d0169e0-6f01-412f-8641-29cfba801b02.png

1769053971745-0e5e7ff8-8f8f-446b-8460-23cf4b8c3bdf.png


详细设计如下:

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

1777133896194-15e28ce4-7759-47aa-92b9-2c126b9535e8.png

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

1777133974622-a4e8d10f-a48f-41d3-bfed-46c090df6208.png

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

1777133999839-343eb784-1141-4c49-b194-ee7e5204d281.png

  • 19 23 24 都通过电容接地

1777134040700-d29f297c-b35f-4a62-9c87-8dc7680cee9b.png

  • 25 输出检测,接LED


1777134057382-e049683c-1040-4824-9d05-b908b23c13fe.png

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

1777134139060-4721f57f-60a9-4dee-8a1f-0ba027c0e4cb.png


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

1769053432275-69c02c92-e974-4448-ae7b-409057c40a2a.png

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

1777134171013-bef2439a-76c2-4cb5-9f4e-00b7b0175ffa.png

  • 29 接晶振

1774518789125-92f4a87e-c8e8-4b7c-8bf7-412699bbb617.png

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

1777135589206-d6ed8a98-d8b0-4c02-9ee7-786d2233d94a.png

3.2 PCB

3.2.1 PCB 总览图:

1777134407967-f4652b1d-3926-4bb9-b731-da70062f72ef.png

预览图

1777135908710-a2e7eae7-2be9-403c-bb53-398a97b87a9e.png

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


下面列出设计重点:

3.2.2 vture-cpout 部分

1777134625557-578aab1b-eae4-43a4-8d37-a9b16873fcf9.png


3.2.3 射频输出部分

1777134724417-50e3d189-d72d-49cf-8122-11b32d46292b.png


3.3 软件驱动

3.3.1 驱动

通信:使用类似SPI的协议进行通信,CLK(对应SPI CLK)、 DATA(对应SPI MOSI)、 LE(对应SPI CS)。

写入时序:

1777135662992-717efa59-afdd-437e-90d6-b3f2a36eb745.png

写入内容:通过SPI依次写入寄存器值(R5~R0的值)即可


3.3.2 计算输出频率

理论:

这颗芯片本质是一个 PLL 频率合成器:需要计算输出频率,计算公式见下图:

1776790197157-523b64e6-5944-45a9-9a2f-0cb6aea30c49.png


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

1776790222644-f4362d84-aa70-435c-9f9a-626d89486e29.png


频率计算:

当前已经确定的值或者要设定值有:

  • 参考时钟输入为25MHz晶振,
  • RFdiv=16 (输出分频设定16分频)
  • 鉴相器 Fpfd = 25MHz (设置 T D 均为0)
  • MOD = 400
  • 预计输出200Mhz, 则 Fvco = 200*16 = 3.2GHz
  • 计算INT 和 FRAC:通过一个N来计算

1776791503356-a42ef88d-41af-4bb0-a5a4-5bea1122bae7.png

N = 3200/25 = 128
INT = 128
FRAC = 0
R0中设置 INTFRAC


最终寄存器值为

// 寄存器基础值(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

计算过程如下:

1776986140452-c5fd497c-4943-4bc1-be7c-57f35c0340a8.png


4.验证与结果

硬件功能展示

板子商店并使用mcu进行驱动写入:(裸漏的杜邦线是好的调试手段,下一节说明)

1777136790139-8da0036f-243c-4a13-9312-6d8cd29de1c9.png

使用RTL2832U SDR查看频率:

1777136858925-90d2e61f-254d-4188-8a13-cc7d18f633f7.png

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

1777136742778-0ebd8093-8e98-4521-bc66-cfaeec56a7b8.png

可以看到输出频率为209.375附近,与寄存器控制后预期频率相同,代表此信号源硬件和驱动可用。


5.总结


5.1 遇到难题和解决办法

一共打了4次板(每一次都表示遇到问题),来一张全家福

1777137058510-1eeea218-b4b9-4e0e-bfd0-8638a01e5018.png

从左到右依次说明,

第一版:焊接练习。因为ADF4351比较贵,为了焊接成功,焊接了QFN32(4mm * 4mm)封装的stc mcu,点灯。后来知道 ADF4351是类似QFN32的 LFCSP(5*5mm),相当于是ADI的QFN32别名。

第二版:随便找了个参考画了原理图和pcb,打板,焊接,发现芯片烫的不行,大概能有个50~60度,完了。

第三版:痛定思痛,好好画了下原理图和pcb,买了个平替的芯片继续,发现电流不太正常(太低了)。想通过寄存器是否写入成功,但是这个SPI不能读取,不过muxout引脚可以读取一些中间过程,可是我偷懒没引出muxout,便用飞线引出了一次,结果还是读取失败。

1777137632063-32232c09-c860-459a-8b26-3040808cb0d5.png


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

1777137764239-34816f52-f5d2-4931-8a30-3aff1be21b86.png


5.2 心得

焊接经验:

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

1777138089100-592495af-64c1-492c-9d03-6f7e136c8634.png

1777138125644-ac75b98a-aca8-4b1b-88f4-3b54e3b520f1.png

调试经验:如果用逻辑分析仪等设备分析数据时,有那种小夹子,但是杜邦线夹不住时可以在杜邦线剥开1-2mm来进行测试,如果有多根线,剥的位置要错开防止短路。

芯片数据计算:寄存器计算时需要对照手册进行细致计算,用计算器(程序员模式)或者其他工具验证位是否设置正确。


5.3 关于近场区和远场区的一个疑惑

为了知道我当前天线和板子距离30cm这种属于辐射近场区还是远场区,找到了一篇 区分天线的感应近场区、辐射近场区和远场区

1777138394259-0f57dfcc-661d-43be-aa73-c670bec6ccd8.png

当前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。


附件下载
代码和原理图20260427.rar
团队介绍
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号