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.

CDC706: Adress selection and programming multiple decives

Part Number: CDC706
Other Parts Discussed in Thread: CDCE706



Hello, 

in my project, there are two different CDCE706 that I want to configure in a different way depending on the case. I have two different scenarios:

  • the default one with an internal clock (16,384MHz);
  • the special one with an external clock (2,048MHz) received from a differential interface. 


My question is: How I can change the address of these two devices? 

I need to change the address to the first cdce706. Following the datasheet (pg. 18) I do as below:

  1. set byte 10 bits[3:2] of initialization pattern  (S11/S10) to 1 (from 0x46 to 0x4E);
  2. send an initialization pattern (initialization pattern is the same as my default pattern configuration);
  3. set high S1 pin;
  4. select clock source through clk_source pin;
  5. set byte 10 bits[3:2] of default configuration pattern (S11/S10) to 1;
  6. then send the configuration with the new address. (new address => 0b11010100)

If I switch to the external clock source I see the obtained output 1/8 of the desired one. This is obvious because 2,048MHz is 1/8 of 16,384Mhz.
Is my procedure wrong? 

Best Regards, 
Vincenzo 

  • Hi Vincenzo,

    Does the external configuration also set the output dividers to 1? Bypassing the PLLs does not bypass the output dividers.

    Regards,


  • Hi Derek,

    Thank you for your reply.

    No, it doesn't.

    These are my configurations:

    • Default (input clk_internal= 16,384MHz, y0= 32,768KHz, y1,= 24MHz, y2= 100MHz, y3=256kHz, y4=256kHz,y5=409,6kHz)
      • 0x11,0x04,0x01,0x80,0x80,0x53,0x4E,0x00,0x35,0x39,0x46,0x44,0x00,0x7D,0x0A,0x02,0x40,0x40,0x28,0x38,0x39,0x3A,0x3B,0x3B,0x3D,0x00,0x1B
    • Special (input clk_external= 2,048MHz, y0= 32,768KHz, y1,= 24MHz, y2= 100MHz, y3=256kHz, y4=256kHz,y5=409,6kHz)
      • 0x11,0x01,0x02,0x00,0x20,0x35,0x38,0x10,0x53,0x2E,0x96,0x42,0x00,0x7D,0x0A,0x02,0x08,0x08,0x05,0x38,0x39,0x3A,0x3C,0x3C,0x3D,0x00,0x1B

    When I switch to external clock Ys are 1/8 of the expected ones. So I though that the address configuration were wrong. Indeed the other cdce706 device works fine with the default address.

    Do you think that my address selection procedure is correct?

    P.S. I use TI Pro Clock v2.02 for the configurations.

    Regards,
    Vincenzo

  • Hi Vincenzo,

    Thanks for sharing the programming. I think your addressing procedure makes sense, but I wonder if the I2C address updates immediately, or if the pin state is sampled after POR condition.

    I looked through the register programming but I'm not totally sure how the outputs are dropping to an eighth of the frequency. If you can test the 2.048MHz configuration with the default address, do you see the correct output values?

    Regards,

  • Hi Derek,

    I misunderstood the address setting.
    As you can see in my first post I said, at point 6 of the list, that the CDCE706 new address will be 0b11010100 but I change only the A1 bit through the S1 pin and not the A0 bit. I thought that the addressing configuration procedure would change both A1/A0 bits.

    The default configuration was good only because the initialization pattern was the very same as the default one. After that trying to change the configuration through the new address the device doesn't t receive anything. That explains why switching the clock to 2.048MHz the outputs drop to an eighth of the frequency, the input clock is different but the configuration is still the old one.

    Putting the right address (0b11010110) inside the I2C write procedure the outputs are good.

    Thanks for your help and your time.


    Regards,

    Vincenzo