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.

[参考译文] CDCE6214-Q1:在进行一些配置和提交操作后、PLL 将不再工作。

Guru**** 2811065 points

Other Parts Discussed in Thread: CDCE6214-Q1

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/1109309/cdce6214-q1-the-pll-would-not-work-anymore-after-some-configuration-and-commit-operation

器件型号:CDCE6214-Q1

尊敬的 TI:

我们使用 CDCE6214-Q1作为为 FPGA 板计时的 PLL。

PLL 可通过 FPGA 主机 IIC 和 TICS Pro 成功配置。

但在通过我们更新的 SW 重新编程后、PLL 无法再配置、除了'LVCMOS OUTPUT0'之外、没有任何时钟输出。

可以通过 EEPROM 直接读取找到64个字的 EEPROM.HXT 始终为0x0000、并且无法通过 REG 提交模式和 EEPROM 直接模式成功修改: 当我使用这两种方法对 PLL 进行编程时、TICS Pro 日志记录显示它确实成功写入寄存器和 EEPROM、但4个通道上没有任何输出。

您能否帮助检查 EEPROM.HXT 并就这种错误状态提供一些建议?

提前感谢。

我已将 EETPROM.HXT 和我们的软件编程函数粘贴在此处:

++++++++++++++++++++++++++++++++++++++++

---- CDCE6214-Q1 EEPROM 十六进制文本文件---
标题信息2022年6月14日15:47:06
nvmbusy 0x0001
nvmcrcerr 0x0000
NVM_wr_error 0x0000
NVM_RD_ERROR 0x0000
nvmlcrc 0x0000
nvmscrc 0x0000
NVM_RD_ADDR 0x003F
NVM_RD_DATA 0x0000
NVM_wr_addr 0x003F
NVM_wr_data 0x0000

---- 基页0----
00 0x0000 0
01 0x0000 0
02 0x0000 0
03 0x0000 0
04 0x0000 0
05 0x0000 0
06 0x0000 0
07 0x0000 0
08 0x0000 0
09 0x0000 0
10 0x0000 0
11 0x0000 0
12 0x0000 0
13 0x0000 0
14 0x0000 0
15 0x0000 0

---- 配置页0 ----
16 0x0000 0
17 0x0000 0
18 0x0000 0
19 0x0000 0
20 0x0000 0
21 0x0000 0
22 0x0000 0
23 0x0000 0
24 0x0000 0
25 0x0000 0
26 0x0000 0
27 0x0000 0
28 0x0000 0
29 0x0000 0
30 0x0000 0
31 0x0000 0
32 0x0000 0
33 0x0000 0
34 0x0000 0
35 0x0000 0
36 0x0000 0
37 0x0000 0
38 0x0000 0
39 0x0000 0

---- 配置页1 ----
40 0x0000 0
41 0x0000 0
42 0x0000 0
43 0x0000 0
44 0x0000 0
45 0x0000 0
46 0x0000 0
47 0x0000 0
48 0x0000 0
49 0x0000 0
50 0x0000 0
51 0x0000 0
52 0x0000 0
53 0x0000 0
54 0x0000 0
55 0x0000 0
56 0x0000 0
57 0x0000 0
58 0x0000 0
59 0x0000 0
60 0x0000 0
61 0x0000 0
62 0x0000 0
63 0x0000 0
---- 结束 EEPROM 十六进制文本文件---

++++++++++++++++++++++++++++++++++++++++

静态空 PLL_RESET ()

char GPIO_IO_FILE[128];
sprintf (GPIO_IO_file、"/sys/class/GPIO/GPIO%d"、GPIO_base + GPIO_PLL);
if (access (GPIO_IO_file、F_OK)!= 0)

if ((open_GPIO_channel (GPIO_PLL)!= 0)||(SET_GPIO_DIRECTION (GPIO_PLL、"OUT")!= 0))

返回;

SET_GPIO_VALUE (GPIO_PLL、0);
SET_GPIO_VALUE (GPIO_PLL、1);

int pll_reg_set (char *文件、int i2c_fd)

文件*fp=fopen (file、"r");
如果(fp== NULL)

printf ("打开文件失败<%s>\n"、文件);
返回-1;

