Tool/software:
1.请问LMX2594是集成VCO的频综器件,VCO里面基频的交叠区宽度有多少?
2.常温条件下全辅助寄存器配置,实现跳频,偶尔会出现失锁现象,请问这样的配置合理吗?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您是如何获得完整的辅助 VCO 参数的
1.每次上电时,在无援助的情况下锁定后,去回读,每个点都会回读后存起来。
您是否对所有设备使用相同的查找表
2.不是的,不同的芯片回读后有不同的表。
您切换频率的频率
3.会一直扫频使用,2ms发一次数据。
请参考实测波形和详细问题描述
完全协助步骤如下:
按照正常模式将VCO段:7500M-15000M每隔4.8M进行锁定,回读寄存器R110,得到VCO大段码值,赋给R20寄存器相应的位;回读寄存器R111,得到VCO小段码值,赋给R19寄存器相应的位;回读寄存器R112,得到VCO幅度值,赋给R16寄存器相应的位;
图1
参数 datareset1 = 24'h002496;
参数 datareset0 = 24'h00249C;
参数 data0 = 24'H700000;
参数 data1 = 24'h6F0000;
参数 data2 = 24'h6E0000;
参数 data3 = 24'h6D0000;
参数 data4 = 24'h6C0000;
参数 data5 = 24'h6B0000;
参数 data6 = 24'h6A0000;
参数 data7 = 24'H690021;
参数 data8 = 24'H680000;
参数 data9 = 24'H670000;
参数 data10 = 24'h663F80;
参数 data11 = 24'H650011;
参数 data12 = 24'H640000;
参数 data13 = 24'H630000;
参数 data14 = 24'H620200;//
参数 data15 = 24'H610888;
参数 data16 = 24'H600000;
参数 data17 = 24'h5F0000;
参数 data18 = 24'h5E0000;
参数 data19 = 24'h5D0000;
参数 data20 = 24'h5C0000;
参数 data21 = 24'h5B0000;
参数 data22 = 24'h5A0000;
参数 data23 = 24'H590000;
参数 data24 = 24'H580000;
参数 data25 = 24'H570000;
参数 data26 = 24'H560000;
参数 data27 = 24'h55D300;//
参数 data28 = 24'H540001;
参数 data29 = 24'H530000;
参数 data30 = 24'h521E00;
参数 data31 = 24'H510000;
参数 data32 = 24'H506666;//
参数 data33 = 24'h4F0026;
参数 data34 = 24'h4E029D;//-----------------
参数 data35 = 24'h4D0000;
参数 data36 = 24'h4C000C;
参数 data37 = 24'h4B0840; //分频比,4B0800:2分频;4B0840:4分频;
参数 data38 = 24'h4A0000;
参数 data39 = 24'h49003F;
参数 data40 = 24'H480001;
参数 data41 = 24'H470081;//
参数 data42 = 24'h46C350;
参数 data43 = 24'h450000;
参数 data44 = 24'h4403E8;
参数 data45 = 24'h430000;
parameter data46 = 24'h4201F4;
parameter data47 = 24'h410000;
parameter data48 = 24'h401388;
parameter data49 = 24'h3F0000;
parameter data50 = 24'h3E0322;
parameter data51 = 24'h3D00A8;
parameter data52 = 24'h3C0000;
parameter data53 = 24'h3B0001;
parameter data54 = 24'h3A9001;
parameter data55 = 24'h390020;
parameter data56 = 24'h380000;
parameter data57 = 24'h370000;
parameter data58 = 24'h360000;
parameter data59 = 24'h350000;
parameter data60 = 24'h340820;
parameter data61 = 24'h330080;
parameter data62 = 24'h320000;
parameter data63 = 24'h314180;
parameter data64 = 24'h300300;
parameter data65 = 24'h2F0300;
parameter data66 = 24'h2E07FC;
parameter data67 = 24'h2DC0DF; //2dc0df:分频选择
parameter data68 = 24'h2C1FA4; //h2C20a3:outa_en
parameter data69 = 24'h2B2222; //分子,改变小数频率值,分子低位,根据频率改变
parameter data70 = 24'h2AA222; //分子,改变小数频率值,分子高位,根据频率改变
parameter data71 = 24'h290002;
参数 data72 = 24'H280000;
参数 data73 = 24'h270019; //分母,低位,固定,40000,40/40000
参数 data74 = 24'h260000; //分母,高位,固定
参数 data75 = 24'H250304;//07027
参数 data76 = 24'h240056; //N值低位,根据频率改变
参数 data77 = 24'H230004;
parameter data78 = 24'h220000; //N值高位,根据频率改变
参数 data79 = 24'h211E21;
参数 data80 = 24'h200393;
参数 data81 = 24'h1F43EC;
参数 data82 = 24'h1E318C;
参数 data83 = 24'h1D318C;
参数 data84 = 24'h1C0488;
参数 data85 = 24'h1B0002;
参数 data86 = 24'h1A0DB0;
参数 data87 = 24'h190C2B;
参数 data88 = 24'h18071A;
参数 data89 = 24'h17007C;
参数 data90 = 24'H160001;
参数 data91 = 24'H150401;
参数 data92 = 24'h14DC48;vcoSEL
参数 data93 = 24'h1327B7;
参数 data94 = 24'H120064;
参数 data95 = 24'h11011F;//-----------
参数 data96 = 24'H100080;
参数 data97 = 24'h0F064F;
参数 data98 = 24'h0E1E70;
参数 data99 = 24'h0D4000;
参数 data100 = 24'h0C5001;
参数 data101 = 24'h0B0018;//
参数 data102 = 24'h0A10D8;
参数 data103 = 24'H090604;
参数 data104 = 24'H082000;//---
参数 data105 = 24'h0740B2;
参数 data106 = 24'h06C802;
参数 data107 = 24'h0500C8;
参数 data108 = 24'h040C43;
参数 data109 = 24'h030642;
参数 data110 = 24'h020500;
参数 data111 = 24'H010808;
参数 data112 = 24'h002494;
localparam data_r110 =24'hee0000;
localparam data_r111 =24'hef0000;
localparam data_r112 =24'hf00000;
注册 [23: 0] data_r8 = 24'h086800;//---
注册 [23:0] oReg38 ;//DEM[31:16]
注册 [23:0] oReg39 ;//DEM[15:0]
reg [23: 0] data_pfd =24'h250204;//PFD_DLY_SEL
reg [23: 0] data_div =24'h4B0840;//分频比,4B0800:2分频;4B0840:4分频;
reg [23: 0] data_divselb =24'h2e07fc;//2e07fc:分频选择;2e07fd:VCO输出;奥特B
reg [23: 0] data_divsel =24'h2DC8e3;//2dc0df:分频选择;2dc8df:VCO输出;AUTA
reg [23: 0] data_outsel =24'h2C20a4;//h2C20a3:outa_en;H2C2063:outa_en;
reg [23: 0] data_fl =24'h2B5dc0;//分子,改变小数频率值,分子低位,根据频率改变
reg [23: 0] data_fh =24'h2A0000;//分子,改变小数频率值,分子高位,根据频率改变
reg [23: 0] data_nl =24'h24012b;//N值低位,根据频率改变
reg [23: 0] data_nh =24'h220000;//N值高位,根据频率改变
reg [23: 0] data_r0 =24'h00249C;
注册 [23: 0] data_r20;vco_sel
注册 [23: 0] data_r78;vco_capctrl_strt
注册 [23: 0] data_r17;vco_daciset_strt
总是 @(posedge Clk)begin
if(Freq_Numer <= 24'd10000_000)begin //vco频率
data_pfd <= 24'H250204;
end else begin
data_pfd <= 24'h250304;
结束
结束
if(vco_full_flag)begin//读完VCO各寄存器赋值
data_r20 <= {10'h53,vco_sel_full,11'h448};
data_r78 <= {16'h1327,vco_capctrl_full[7:0]};
data_r17 <= {15'h800,vco_daciset_full[8:0]};
data_r20 <= {10'h53,vco_sel_full,11'h448};
data_r78 <= {15'h2701,vco_capctrl_full,1'b1};
data_r17 <= {15'h0880,vco_daciset_full};
data_r8 <= 24'h086800;
data_r0 <=24'h086800;
oReg38 <= 24'h260000 ;
oReg39 <= 24'h270019 ;
end else begin//读VCO之前各寄存器赋值
data_r20 <= {10'h53,vco_sel,11'h048};
data_r78 <= {15'h2701,vco_capctrl_strt,1'b1};
data_r17 <= {15'h0880,vco_daciset_strt};
data_r8 <= 24'h082000;
data_r0 <=24'h00249C;
oReg38 <= 24'h260000 ;
oReg39 <= 24'h270019 ;
结束
data_fl <= {8'h2b,Para_F[15:0]};
data_fh <= {8'h2a,Para_F[31:16]};
data_nl <= {8'h24,Para_N[15:0]};
data_nh <= {16'h2200,Para_N[23:16]};
data_divselb <= data_divselb_i;
结束
案例(config_counter)
0 :begin config_data<=数据重置1 ;结束
1 :开始 config_data<=datareset1 ;结束
2 :begin config_data<=datareset0 ;结束
3 :begin config_data<=datareset0 ;结束
4 :begin config_data<=data0 ;结束
5 :begin config_data<=data0 ;结束
6 :begin config_data<=data1 ;结束
7 :begin config_data<=data2 ;结束
8 :begin config_data<=data3 ;结束
9 :begin config_data<=data4 ;结束
10 :begin config_data<=data5 ;结束
11 :begin config_data<=data6 ;结束
12 :begin config_data<=data7 ;结束
13 :begin config_data<=data8 ;结束
14 :begin config_data<=data9 ;结束
15 :begin config_data<=data10 ;结束
16 :begin config_data<=data11 ;结束
17 :begin config_data<=data12 ;结束
18 :begin config_data<=data13 ;结束
19 :begin config_data<=data14 ;结束
20 :begin config_data<=data15 ;结束
21 :begin config_data<=data16 ;结束
22 :begin config_data<=data17 ;结束
23 :begin config_data<=data18 ;结束
24 :begin config_data<=data19 ;结束
25 :begin config_data<=data20 ;结束
26 :begin config_data<=data21 ;结束
27 :begin config_data<=data22 ;结束
28 :begin config_data<=data23 ;结束
29 :begin config_data<=data24 ;结束
30 :begin config_data<=data25 ;结束
31 :begin config_data<=data26 ;结束
32 :begin config_data<=data27 ;结束
33 :begin config_data<=data28 ;结束
34 :begin config_data<=data29 ;结束
35 :begin config_data<=data30 ;结束
36 :begin config_data<=data31 ;结束
37 :begin config_data<=data32 ;结束
38 :begin config_data<=data33 ;结束
39 :begin config_data<=data34 ;结束
40 :begin config_data<=data35 ;结束
41 :begin config_data<=data36 ;结束
42 :begin config_data<=data37 ;结束
43 :begin config_data<=data38 ;结束
44 :begin config_data<=data39 ;结束
45 :begin config_data<=data40 ;结束
46 :begin config_data<=data41 ;结束
47 :begin config_data<=data42 ;结束
48 :begin config_data<=data43 ;结束
49 :begin config_data<=data44 ;结束
50 :begin config_data<=data45 ;结束
51 :begin config_data<=data46 ;结束
52 :begin config_data<=data47 ;结束
53 :begin config_data<=data48 ;结束
54 :begin config_data<=data49 ;结束
55 :begin config_data<=data50 ;结束
56 :begin config_data<=data51 ;结束
57 :begin config_data<=data52 ;结束
58 :begin config_data<=data53 ;结束
59 :begin config_data<=data54 ;结束
60 :begin config_data<=data55 ;结束
61 :begin config_data<=data56 ;结束
62 :begin config_data<=data57 ;结束
63 :begin config_data<=data58 ;结束
64 :begin config_data<=data59 ;结束
65 :begin config_data<=data60 ;结束
66 :begin config_data<=data61 ;结束
67 :begin config_data<=data62 ;结束
68 :begin config_data<=data63 ;结束
69 :begin config_data<=data64 ;结束
70 :begin config_data<=data65 ;结束
71 :开始 config_data<=data66 ;结束
72 :begin config_data<=data67 ;结束
73 :begin config_data<=data68 ;结束
74 :开始 config_data<=data69 ;结束
75 :begin config_data<=data70 ;结束
76 :begin config_data<=data71 ;结束
77 :begin config_data<=data72 ;结束
78 :begin config_data<=data73 ;结束
79 :begin config_data<=data74 ; end
80 :begin config_data<=data75 ; end
81 :begin config_data<=data76 ; end
82 :begin config_data<=data77 ; end
83 :begin config_data<=data78 ; end
84 :begin config_data<=data79 ; end
85 :begin config_data<=data80 ;结束
86 :begin config_data<=data81 ;结束
87 :begin config_data<=data82 ;结束
88 :begin config_data<=data83 ;结束
89 :begin config_data<=data84 ;结束
90 :开始 config_data<=data85 ;结束
91 :begin config_data<=data86 ;结束
92 :begin config_data<=data87 ;结束
93 :begin config_data<=data88 ;结束
94 :begin config_data<=data89 ;结束
95 :begin config_data<=data90 ;结束
96 :begin config_data<=data91 ;结束
97 :begin config_data<=data92 ;结束
98 :begin config_data<=data93 ;结束
99 :开始 config_data<=data94 ;结束
100 :begin config_data<=data95 ;结束
101 :begin config_data<=data96 ;结束
102 :开始 config_data<=data97 ;结束
103 :开始 config_data<=data98 ;结束
104 :开始 config_data<=data99 ;结束
105 :begin config_data<=data100 ;结束
106 :begin config_data<=data101 ;结束
107 :begin config_data<=data102 ;结束
108 :开始 config_data<=data103 ;结束
109 :begin config_data<=data104 ;结束
110 :begin config_data<=data105 ;结束
111 :begin config_data<=data106 ;结束
112 :开始 config_data<=data107 ;结束
113 :begin config_data<=data108 ;结束
114 :begin config_data<=data109 ;结束
115 :begin config_data<=data110 ;结束
116 :begin config_data<=data111 ;结束
117 :begin config_data<=data112 ;结束
118 :begin config_data<=data_pfd ;结束
119 :begin config_data<=data_div ;结束
120 :begin config_data<=data_divsel ;结束
121 :begin config_data<=data_divselb ;结束
122 :begin config_data<=data_outsel ;结束
123 :开始 config_data<=oReg38 ;结束
124 :begin config_data<=oReg39 ;结束
125 :begin config_data<=data_nl ;结束
126 :begin config_data<=data_nh ;结束
127 :begin config_data<=data_fl ;结束
128 :begin config_data<=data_fh ;结束
127 :begin config_data<=data_mashl ;结束
127 :begin config_data<=data_mashh ;结束
129 :begin config_data <= data_r20 ;结束 //R42
130 :begin config_data <= data_r78 ;结束 //R42
131 :begin config_data <= data_r17 ;结束 //R42
130 :开始 config_data<=data_r0 & 24'hfffffb;结束
132 :开始 config_data <= 24'h002498;结束
133 :begin config_data <= data_r110 ;rb_vco_sel <= read_data[15:0];end //R42 131
134 :begin config_data <= data_r111 ;rb_vco_capctrl <= read_data[15:0];结束 //R42
135 :begin config_data <= data_r112 ;rb_vco_daciset <= read_data[15:0];end //R42 133
默认值:begin config_data<=data_r0;结束
图2
case(config_counter)
0 :begin config_data<=datareset1 ; end
1 :begin config_data<=datareset1 ; end
2 :begin config_data<=datareset0 ; end
3 :begin config_data<=datareset0 ; end
4 :begin config_data<=data0 ; end
5 :begin config_data<=data0 ; end
6 :begin config_data<=data1 ; end
7 :begin config_data<=data2 ; end
8 :begin config_data<=data3 ; end
9 :begin config_data<=data4 ; end
10 :begin config_data<=data5 ; end
11 :begin config_data<=data6 ; end
12 :begin config_data<=data7 ; end
13 :begin config_data<=data8 ; end
14 :begin config_data<=data9 ; end
15 :begin config_data<=data10 ; end
16 :begin config_data<=data11 ; end
17 :begin config_data<=data12 ; end
18 :begin config_data<=data13 ; end
19 :begin config_data<=data14 ; end
20 :begin config_data<=data15 ; end
21 :begin config_data<=data16 ; end
22 :begin config_data<=data17 ; end
23 :begin config_data<=data18 ; end
24 :begin config_data<=data19 ; end
25 :begin config_data<=data20 ; end
26 :begin config_data<=data21 ; end
27 :begin config_data<=data22 ; end
28 :begin config_data<=data23 ; end
29 :begin config_data<=data24 ; end
30 :begin config_data<=data25 ; end
31 :begin config_data<=data26 ; end
32 :begin config_data<=data27 ; end
33 :begin config_data<=data28 ; end
34 :begin config_data<=data29 ; end
35 :begin config_data<=data30 ; end
36 :begin config_data<=data31 ; end
37 :begin config_data<=data32 ; end
38 :begin config_data<=data33 ; end
39 :begin config_data<=data34 ; end
40 :begin config_data<=data35 ; end
41 :begin config_data<=data36 ; end
42 :begin config_data<=data37 ; end
43 :begin config_data<=data38 ; end
44 :begin config_data<=data39 ; end
45 :begin config_data<=data40 ; end
46 :begin config_data<=data41 ; end
47 :begin config_data<=data42 ;结束
48 :begin config_data<=data43 ;结束
49 :begin config_data<=data44 ;结束
50 :begin config_data<=data45 ;结束
51 :begin config_data<=data46 ;结束
52 :begin config_data<=data47 ;结束
53 :begin config_data<=data48 ;结束
54 :begin config_data<=data49 ;结束
55 :begin config_data<=data50 ;结束
56 :begin config_data<=data51 ;结束
57 :begin config_data<=data52 ;结束
58 :begin config_data<=data53 ;结束
59 :begin config_data<=data54 ;结束
60 :begin config_data<=data55 ;结束
61 :begin config_data<=data56 ;结束
62 :begin config_data<=data57 ;结束
63 :begin config_data<=data58 ;结束
64 :begin config_data<=data59 ;结束
65 :begin config_data<=data60 ;结束
66 :begin config_data<=data61 ;结束
67 :begin config_data<=data62 ;结束
68 :begin config_data<=data63 ;结束
69 :begin config_data<=data64 ;结束
70 :begin config_data<=data65 ;结束
71 :开始 config_data<=data66 ;结束
72 :begin config_data<=data67 ;结束
73 :begin config_data<=data68 ;结束
74 :开始 config_data<=data69 ;结束
75 :begin config_data<=data70 ;结束
76 :begin config_data<=data71 ;结束
77 :begin config_data<=data72 ;结束
78 :begin config_data<=data73 ;结束
79 :begin config_data<=data74 ;结束
80 :begin config_data<=data75 ;结束
81 :开始 config_data<=data76 ;结束
82 :begin config_data<=data77 ;结束
83 :开始 config_data<=data78 ;结束
84 :begin config_data<=data79 ;结束
85 :begin config_data<=data80 ;结束
86 :begin config_data<=data81 ;结束
87 :begin config_data<=data82 ;结束
88 :begin config_data<=data83 ;结束
89 :begin config_data<=data84 ;结束
90 :开始 config_data<=data85 ;结束
91 :begin config_data<=data86 ;结束
92 :begin config_data<=data87 ;结束
93 :begin config_data<=data88 ;结束
94 :begin config_data<=data89 ;结束
95 :begin config_data<=data90 ;结束
96 :begin config_data<=data91 ;结束
97 :begin config_data<=data92 ;结束
98 :begin config_data<=data93 ;结束
99 :开始 config_data<=data94 ;结束
100 :begin config_data<=data95 ;结束
101 :begin config_data<=data96 ;结束
102 :开始 config_data<=data97 ;结束
103 :开始 config_data<=data98 ;结束
104 :开始 config_data<=data99 ;结束
105 :begin config_data<=data100 ;结束
106 :begin config_data<=data101 ;结束
107 :begin config_data<=data102 ;结束
108 :开始 config_data<=data103 ;结束
109 :begin config_data<=data_r8 ;完//data_r8 data104
110 :begin config_data<=data105 ;结束
111 :begin config_data<=data106 ;结束
112 :开始 config_data<=data107 ;结束
113 :begin config_data<=data108 ;结束
114 :begin config_data<=data109 ;结束
115 :begin config_data<=data110 ;结束
116 :begin config_data<=data111 ; end
117 :begin config_data<=data112 ; end
118 :begin config_data<=data_pfd ; end
119 :begin config_data<=data_div ; end
120 :begin config_data<=data_divsel ;结束
121 :begin config_data<=data_divselb ;结束
122 :begin config_data<=data_outsel ;结束
123 :开始 config_data<=oReg38 ;结束
124 :begin config_data<=oReg39 ;结束
125 :begin config_data<=data_nl ;结束
126 :begin config_data<=data_nh ;结束
127 :begin config_data<=data_fl ;结束
128 :begin config_data<=data_fh ;结束
127 :begin config_data<=data_mashl ;结束
127 :begin config_data<=data_mashh ;结束
129 :begin config_data <= data_r20 ;结束 //R42
130 :begin config_data <= data_r78 ;结束 //R42
131 :begin config_data <= data_r17 ;结束 //R42
132 :begin config_data <= data_r0 ;结束 //130
Hi Yang,
to debug:
- When unlock happen, if you reprogram the same frequency point again (full assist), will it lock?
- When unlock happen, is the read back value same as written value?
- When unlock happen, did you get the next frequency point locked?
- if you increase the programming interval to, 4ms or 10ms, will that resolve the problem?
HI Yang,
According to your configuration, your programming sequence will be something like below:
PLL_N, PLL_NUM, VCO_CAPCTRL, VCO_SEL, VCO_DACISET, wait.
Could you try toggle MASH_RESET_N after writing PLL_NUM? That is,
PLL_N, PLL_NUM, MASH_RESET_N = 0, MASH_RESET_N = 1, VCO_CAPCTRL, VCO_SEL, VCO_DACISET, wait.