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: Configuration issue

Part Number: CDCI6214


Hi, 

I'm trying to make the CDCI6214 work, but still unsuccessfully. You might give me a useful advice...

The attached schematics is my actual circuit. I'm not expecting it to be wrong. 

Regarding the software, I'm not sure about the configuration procedure. Following are the configuration of registers that are written to I2C Slave addres: 0xEC

FIrst, the voltage configuration of outputs is set, then all registers in order from 0x44 to 0x00 are written.

My problem is that I can control most of the functions, but the PLL won't lock an I also can't control outputs Y1-Y4.

I'm able to bring the reference clock only to output Y0, not to other outputs.

What is strange is that i have to apply RESET multiple times until the device responds to I2C commands.

Many thanks for your comments!

Stan

00280000
002E0000
00340000
003A0000

00440000
00430020
00420000
00410F34
0040000D
003F0210
003E4209
003D1540
003C0018
003B106B
003A0000
00390A65
00380405
00370012
00360000
00358000
00340000
00330A65
00320415
0031C005
003001EE
002FBA34
002E0000
002D0A65
002C0415
002BC00C
002A00DB
002986DB
00280000
00270A65
00260405
00250012
00240000
00238000
00220050
00210007
00200000
001F1E72
001E5145
001D421C
001C0000
001B3419
001A0718
00190000
00180001
00170000
00160000
00150000
00140000
00130000
00120000
001126C4
0010921F
000FA037
000E0000
000D0000
000C0000
000B0000
000A0000
00090000
00080000
00070000
00060000
00050020
00040041
00039000
000200D0
00016B82
00003000

  • Dear SK, thank you for reaching out. I will check your schematic but more your register map and get back to you by Monday march the 5th.

    Regards, Simon.
  • Hi Simon,
    thank you, I'll wait for your answer.
    I just wanted to add that the register setup doesn't represent the required output standards and frequencies, I firstly wanted to output sth to prove functionality of the chip.
    S_K
  • I just need a bit more time, thank you for your patience, Simon.
  • R70	0x00460000
    R69	0x00450000
    R68	0x00440000
    R67	0x00430020
    R66	0x00420200
    R65	0x00410F34
    R64	0x0040000D
    R63	0x003F0210
    R62	0x003E4209
    R61	0x003D1540
    R60	0x003C0018
    R59	0x003B102B
    R58	0x003A0008
    R57	0x00390A65
    R56	0x00380405
    R55	0x00370014
    R54	0x00360000
    R53	0x00358000
    R52	0x00340008
    R51	0x00330A65
    R50	0x00320415
    R49	0x0031C005
    R48	0x003001EE
    R47	0x002FBA34
    R46	0x002E0008
    R45	0x002D0A65
    R44	0x002C0415
    R43	0x002BC00C
    R42	0x002A00DB
    R41	0x002986DB
    R40	0x00280008
    R39	0x00270A65
    R38	0x00260405
    R37	0x00250014
    R36	0x00240000
    R35	0x00238000
    R34	0x00220050
    R33	0x00210007
    R32	0x00200000
    R31	0x001F1E72
    R30	0x001E5144
    R29	0x001D0018
    R28	0x001C0000
    R27	0x001B3401
    R26	0x001A0719
    R25	0x00190000
    R24	0x00180001
    R23	0x00170000
    R22	0x00160000
    R21	0x00150000
    R20	0x00140000
    R19	0x00130000
    R18	0x00120000
    R17	0x001126C4
    R16	0x0010921F
    R15	0x000FA037
    R14	0x000E0000
    R13	0x000D0000
    R12	0x000C0000
    R11	0x000B0000
    R10	0x000A0000
    R9	0x00090000
    R8	0x00080000
    R7	0x00070000
    R6	0x00060000
    R5	0x00050028
    R4	0x00040055
    R3	0x00039000
    R2	0x000200D0
    R1	0x00016B82
    R0	0x00003000
    
    R70	0x00460000
    R69	0x00450000
    R68	0x00440000
    R67	0x00430020
    R66	0x00420200
    R65	0x00410F34
    R64	0x0040000D
    R63	0x003F0210
    R62	0x003E4209
    R61	0x003D1540
    R60	0x003C0018
    R59	0x003B102B
    R58	0x003A0008
    R57	0x00390A65
    R56	0x00380405
    R55	0x00370012
    R54	0x00360000
    R53	0x00358000
    R52	0x00340008
    R51	0x00330A65
    R50	0x00320415
    R49	0x0031C005
    R48	0x003001EE
    R47	0x002FBA34
    R46	0x002E0008
    R45	0x002D0A65
    R44	0x002C0415
    R43	0x002BC00C
    R42	0x002A00DB
    R41	0x002986DB
    R40	0x00280008
    R39	0x00270A65
    R38	0x00260405
    R37	0x00250012
    R36	0x00240000
    R35	0x00238000
    R34	0x00220050
    R33	0x0021001F
    R32	0x00200000
    R31	0x001F2934
    R30	0x001E79E5
    R29	0x001D421C
    R28	0x001C0000
    R27	0x001B3419
    R26	0x001A0718
    R25	0x00190000
    R24	0x00180001
    R23	0x00170000
    R22	0x00160000
    R21	0x00150000
    R20	0x00140000
    R19	0x00130000
    R18	0x00120000
    R17	0x001126C4
    R16	0x0010921F
    R15	0x000FA037
    R14	0x000E0000
    R13	0x000D0000
    R12	0x000C0000
    R11	0x000B0000
    R10	0x000A0000
    R9	0x00090000
    R8	0x00080000
    R7	0x00070000
    R6	0x00060000
    R5	0x00050020
    R4	0x00040041
    R3	0x00039000
    R2	0x000200D0
    R1	0x00016B82
    R0	0x00003000
    

    Hello Stan,

    from your schematic it seems like you select EEPROM Page 0 and REFP as input.

    I assume you overwrote the default EEPROM settings, as we ship the Page 0 as "output enable mode" = a.k.a "I2C off".

    I think your PLL setting was not fully stable. That is why you sometimes could get it to lock, sometimes not.

    I attached your config where I just made the PLL stable and another one where I reconfigured the PLL to a different frequency, so that you can get higher PFD rate. In that config I also switched XIN to  LVCMOS looking at your schematic.

  • Hi Patrick,

    thank you. I’ve finally put the device into a default state by floating refsel and eepromsel, then I’m able to successfully control all functions of the device. So that the chip is working just fine.

    If you don’t mind assisting me once more, I’d like to know one last thing:

    Can you give me please an example how to perform the direct write to the eeprom via the I2C?
    The thing with the register offset isn’t clear to me.

    Thanks

    S.
  • Hello Stan,

    good to read it is working for you now!

    About the "direct write" method:

    The position of the bits of a bit field in the register map and in the EEPROM map are different. Therefore you can either create an EEPROM image using the TICS Pro software or you can generate it by hand using the EEPROM map given in the data sheet.

    Please refer to the register map table "GENERIC0" and "GENERIC1" (Rev A data sheet table 19, page 40 ff) and the table "EEPROM, Page 0" (Rev A data sheet table 76, page 91).

    You will find the bit fields from those registers in the EEPROM map.

    E.g. in word 0xC, of the EEPROM map, the MSB is "gpio4_input_sel[3]" (4th bit of the gpio4_input_sel bit field) and LSB is "mode" bit field.

    For the "direct write method" you take your generated 64 words for the EEPROM map and prepare them as (offset,value) data pair.

    You can think of nvm_wr_addr and nvm_wr_data bit fields as the the arguments to a function call:

    write_to_eeprom(word,value); --> write_to_eeprom(nvm_wr_addr,nvm_wr_data);

    The "register commit method" acts more like a copy_regmap_to_eeprom(); function.

    As mentioned in the data sheet, please keep in mind to unlock the EEPROM first using ee_lock bit field after each power-up.

    Please let me know if that helped!

    Best regards,

    Patrick

  • Hello Patrick and Simon,

    all functions are now working as required.

    The problem was mainly in me not following the recommended programming sequence.

    Thank you for your support.