TI论坛
直播中

kmno4

13年用户 1039经验值
私信 关注
[问答]

CDCI6214 CRC校验错误,无法启动怎么解决?


  • 烧写EEPROM是按照文档操作的,代码如下
    cdci6214_write_reg(0x00,0x1010);//step2. Write 1 to recal to calibrate the VCO in this operation mode
    #define WRITE_EEPROM
    #ifdef WRITE_EEPROM
    cdci6214_write_reg(0x03,page);//step3. Select the EEPROM page,send regcommit command
    cdci6214_write_reg(0x0f, 0x5037);//step4. Unlock the EEPROM for write access
    cdci6214_write_reg(0x03, (1<<12)|page);//step5. Start the commit operation by writing a 1 to regcommit
    usleep(600000);//wait 600ms
    cdci6214_write_reg(0x03, 0x4000);//step6. Force a CRC update by writing a 1 to update_crc
    cdci6214_read_reg(0x09,&nvmscrc);//step7. Read back the calculated CRC in nvmlcrc
    cdci6214_write_reg(0x0d,0x3f);//step8. Store the read CRC value in the EEPROM by writing 0x3F to nvm_wr_addr
    cdci6214_write_reg(0x0e, nvmscrc);//step8. and then the CRC value to nvm_wr_data.
    usleep(10000);//wait 10ms

    回读寄存器时发现reg07状态不对,值为0x0024,,nvmcrcerr =1,config_done=1, 但是正常应该是cal_done也要=1,lock_det=1才表示锁定呢,不知道crc错误会不会影响

    cdci_regs为烧写值,regs_readback 为回读值
    u32 cdci_regs[]={
    0x003F4210,
    0x003E4218,
    0x003D1500,
    0x003C0018,
    0x003B1061,
    0x003A0000,
    0x00398851,
    0x00380005,
    0x00370000,
    0x00360000,
    0x00358000,
    0x00340008,
    0x00338861,
    0x00320425,
    0x00310006,
    0x00300000,
    0x002F8000,
    0x002E0000,
    0x002D0851,
    0x002C0005,
    0x002B0006,
    0x002A0000,
    0x00298000,
    0x00280008,
    0x00270851,
    0x00260405,
    0x00250006,
    0x00240000,
    0x00238000,
    0x00220050,
    0x00210007,
    0x00200000,
    0x001F1E72,
    0x001E5140,
    0x001D000C,
    0x001C0000,
    0x001B0000,
    0x001A0E24,//0e1c
    0x00192406,
    0x00180000,
    0x00170000,
    0x00160000,
    0x00150000,
    0x00140001,
    0x00130000,
    0x0012FFFF,
    0x001126C4,
    0x0010921F,
    0x000FA037,
    0x000E0000,
    0x000D0000,
    0x000C0000,
    0x000B0000,
    0x000A0000,
    0x00090000,
    0x00080001,
    0x00070C0D,
    0x000619CA,
    0x00050008,
    0x000400F7,
    0x00030000,
    0x00020055,
    0x00016854,
    0x00001000,
    };
    regs_readback [64]= [0x1000, 0x6854, 0x0055, 0x0000, 0x00f7, 0x0008, 0x19ca, 0x0024, 0x0001, 0x9928, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa037, 0x921f, 0x26c4, 0xffff, 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, 0x0a51, 0x0000, 0x8000, 0x0000, 0x0006, 0x0425, 0x8861, 0x0008, 0x8000, 0x0000, 0x0000, 0x0005, 0x8a51, 0x0000, 0x1061, 0x0018, 0x1500, 0x4218, 0xc210]

回帖(1)

申换换

2024-11-11 17:47:10
CDCI6214是一款用于数字通信的芯片,它在启动时可能会遇到CRC校验错误。这可能是由于EEPROM烧写不正确或者配置错误导致的。以下是一些建议来解决这个问题:

1. 检查EEPROM烧写过程:确保您按照文档正确烧写了EEPROM。您提供的代码看起来是正确的,但是请确保您的`cdci6214_write_reg`函数能够正确地将数据写入芯片。您可以通过读取寄存器值来验证写入是否成功。

2. 检查EEPROM配置:确保EEPROM中的配置是正确的。您可以通过读取EEPROM中的配置值来验证它们是否与预期的值匹配。

3. 检查CRC校验算法:确保您使用的CRC校验算法与芯片要求的算法相匹配。如果算法不匹配,可能会导致CRC校验错误。

4. 检查电源和时钟:确保芯片的电源和时钟信号是稳定的。不稳定的电源或时钟信号可能会导致CRC校验错误。

5. 检查硬件连接:确保芯片与EEPROM之间的硬件连接是正确的。错误的连接可能会导致CRC校验错误。

6. 尝试重置芯片:有时候,重置芯片可以解决一些启动问题。您可以尝试重置芯片,然后再次尝试启动。

如果以上建议都不能解决问题,您可能需要联系芯片制造商的技术支持以获取更多帮助。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分