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.

DS90UB953-Q1: I2C stall at low temperature

Part Number: DS90UB953-Q1

Hello

We made our cameras with ds90ub953.

And faced with some problems: I2C doesn't work at low temperature.

When temperature is 10C or higher - it works fine.

When temperature goes lower - some boards have problems with I2C. It depends from board instance: some boards works up to -25C, but some boards doesn't work at 0C.

I attached diagrams of I2C SDA and SCL pins, captured by logic analyzer when problem happen.

In this case ub953 have temperature near to 0C, it is in Synchronous mode with ds90ub960 at 24MHz over Coax cable, I2C pull-up is exists on board, no I2C slaves is connected.

I can read registers from ub953, but when I try to read some device behind ub953 - I have stall on I2C lines as in the images above.

I found similar topics on forum:

e2e.ti.com/.../839914
e2e.ti.com/.../915164

but there are no any solution or recommendations.
As I understand :
Back Control Channel works fine(because I can read registers from u953 over coax)
Forward Channel works (because when camera is configured and video stream is started when camera was warm - video stream doesn't stop when camera cools)
But I2C from ub953 to image sensor doesn't work.
What we need to check in our design?
  • Hello,

    It's not clear from the scopeshot what may be happening to the signal. Could you provide scopeshots of the full transection: serializer I2C sent to the imager, and imager response (if at all). It would be good if you could provide a passing case and a failing case.

    Best,

    Jiashow

  • At low temperature there are no differences between cases "serializer I2C sent to the imager" and "serializer I2C sent to empty bus". I disconnected image sensor to prevent the influence to signal from it.

    Scopeshots bellow are "serializer I2C sent to empty bus". Channel 0 is SCL, Channel 1 is SDA.

    The first scopeshot is more detalied view of pulse from the second image. Second scopeshot is "full transection", that I see after serializer. I tried to write register 0x0 at address 0x42, but I see only "start sequence" and first rising edge on SCL, after that SDA doesn't go to "1" until serializer will restarted.

    I checked LOCK status - it doesn't change, CRC_ERR in GENERAL_STATUS is cleared.

  • Looks like we found reason of this behavior.

    Our I2C levels is 1.8V, but ub953 was configured for 3.3V levels.

    I think input levels changes with temperature and 1.8V becomes not enough to be "1"

    Thank you, for your attention.