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.

CDCE949: I2C communication problem

Part Number: CDCE949

Tool/software:

Hi.

While using CDCE949PW. I had problem with writing and reading the register values from i2c communication.

I used several frequency for SCL (400khz,100khz,less than 100khz)
whenever I try to read any register, it return always 0x07 value.

  • Jinhyun,

    Do you still see this issue if you use 1K pullup resistors instead of 4.7k pullup resistors?
    Is the device ACKing with the correct I2C address, 0x6C?
    Thanks,

    Kadeem

  • As you can see in the waveform, the device is acking well for 0x6c address.
    And the device always return 0x07 value in read sequence even with slow bit rate (less than 100khz).
    So I don't think it would make sense to change it to 1k ohm.

  • Junhyun,

    Has this device been programmed outside of TI at any point?

    If you write a register and then read back the value, do you still only see 0x07?

    Thanks,

    Kadeem

  • Kadeem,

    We didnt ask any modification to TI.

    Writing register does not change the result.

    And I think writing also doesnt work. 

    I tried to change y1 output state from trisate to output. But nothing happen...

    In other hand, when I moved the resister to make s0 to pull up, input clock bypassed to each Y port.

    By the way, what I did to the chip for read register is below.

    1. Turn on device power

    2. Check every power supply is in the range of the chip.

    3. Try to read any register by i2c communication.

    Is there anything wrong with the sequence?

  • Jinhyun,

    According to the datasheet, pulling the S0 pin high enables the outputs, with S0 low disabling the outputs:

    Can you confirm that you are following this sequence:

    For single byte reads and writes, the CommandCode should be a '1' as the MSB followed by the 6 bits denoting the byte offset. 

    Does a block read yield repeated 0x07 results? Or is the readback different values after the first 0x07?

    Does this issue happen on other CDCE949 devices as well, or only the one device? I see no issue with the sequence that you have outlined.
    Thanks,
    Kadeem

  • Good Point! I missed that point. I used '0' for Command Code MSB. that why the register acted weird.
    Now it works! 
    Thank you Kadeem!