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: CDCI6214 configuration process

Part Number: CDCI6214

Hi sir

We encountered CDCI6214 configuration process issues and found that there are individual differences in the chip? In the case, please help your company to provide technical support.
        Our configuration process is as follows:
            @. Each time the machine starts, it will configure CDCI6214 according to different needs;
            @. 6214 IO port logic level, will be configured before the 6214 power-on, the configuration process according to the TICS software "Write All Registers" prompt column to configure the 6214 register;
       Our configuration code is detailed in "Configuration Code.txt"

       The phenomenon is as follows:
          1. The output clock, if all are divided by integer, CDCI6214 has not found no abnormality.
          2. Output clock, if fractional frequency is used, the ic of individual boards is abnormal and the jitter is very large.
          3. The ic is interchanged with the normal board and the problem is found to follow the ic individual.
       For details, see "CDCI6214 Fractional Output Waveform Jitter Abnormality Test.docx"

        Please help your company to deal with the following issues:
           1. CDCI6214 does not have source code configured on the Internet. Our configuration process is written with reference to the specification and TICS software, so please provide the configuration source for your reference.
           2. After the exchange test, it is found that following the ic individual, that is, there are individual differences in the chip.

寄存器参数.txt
,0x00460000
,0x00450000
,0x00440000
,0x00430020
,0x00420200
,0x00410F34
,0x0040000D
,0x003F4210
,0x003E4218
,0x003D1500
,0x003C0018
,0x003B1063
,0x003A0008
,0x00390851
,0x00380405
,0x00378002
,0x003600F7
,0x0035911A
,0x00340008
,0x00330861
,0x00320435
,0x0031800E
,0x0030012E
,0x002F78F9
,0x002E0008
,0x002D0851
,0x002C0415
,0x002B800E
,0x002A00F2
,0x002973C6
,0x00280008
,0x00270851
,0x00260405
,0x00250003
,0x002401F6
,0x00238295
,0x00220050
,0x00210007
,0x00200000
,0x001F1E72
,0x001E5146
,0x001D8129
,0x001C0000
,0x001B0410
,0x001A0E1C
,0x00192406
,0x00180000
,0x00170000
,0x00160000
,0x00150000
,0x00140001
,0x00130000
,0x0012FFFF
,0x001126C4
,0x0010921F
,0x000FA037
,0x000E0000
,0x000D0000
,0x000C0000
,0x000B0000
,0x000A0000
,0x00090000
,0x00080001
,0x00070C0D
,0x000619CA
,0x00050020
,0x00040001
,0x00030000
,0x00020050
,0x00016824
,0x00001000
配置代码.txt


const uint32_t cdci6214_3G_reg[]=
{

0x00460000,
0x00450000,
0x00440000,
0x00430020,
0x00420000,
0x00410F34,
0x0040000D,
0x003F0210,
0x003E4209,
0x003D1500,
0x003C0018,
0x003B106B,
0x003A0008,
0x00390A65,
0x00380405,
0x00370003,
0x00360000,
0x00358000,
0x00340008,
0x00330A65,
0x00320415,
0x0031C001,
0x00300000,
0x002F7600,
0x002E0008,
0x002D0A65,
0x002C0415,
0x002B0003,
0x002A0000,
0x00298000,
0x00280008,
0x00270A65,
0x00260405,
0x00250003,
0x00240000,
0x00238000,
0x00220050,
0x00210007,
0x00200000,
0x001F1E72,
0x001E5142,
0x001D8129,
0x001C0000,
0x001B2410,
0x001A0718,
0x00190000,
0x00180001,
0x00170000,
0x00160000,
0x00150000,
0x00140000,
0x00130000,
0x00120000,
0x001126C4,
0x0010921F,
0x000FA037,
0x000E0000,
0x000D0000,
0x000C0000,
0x000B0000,
0x000A0000,
0x00090000,
0x00080000,
0x00070000,
0x00060000,
0x00050020,
0x00040055,
0x00030000,
0x00020050,
0x00016822,
0x00001000,

};




