工具与软件:
您好!
我们在项目中使用了 LMX2592芯片、我们希望能够在100 MHz 和2.5GHz 之间设置每个频率(精度为~1Hz)。 我们根据在 Github (未经测试)上找到的 C++实现、数据表中的信息以及 TICS Pro 提供的信息、在 Python 中编写了自己的驱动程序。 在对电路板进行下电上电后、似乎一切都在相应地工作、我们可以 一次性设置所需的每个频率。 但是、如果我们不对电路板进行下电上电(例如、我们重新启动电路板、重新启动应用、或者我们只是尝试在运行时设置新频率)、我们只能 得到少量频率的有效输出、对于大多数频率、我们根本不会得到输出。 每次启动应用时、我们都要遵循以下启动过程:
1.我们依次向寄存器0的"RESET"字段写入0和1、对芯片进行软复位
2.我们写入的默认寄存器值似乎按降序排列有效:
(第一个值是地址、第二个值是值)
64:0x0077
62:0x0000
61:0x0001
59:0x0000
48:0x03FC
47:0x08CF
46:0x0FE3
45:0x0000
44:0x0000
43:0x0000
42:0x0000
41:0x03E8
40:0x0000
39:0x8204
38:0x0036
37:0x4000
36:0x0011
35:0x021F
34:0xC3EA
33:0x2A0A
32:0x210A
31:0x0601
30:0x0034
29:0x0084
28:0x2924
25:0x0000
24:0x0509
23:0x8842
22:0x2300
20:0x012C
19:0x0965
14:0x018C
13:0x4000
12:0x7001
11:0x0018
10:0x10D8
9:0x0302
8:0x1084
7:0x28B2
4:0x3F43
2:0x0500
1:0x0808
0:0x221C
3.我们读回所有寄存器
4.我们 先写入0、然后再写入1到寄存器0的'FCAL_EN'字段
5.我们再次读回所有寄存器
如果我们要更改输出频率、 首先确定所有所需的值、然后将所有寄存器(仅更改了的寄存器)中的新值按降序写入、然后再次运行校准序列。 更改输出频率时、以下值可能会发生变化:
- PLL_R_PRE
- Mult
- PLL_R
- PLL_N_PRE
- PLL_N
- PLL_NUM_LSB
- PLL_NUM_MSB
- PLL_DEN_LSB
- PLL_DEN_MSB
- CHDIV_SEG1_EN
- CHDIV_SEG2_EN
- CHDIV_SEG3_EN
- CHDIV_SEG2.
- CHDIV_SEG3
- CHDIV_SEG_SEL
- CHDIV_DIST_PD
- CHDIV_SEG1
- FCAL_LPFD_ADJ
- FCAL_HPFD_ADJ
- PFD_CTL
- CHDIV_DIST_PD
- CHDIV_dista_en
- VCO_dista_pd
- CHDIV_dista_en
- VCO_dista_pd
- OUTA_PD
- OUTA_POW
- CHDIV_DISTB_EN
- VCO_DISTB_PD
- OUTB_PD
- OUTB_POW
谢谢、我们期待您的答复。
此致、
罗伊