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.

DS90UB954-Q1: I2C no ack during Soc communication with Deserializer

Part Number: DS90UB954-Q1
Other Parts Discussed in Thread: ALP, USB2ANY

Hi team,

My customer design with our 953 and 954 FPD-link device, but face to I2C no ACK during Soc communication with 954.

I have search on E2E post( as below link), and get feedback from customer.

Please find customer's feedback below in red. Could you help to solve this issue? thanks.

- What's your I2C pull-ups?

Pull-ups is 1kohm.


- What is the I2C address of the 954?

IDX pin Rup is 78.7kohm and Rdown is 97.6k, so the I2C address is 0x7A.


- The I2C address can be shown in 7-bit or 8-bit mode. Make sure you are using the right I2C address.

Two kinds of address have been tested. 0x7A and 0x3D, and still no ack appears in communication between soc and 954.


- Can you read reg 0x00 from the 954 and see what it gives back?

Because there is no ack signal, so the reg value can't be read.

Below is the figure of SDA and SCL.

As you can see, the ack position where the SDA should be pull low is high. Could you help analyze the reason here? 

The clk is 25MHz.

Thanks and looking forward to your reply.

Best regards,

Jasper

  • Hi Jasper,

    Here are my responses:

    1) What's your I2C pull-ups?

    a) Our general recommendations for the I2C pull-up resistors is between 2-kOhms and 4.7-kOhms. But the optimum pull-up resistor depends on the customer's chosen I2C data rate and the bus capacitance. Please measure or simulate the bus capacitance of the I2C bus on the customer's PCB board and then refer to App Note SLVA689 (linked in the 954 datasheet) to calculate the optimal pull-up resistor for your I2C bus.

    2) What is the I2C address of the 954?

    a) At the IDX pin, if Rup is 78.7kohm and Rdown is 97.6k, then the 8-bit I2C address is actually 0x70. Please write to the 8-bit I2C address.

    3) The I2C address can be shown in 7-bit or 8-bit mode. Make sure you are using the right I2C address.

    a) The 7-bit address is stored in register 0x00 in the deserializer. But you would need to send I2C commands to the 8-bit address. Perform a left-shift operation on the 7-bit address to get the 8-bit address. For example, 0x38<<1 = 0x70.

    4) Can you read reg 0x00 from the 954 and see what it gives back?

    a) You can also use the register tab in ALP to check register 0x00.

    Best,

    Justin Phan 

  • Hi Justin,

    Sorry for my mistake and thanks for your reply.

    1) I will recommend customer to adjust the I2C pull-ups accord to application note SLVA689.

    2) At the IDX pin, I get a mistake. The Rup is 10kohm and Rdown is open actually. So the I2C address is 0x7A actually.

    4)I am afraid that my customer may not do this because they have already put 954 into their own board and there is no way for connecting to PC.

    Looking forward to your reply.

    Regards,

    Jasper

  • Hi Jasper,

    If the Rup is actually 10-kOhms and Rdown is open, then the I2C address is 0x7A. If you are unable to send commands to this I2C address, then please perform the following checks:

    1) What is the voltage applied to VDDIO?

    a) At startup, the VIH and VIL thresholds are set according to VDDIO and will follow either 1.8V logic or 3.3V logic. Since it seems the I2C pins are pulled up to 1.8V, I would like to make sure VDDIO is equal to 1.8V as well.

    2) Is the voltage at the PDB pin stable? I would like to make sure the Power-Up Sequencing has been followed and that no interruptions occur during normal operation.

    3) Use App Note SLVA689 and replace the pull-up resistors on the I2C bus to the optimal values. See if I2C communication is possible after resistor replacement.

    4) Are there any other components on the I2C bus of the 954 and the SoC that might accidentally be holding the lines HIGH?

    5) If there is any uncertainty about the I2C address of the DS90UB954, it may be possible to connect the device to a computer through a USB2ANY adapter and then run ALP on your computer: https://www.ti.com/tool/USB2ANY#order-start-development 

    Best,

    Justin Phan