void  CDCI6214_config(void)
{	
	//unlock	
	data[0]=0xa0;
	data[1]=0x37;		
	reg_data[0]=0;
	reg_data[1]=0xf;			
	Write_I2C(CDCI6214_ADDR,reg_data,data,2,2);

	//unlock	
	data[0]=0x40;
	data[1]=0x03;		
	reg_data[0]=0;
	reg_data[1]=0x37;			
	Write_I2C(CDCI6214_ADDR,reg_data,data,2,2);
	
	//unlock	
	data[0]=0xa0;
	data[1]=0x37;		
	reg_data[0]=0;
	reg_data[1]=0xf;			
	Write_I2C(CDCI6214_ADDR,reg_data,data,2,2);	
	
	
	
	for(i=0;i<71;i++)
	{
		union_TEMP.unsigned_int32=cdci6214_3G_reg[i];
		data[0]=union_TEMP.unsigned_char8[1];
		data[1]=union_TEMP.unsigned_char8[0];		
		reg_data[0]=union_TEMP.unsigned_char8[3];
		reg_data[1]=union_TEMP.unsigned_char8[2];				
		Write_I2C(CDCI6214_ADDR,reg_data,data,2,2);
	}
	
	
	union_TEMP.unsigned_int32=cdci6214_3G_reg[70-60];
	data[0]=union_TEMP.unsigned_char8[1];
	data[1]=union_TEMP.unsigned_char8[0];		
	reg_data[0]=union_TEMP.unsigned_char8[3];
	reg_data[1]=union_TEMP.unsigned_char8[2];				
	Write_I2C(CDCI6214_ADDR,reg_data,data,2,2);


	union_TEMP.unsigned_int32=cdci6214_3G_reg[70-61];
	data[0]=union_TEMP.unsigned_char8[1];
	data[1]=union_TEMP.unsigned_char8[0];		
	reg_data[0]=union_TEMP.unsigned_char8[3];
	reg_data[1]=union_TEMP.unsigned_char8[2];				
	Write_I2C(CDCI6214_ADDR,reg_data,data,2,2);

	union_TEMP.unsigned_int32=cdci6214_3G_reg[70-62];
	data[0]=union_TEMP.unsigned_char8[1];
	data[1]=union_TEMP.unsigned_char8[0];		
	reg_data[0]=union_TEMP.unsigned_char8[3];
	reg_data[1]=union_TEMP.unsigned_char8[2];				
	Write_I2C(CDCI6214_ADDR,reg_data,data,2,2);
	
	for(i=0;i<3;i++)
	{
	union_TEMP.unsigned_int32=cdci6214_3G_reg[70-59];
	data[0]=union_TEMP.unsigned_char8[1];
	data[1]=union_TEMP.unsigned_char8[0];		
	reg_data[0]=union_TEMP.unsigned_char8[3];
	reg_data[1]=union_TEMP.unsigned_char8[2];				
	Write_I2C(CDCI6214_ADDR,reg_data,data,2,2);
	}
	
	SYS_Delay(500);		
	
//	while(GPIO_GetBit(CDCE6214_STATUS_IO,CDCE6214_STATUS)==0)
	{
		union_TEMP.unsigned_int32=cdci6214_3G_reg[70];
		data[0]=union_TEMP.unsigned_char8[1];
		data[1]=0x10;		
		reg_data[0]=union_TEMP.unsigned_char8[3];
		reg_data[1]=union_TEMP.unsigned_char8[2];				
		Write_I2C(CDCI6214_ADDR,reg_data,data,2,2);
		SYS_Delay(500);	
		union_TEMP.unsigned_int32=cdci6214_3G_reg[70];
		data[0]=union_TEMP.unsigned_char8[1];
		data[1]=0x0;		
		reg_data[0]=union_TEMP.unsigned_char8[3];
		reg_data[1]=union_TEMP.unsigned_char8[2];				
		Write_I2C(CDCI6214_ADDR,reg_data,data,2,2);
		SYS_Delay(500);	
	}

  • Hello Darren,

    The fractional noise in CDCI6214 is expected to be higher. For your application, I'd recommend using

    http://www.ti.com/lit/ds/symlink/cdcel949.pdf

    Best regards,

    dinesh.

  • Hi Dinesh

    thanks for your reply, however, the CDCI6214 will be MP soon,our customer feedback they test the performance is good, but test in they board will be meet the issue we ask you to dubug, what's more, our customer also find that some IC in the different board will appear different result,some is good and the other is bad, customer also do cross certification find the phenomenon is with the IC;pls help to check and give some suggestions, if you need any data,pls remind me,tks!

  • Hello Darren,

    Could you please provide some details on your observation? We would check that and get back to you.

    Regards,

    dinesh

  • Hi Dinesh

    the datail as attachment,pls help check it,tks!

    5076.寄存器参数.txt
    ,0x00460000
    ,0x00450000
    ,0x00440000
    ,0x00430020
    ,0x00420200
    ,0x00410F34
    ,0x0040000D
    ,0x003F4210
    ,0x003E4218
    ,0x003D1500
    ,0x003C0018
    ,0x003B1063
    ,0x003A0008
    ,0x00390851
    ,0x00380405
    ,0x00378002
    ,0x003600F7
    ,0x0035911A
    ,0x00340008
    ,0x00330861
    ,0x00320435
    ,0x0031800E
    ,0x0030012E
    ,0x002F78F9
    ,0x002E0008
    ,0x002D0851
    ,0x002C0415
    ,0x002B800E
    ,0x002A00F2
    ,0x002973C6
    ,0x00280008
    ,0x00270851
    ,0x00260405
    ,0x00250003
    ,0x002401F6
    ,0x00238295
    ,0x00220050
    ,0x00210007
    ,0x00200000
    ,0x001F1E72
    ,0x001E5146
    ,0x001D8129
    ,0x001C0000
    ,0x001B0410
    ,0x001A0E1C
    ,0x00192406
    ,0x00180000
    ,0x00170000
    ,0x00160000
    ,0x00150000
    ,0x00140001
    ,0x00130000
    ,0x0012FFFF
    ,0x001126C4
    ,0x0010921F
    ,0x000FA037
    ,0x000E0000
    ,0x000D0000
    ,0x000C0000
    ,0x000B0000
    ,0x000A0000
    ,0x00090000
    ,0x00080001
    ,0x00070C0D
    ,0x000619CA
    ,0x00050020
    ,0x00040001
    ,0x00030000
    ,0x00020050
    ,0x00016824
    ,0x00001000
    

    2161.配置代码.txt
    
    
    const uint32_t cdci6214_3G_reg[]=
    {
    
    0x00460000,
    0x00450000,
    0x00440000,
    0x00430020,
    0x00420000,
    0x00410F34,
    0x0040000D,
    0x003F0210,
    0x003E4209,
    0x003D1500,
    0x003C0018,
    0x003B106B,
    0x003A0008,
    0x00390A65,
    0x00380405,
    0x00370003,
    0x00360000,
    0x00358000,
    0x00340008,
    0x00330A65,
    0x00320415,
    0x0031C001,
    0x00300000,
    0x002F7600,
    0x002E0008,
    0x002D0A65,
    0x002C0415,
    0x002B0003,
    0x002A0000,
    0x00298000,
    0x00280008,
    0x00270A65,
    0x00260405,
    0x00250003,
    0x00240000,
    0x00238000,
    0x00220050,
    0x00210007,
    0x00200000,
    0x001F1E72,
    0x001E5142,
    0x001D8129,
    0x001C0000,
    0x001B2410,
    0x001A0718,
    0x00190000,
    0x00180001,
    0x00170000,
    0x00160000,
    0x00150000,
    0x00140000,
    0x00130000,
    0x00120000,
    0x001126C4,
    0x0010921F,
    0x000FA037,
    0x000E0000,
    0x000D0000,
    0x000C0000,
    0x000B0000,
    0x000A0000,
    0x00090000,
    0x00080000,
    0x00070000,
    0x00060000,
    0x00050020,
    0x00040055,
    0x00030000,
    0x00020050,
    0x00016822,
    0x00001000,
    
    };
    
    
    
    
    void  CDCI6214_config(void)
    {	
    	//unlock	
    	data[0]=0xa0;
    	data[1]=0x37;		
    	reg_data[0]=0;
    	reg_data[1]=0xf;			
    	Write_I2C(CDCI6214_ADDR,reg_data,data,2,2);
    
    	//unlock	
    	data[0]=0x40;
    	data[1]=0x03;		
    	reg_data[0]=0;
    	reg_data[1]=0x37;			
    	Write_I2C(CDCI6214_ADDR,reg_data,data,2,2);
    	
    	//unlock	
    	data[0]=0xa0;
    	data[1]=0x37;		
    	reg_data[0]=0;
    	reg_data[1]=0xf;			
    	Write_I2C(CDCI6214_ADDR,reg_data,data,2,2);	
    	
    	
    	
    	for(i=0;i<71;i++)
    	{
    		union_TEMP.unsigned_int32=cdci6214_3G_reg[i];
    		data[0]=union_TEMP.unsigned_char8[1];
    		data[1]=union_TEMP.unsigned_char8[0];		
    		reg_data[0]=union_TEMP.unsigned_char8[3];
    		reg_data[1]=union_TEMP.unsigned_char8[2];				
    		Write_I2C(CDCI6214_ADDR,reg_data,data,2,2);
    	}
    	
    	
    	union_TEMP.unsigned_int32=cdci6214_3G_reg[70-60];
    	data[0]=union_TEMP.unsigned_char8[1];
    	data[1]=union_TEMP.unsigned_char8[0];		
    	reg_data[0]=union_TEMP.unsigned_char8[3];
    	reg_data[1]=union_TEMP.unsigned_char8[2];				
    	Write_I2C(CDCI6214_ADDR,reg_data,data,2,2);
    
    
    	union_TEMP.unsigned_int32=cdci6214_3G_reg[70-61];
    	data[0]=union_TEMP.unsigned_char8[1];
    	data[1]=union_TEMP.unsigned_char8[0];		
    	reg_data[0]=union_TEMP.unsigned_char8[3];
    	reg_data[1]=union_TEMP.unsigned_char8[2];				
    	Write_I2C(CDCI6214_ADDR,reg_data,data,2,2);
    
    	union_TEMP.unsigned_int32=cdci6214_3G_reg[70-62];
    	data[0]=union_TEMP.unsigned_char8[1];
    	data[1]=union_TEMP.unsigned_char8[0];		
    	reg_data[0]=union_TEMP.unsigned_char8[3];
    	reg_data[1]=union_TEMP.unsigned_char8[2];				
    	Write_I2C(CDCI6214_ADDR,reg_data,data,2,2);
    	
    	for(i=0;i<3;i++)
    	{
    	union_TEMP.unsigned_int32=cdci6214_3G_reg[70-59];
    	data[0]=union_TEMP.unsigned_char8[1];
    	data[1]=union_TEMP.unsigned_char8[0];		
    	reg_data[0]=union_TEMP.unsigned_char8[3];
    	reg_data[1]=union_TEMP.unsigned_char8[2];				
    	Write_I2C(CDCI6214_ADDR,reg_data,data,2,2);
    	}
    	
    	SYS_Delay(500);		
    	
    //	while(GPIO_GetBit(CDCE6214_STATUS_IO,CDCE6214_STATUS)==0)
    	{
    		union_TEMP.unsigned_int32=cdci6214_3G_reg[70];
    		data[0]=union_TEMP.unsigned_char8[1];
    		data[1]=0x10;		
    		reg_data[0]=union_TEMP.unsigned_char8[3];
    		reg_data[1]=union_TEMP.unsigned_char8[2];				
    		Write_I2C(CDCI6214_ADDR,reg_data,data,2,2);
    		SYS_Delay(500);	
    		union_TEMP.unsigned_int32=cdci6214_3G_reg[70];
    		data[0]=union_TEMP.unsigned_char8[1];
    		data[1]=0x0;		
    		reg_data[0]=union_TEMP.unsigned_char8[3];
    		reg_data[1]=union_TEMP.unsigned_char8[2];				
    		Write_I2C(CDCI6214_ADDR,reg_data,data,2,2);
    		SYS_Delay(500);	
    	}

    CDCI6214原理图.pdf

  • Hi Darren,

    Sorry for the delay. Could you please provide the document that you mentioned "CDCI6214 Fractional Output Waveform Jitter Abnormality Test.docx"?

    Regards,

    Hao

  • Hi Darren,

    Any update? Please send over that word documents so that I can understand the details.

    Regards,

    Hao

  • We are experiencing a similar problem. The fractional divider works on some chips, doesn't work properly on others. Problem follows the chip.

  • Hi Darren and Justin,

    I've posted my answer here: https://e2e.ti.com/support/clock-and-timing/f/48/t/832181

    I'll let you know if we find the root cause.

    Regards,

    Hao