测试0.8V控制电压时的频率
最后给个调试建议:用频谱仪观察VCO输出时,如果看到频率在1.92GHz附近"呼吸"(轻微波动),别慌,这是环路正在收敛的表现。最近在折腾射频电路的时候,突然发现1.9GHz附近的频段真是个神奇的存在——5G、WiFi6、蓝牙都在这个区域蹦迪。别急着关页面,重点在后面——这个频率要和VCO输出分频后的信号做相位比较,就像让两个跑步的人保持步调一致。实际电路中,变容二极管的C-V曲线可能更复杂,但原
锁相环PLL-1.9Ghz电路 锁相环电路参数: 输出频率1.92GHz,采用LC_VCO 输入参考频率30MHz 分频器是64分频 电荷泵电流100uA 非常适合新手学习
最近在折腾射频电路的时候,突然发现1.9GHz附近的频段真是个神奇的存在——5G、WiFi6、蓝牙都在这个区域蹦迪。今天咱们就手搓一个1.92GHz的锁相环电路,用最直白的语言和代码带新手入门。
先看核心配置:
- VCO类型:LC结构(电感电容的组合,高频场合的老演员)
- 参考时钟:30MHz晶振(比我家挂钟准多了)
- 分频比N=64(小学数学题预警)
- 电荷泵电流:100μA(别小看这点电流,能量大着呢)
先整点实在的,Verilog分频器代码走起:
module div64(
input clk_in,
input rst,
output reg clk_out
);
reg [5:0] counter;
always @(posedge clk_in or posedge rst) begin
if(rst) begin
counter <= 6'd0;
clk_out <= 1'b0;
end
else if(counter == 6'd63) begin // 0到63共64个周期
counter <= 6'd0;
clk_out <= ~clk_out; // 每次翻转产生分频
end
else begin
counter <= counter + 1;
end
end
endmodule
这个计数器每计满63次就翻个跟头,最终输出频率=30MHz/64=468.75kHz。别急着关页面,重点在后面——这个频率要和VCO输出分频后的信号做相位比较,就像让两个跑步的人保持步调一致。

锁相环PLL-1.9Ghz电路 锁相环电路参数: 输出频率1.92GHz,采用LC_VCO 输入参考频率30MHz 分频器是64分频 电荷泵电流100uA 非常适合新手学习
说到VCO,LC结构的调频特性可以用这个Python代码模拟:
import numpy as np
def lc_vco(control_voltage):
L = 10e-9 # 10nH电感
C_varactor = 0.5/(control_voltage+0.1) # 变容二极管模型
return 1/(2*np.pi*np.sqrt(L*C_varactor))
print(f"{lc_vco(0.8)/1e9:.2f} GHz") # 输出1.92GHz左右
这个简化模型展示了电压如何控制频率。实际电路中,变容二极管的C-V曲线可能更复杂,但原理相通——电压升高→电容减小→振荡频率升高。
电荷泵是PLL的动力核心,100μA的电流设定直接影响锁定速度。举个栗子,当相位差存在时:
// 伪代码表示充放电过程
if(ref_clk_phase > fb_clk_phase){
charge_pump_current = +100e-6; // 向上泵送
} else {
charge_pump_current = -100e-6; // 向下抽取
}
这个电流给环路滤波器充电,就像给自行车打气——充太快会爆胎(环路震荡),充太慢追不上(锁定时间过长)。用Python算个合适的RC值:
I_cp = 100e-6
Kvco = 300e6 # VCO增益300MHz/V
N = 64
f_ref = 30e6
omega = 2*np.pi*f_ref/N/10 # 取1/10参考频率为带宽
C = I_cp*Kvco/(N*omega**2) # 电容计算
R = np.sqrt(2)/(omega*C) # 电阻计算
print(f"R={R:.1f}Ω, C={C*1e9:.1f}nF") # 典型值约R=1.2kΩ, C=22nF
这个滤波器就像给系统装了个减震器,既允许快速响应又不至于振荡。新手常见坑点:电容值过小会导致纹波过大,过大又会让响应变慢。

最后给个调试建议:用频谱仪观察VCO输出时,如果看到频率在1.92GHz附近"呼吸"(轻微波动),别慌,这是环路正在收敛的表现。拿个螺丝刀微调下电感间距,当频谱突然"啪"地稳定下来时——恭喜,你的PLL成功锁定了!
更多推荐
所有评论(0)