char line];
char * end_ptr;
unsigned int idx = 0;
while (!feof (FP))(while (!feof (FP

Fgets (line、file_line_LEN_MAX、FP);

unsigned int reg_id;
unsigned int 值;
sscanf (line、"r%u %x"、Registered_id、&value);
reg_id =(值>> 16)& 0xffffff;
Value = Value & 0xffffff;

I2C_WRITE (i2c_FD、PLL_SLAVE_ADDR、REG_id、value);
printf ("reg_id:%d、value:0x%x\n"、reg_id、value);
usleep(30000);

fclose (FP);
返回0;

静态空 PLL_CONFIG (int i2c_fd)

内部温度;
/*向 RECAL 写入1以在此运行模式下校准 VCO */
temp = i2c_read (i2c_FD、PLL_SLAVE_ADDR、0x0000);
temp = temp | 0x0010;
I2C_WRITE (i2c_FD、PLL_SLAVE_ADDR、0x0000、temp);

/*选择 EEPROM 第1页、使用 REGCOMMIT_PAGE 将寄存器设置复制到中。*/
temp = i2c_read (i2c_FD、PLL_SLAVE_ADDR、0x0003);
temp = temp | 0x0200;
I2C_WRITE (i2c_FD、PLL_SLAVE_ADDR、0x0003、temp);

/*使用 EE_LOCK = 0x5.*/解锁 EEPROM 以进行写入访问
temp = i2c_read (i2c_FD、PLL_SLAVE_ADDR、0x000F);
temp = temp & 0x0FFF;
temp = temp | 0x5000;
I2C_WRITE (i2c_FD、PLL_SLAVE_ADDR、0x000F、temp);

/*通过向 REGCOMMIT*/写入1来启动寄存器提交操作
temp = i2c_read (i2c_FD、PLL_SLAVE_ADDR、0x0003);
temp = temp | 0x0400;
I2C_WRITE (i2c_FD、PLL_SLAVE_ADDR、0x0003、temp);

/*通过将1写入 update_crc.*/强制 CRC 更新
temp = i2c_read (i2c_FD、PLL_SLAVE_ADDR、0x0003);
temp = temp | 0x1000;
I2C_WRITE (i2c_FD、PLL_SLAVE_ADDR、0x0003、temp);

/*读回 NVMLCRC 中计算出的 CRC。*/
int CRC = i2c_read (i2c_FD、PLL_SLAVE_ADDR、0x0009);

/*将0x3F 写入 NVM_WR_ADDR*/
I2C_WRITE (i2c_FD、PLL_SLAVE_ADDR、0x000D、0x003F);

/*将 CRC 值写入 NVM_WR_DATA。*/
I2C_WRITE (i2c_FD、PLL_SLAVE_ADDR、0x000E、CRC);


静态空 PLL_init (空)

int i2c_fd = i2c_open (PLL_I2C_dev);
如果(i2c_fd =-1)

printf ("打开 i2c%d 设备失败。\n"、PLL_I2C_DEV);
返回;

PLL_RESET ();

if (pll_reg_set (g_pll_cfgdata_filepath、i2c_fd)!= 0)

printf ("设置 PLL 寄存器失败。\n");
返回;

PLL_CONFIG (i2c_FD);

if (i2c_close (i2c_fd)=-1)

返回;

PLL_RESET ();

void PLL_EEPROM_COMMIT (void)

int i2c_fd = i2c_open (PLL_I2C_dev);
如果(i2c_fd =-1)

printf ("打开 i2c%d 设备失败。\n"、PLL_I2C_DEV);
返回;

PLL_CONFIG (i2c_FD);

if (i2c_close (i2c_fd)=-1)

返回;

++++++++++++++++++++++++++++++++++++++++

以及我们的配置 BTW:

R85 0x00550000
R84 0x00540000
R83 0x0053FF00
R82 0x005201C0
R81 0x00510004
R80 0x0050000
R79 0x004F0008
R78 0x004E0000
R77 0x004D0000
R76 0x004C0188
R75 0x004B8008
R74 0x004AA181
R73 0x00491000
R72 0x00480005
R71 0x00470006
R70 0x00460808
R69 0x0045A181
R68 0x00441000
R67 0x00430004
R66 0x00420006
R65 0x00410808
R64 0x0040A181
R63 0x003F1000
R62 0x003E0004
R61 0x003D0000
R60 0x003C6008
R59 0x003B8008
R58 0x003A502C
R57 0x00391000
R56 0x00380019
R55 0x0037001E
R54 0x00363400
R53 0x00350069
R52 0x00345000
R51 0x003340C0
R50 0x003207C0
R49 0x00310013
R48 0x003023C7
R47 0x002F0380
R46 0x002E0000
R45 0x002D4F80
R44 0x002C0318
R43 0x002B0051
R42 0x002A0002
R41 0x00290000
R40 0x00280000
R39 0x00270000
R38 0x00260000
R37 0x00250000
R36 0x00240000
R35 0x0023005C
R34 0x00220000
R33 0x00212710
R32 0x00200000
R31 0x001F0000
R30 0x001E0064
R29 0x001D0000
R28 0x001C0000
R27 0x001B0004
R26 0x001A0000
R25 0x00190401
R24 0x00181930
R23 0x00170406
R22 0x001600A2
R21 0x00150583
R20 0x00140000
R19 0x00130000
R18 0x00120000
R17 0x001126C4
R16 0x0010921F
R15 0x000FA017
R14 0x000E9AF5
R13 0x000D003F
R12 0x000C7000
R11 0x000B0000
R10 0x000A6BF7
R9 0x00099AF5
R8 0x00080001
R7 0x00070C2D
R6 0x00060A6C
R5 0x00050008
R4 0x00040000
R3 0x00030000
R2 0x00020002
R1 0x00012310
R0 0x00001000

++++++++++++++++++++++++++++++++++++

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    请尝试在回退模式下重新写入 EEPROM (浮点引脚 REFSEL 和引脚 HW_SW_SEL、然后对器件进行下电上电)。

    此致、
    Hao

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Hao、

    非常感谢您的快速响应。

    我尝试在回退模式下重新配置 REG 和 EEPROM (i2c addr 更改为0x67)、但仍然无法正常工作。

    始终从 EEPROM 读回值为0x0000s、重新为器件加电后、REG 值为出厂默认值、CH1-4上没有时钟输出、锁定状态始终为解锁。

    ----- CDCE6214-Q1 EEPROM HEX TEXT FILE ------
    Header Info	Wed Jun 15 09:35:28 2022
    nvmbusy	0x0000
    nvmcrcerr	0x0000
    nvm_wr_error	0x0000
    nvm_rd_error	0x0000
    nvmlcrc	0x0000
    nvmscrc	0x0000
    nvm_rd_addr	0x0000
    nvm_rd_data	0x0000
    nvm_wr_addr	0x0000
    nvm_wr_data	0x0000
    
    ----- BASE   PAGE 0 ------
    00	0x0000	0
    01	0x0000	0
    02	0x0000	0
    03	0x0000	0
    04	0x0000	0
    05	0x0000	0
    06	0x0000	0
    07	0x0000	0
    08	0x0000	0
    09	0x0000	0
    10	0x0000	0
    11	0x0000	0
    12	0x0000	0
    13	0x0000	0
    14	0x0000	0
    15	0x0000	0
    
    ----- CONFIG PAGE 0 ------
    16	0x0000	0
    17	0x0000	0
    18	0x0000	0
    19	0x0000	0
    20	0x0000	0
    21	0x0000	0
    22	0x0000	0
    23	0x0000	0
    24	0x0000	0
    25	0x0000	0
    26	0x0000	0
    27	0x0000	0
    28	0x0000	0
    29	0x0000	0
    30	0x0000	0
    31	0x0000	0
    32	0x0000	0
    33	0x0000	0
    34	0x0000	0
    35	0x0000	0
    36	0x0000	0
    37	0x0000	0
    38	0x0000	0
    39	0x0000	0
    
    ----- CONFIG PAGE 1 ------
    40	0x0000	0
    41	0x0000	0
    42	0x0000	0
    43	0x0000	0
    44	0x0000	0
    45	0x0000	0
    46	0x0000	0
    47	0x0000	0
    48	0x0000	0
    49	0x0000	0
    50	0x0000	0
    51	0x0000	0
    52	0x0000	0
    53	0x0000	0
    54	0x0000	0
    55	0x0000	0
    56	0x0000	0
    57	0x0000	0
    58	0x0000	0
    59	0x0000	0
    60	0x0000	0
    61	0x0000	0
    62	0x0000	0
    63	0x0000	0
    ----- END EEPROM HEX TEXT FILE ------

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、海地人、

    如果全部为0、则很可能是由于通信问题。 请检查您是否仍然可以通过常规 I2C 寄存器(而不是通过 EEPROM)锁定 PLL。

    此致、

    Hao

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Hao、

    实际上、我已经多次尝试通过 I2C 寄存器通过"USB 转任一"适配器通过不同配置来配置 PLL、包括出厂默认配置。 出现问题后、我无法使用 PLL 的任何配置来锁定 PLL。

    现在、我们已经100%重复了我们的3款产品上的问题。 所有 PLL 都有相同的问题:

    启用 MUX 后、OUT0通道可输出 REF_CLK;

    2. VCO 锁定状态检查始终未锁定;

    3.时钟选择中的基准工作正常,晶体振荡;

    4.通道 OUT1-4无输出;

    5. EEPROM 始终读回0;

    在调试过程中、可以发现 TICS pro 会修改许多寄存器、这些寄存器在寄存器手册中标记为保留、是否有任何保留寄存器会导致此问题?

    BR。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、海地人、

    很抱歉耽误你的时间。 如果 PLL 在 Ticspro 中加载"EVM 默认"配置后无法锁定、而 PLL 是由备用模式供电、并使用确认振荡的25MHz XTAL、那么我担心您必须联系 TI FAE 并将器件发送给 FA (故障分析)。 因为上述过程是我们将器件设为默认值的方法。  

    此致、
    Hao