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.

[参考译文] CDCI6214:crc总是错误,导致无法锁定 μ A

Guru**** 2587345 points
Other Parts Discussed in Thread: CDCI6214, CDCE6214

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

https://e2e.ti.com/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/1181694/cdci6214-crc

器件型号:CDCI6214
主题中讨论的其他器件: CDCE6214

我烧写eeprom的代码如下 μ A

cdci6214_write_reg (0x00、0x1010);//step2。 在该工作模式下写入1以重新校准 VCO
cdci6214_write_reg (0x03、page);//step3。 选择 EEPROM 页面、发送 regcommit 命令
cdci6214_write_reg (0x0F、0x5037);//step4。 解锁 EEPROM 以进行写入访问
cdci6214_write_reg (0x03、(1<<12)|页);//step5。 向 regcommit 写入1以启动 commit 操作
usleep (100000);//等待100ms
cdci6214_WRITE_reg (0x03、0x4000);//step6。 通过向 UPDATE_CRC 写入1来强制 CRC 更新
cdci6214_read_reg (0x09、_nvmscrc);//step7。 在 nvmlcrc 中读回计算出的 CRC
cdci6214_WRITE_reg (0x0d、0x3f);//step8。 通过将0x3F 写入 NVM_wr_addr、将读取的 CRC 值存储在 EEPROM 中
cdci6214_write_reg (0x0E、nvmscrc);//step8。 然后将 CRC 值设置为 NVM_wr_data。
usleep (10000);//等待10ms

但是根据 cdci6215数据表,寄存器0x3F 是 CHX_CTRL4,这是错误吗?

现在的现象是复位后reg07为0x0024 μ A

 

regs [64]=[0x1000、0x6854、0x0055、0x0000、0x00f7、 0x0008、0x19ca、0x0024、0x0001、0x9928、 0x0000、0x0000、0xEE00、0x003F、0x9928、 0x5037、0x921f、0x26c4、0xa001、0x0000、 0x0001、0x0000、0x0000、0x0580、0x0601、 0x0006、0x0e24、0x0000、0x0000、0x000c、 0x5140、0x1E72、0x0000、0x0007、0x0050、 0x8000、0x0000、0x0006、0x0405、0x0851、 0x0008、0x8000、0x0000、0x0006、0x0005、 0x0851、0x0000、0x8000、0x0000、0x0006、 0x0425、0x8861、0x0008、0x8000、0x0000、 0x0000、0x0005、0x8851、0x0000、0x1061、 0x0018、0x1500、0x4218、0xc210]

上面的regs是我回读eeprom的所有值,请帮忙判断问题所在 μ A

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

    您好!

    数据表是正确的;因此、我有点困惑您的确切问题是什么。

    请注意、寄存器的地址与 SRAM/EEPROM 上的地址不同、因此如果从 EEPROM 读回0x3F 地址、则不会获得与从寄存器0x3F 读回相同的值(同样、因为它们具有不同的地址来存储相同的信息。

    此外、当您发布问题时、大多数文本都是中文、因此我只能理解您所关注的编程的分步细分和红色问题。

    最棒的

    Andrea

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

    您好、Vallenilla、

    我将以下数据写入 EEPROM 第0页、  

    u32 cdci_regs[]={
    0x003F4210、
    0x003E4218、
    0x003D1500、
    0x003C0018、
    0x003B1061、
    0x003A0000、
    0x00398851、
    0x00380005、
    0x00370000、
    0x00360000、
    0x00358000、
    0x00340000、
    0x00338861、
    0x00320025、
    0x00310006、
    0x00300000、
    0x002F8000、
    0x002E0000、
    0x002D0851、
    0x002C0025、
    0x002B0006、
    0x002A0000、
    0x00298000、
    0x00280000、
    0x00270851、
    0x00260005、
    0x00250006、
    0x00240000、
    0x00238000、
    0x00220050、
    0x00210007、
    0x00200000、
    0x001F1E72、
    0x001E5140、
    0x001D000C、
    0x001C0000、
    0x001B0000、
    0x001A8E24、
    0x00192406、
    0x00180000、
    0x00170000、
    0x00160000、
    0x00150000、
    0x00140001、
    0x00130000、
    0x0012FFFF、
    0x001126C4、
    0x0010921F、
    0x000FA037、
    0x000E0000、
    0x000D0000、
    0x000C0000、
    0x000B0000、
    0x000A0000、
    0x00090000、
    0x00080001、
    0x00070C0D、
    0x000619CA、
    0x00050008、
    0x000400F7、
    0x00030001、
    0x00020055、
    0x00016854、
    0x00001000、

    };

    然后通过读回 EEPROM 页面  

     cdci6214_WRITE_reg (0x03、0x2000);

    并通过读取寄存器

    对于(i=0;i<0x40;i++)

    cdci6214_read_reg (i、regs+i);

    获取结果

    regs[64]=[0x1000、0x6854、0x0055、0x0000、0x00f7、 0x0008、0x19ca、0x0024、0x0001、0x9928、 0x0000、0x0000、0xEE00、0x003F、0x9928、 0x5037、0x921f、0x26c4、0xa001、0x0000、 0x0001、0x0000、0x0000、0x0580、0x0601、 0x0006、0x0e24、0x0000、0x0000、0x000c、 0x5140、0x1E72、0x0000、0x0007、0x0050、 0x8000、0x0000、0x0006、0x0405、0x0851、 0x0008、0x8000、0x0000、0x0006、0x0005、 0x0851、0x0000、0x8000、0x0000、0x0006、 0x0425、0x8861、0x0008、0x8000、0x0000、 0x0000、0x0005、0x8851、0x0000、0x1061、 0x0018、0x1500、0x4218、0xc210]

    我们可以看到、大多数寄存器与我写入 EEPROM 的寄存器相同、

    但 reg7为0x0024、这意味着 VCO 尚未锁定、CONFIG_DONE 不是高电平、哪个事件会阻止其配置? 为什么 nvmcrcerr 为高电平? 如何解决此问题?

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

    你好、Xiao、

    当您说"reg07"时、您是指指向寄存器映射还是 EEPROM 的地址? 另外、请注意、如果某些寄存器显示的是只读寄存器、则与您写入的寄存器不同、这是正常现象。 无论您写入的值是什么、它都不会更改、并且始终保持默认值。

    此外、请注意、TI  强烈建议切换到 CDCE6214 、因为它是一款性能更好的器件。 如果可能、请进行转换。

    最棒的

    Andrea

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

    此处 reg07是寄存器映射、而不是 EEPROM。 我知道只能写入就绪寄存器、但为什么 CONFIG_DONE 不是高电平?  

     如果 cdce6214更好,我们将进行这一过渡,非常感谢!

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

    你好、Xiao、

    在 CDCE6214上重试此操作、如果您仍然遇到此问题、请再次告知我们、我们将继续为您提供帮助。 我将继续、解决这个问题。

    谢谢、

    Andrea