Part Number: DS90UB954-Q1
Other Parts Discussed in Thread: DS90UB935-Q1,
Dear Sir or Madam,
I am using a system where deserializer DS90UB954-Q1 communicates to a remote serializer DS90UB935-Q1 connected to a CMOS sensor through MIPI CSI-2 interface.
I have some problems at startup. Here you find a description of the startup procedure I am following. Problems are highlighted in red.
The remote serializer is biased using a voltage coming from the coaxial cable (using the PoC technique) and the reset pin of the serializer (PDB pin) is connected to the 1.8V bias voltage using a RC network (Rpull-up = 10K, C = 1uF to ground), so at start up the serializer turns on and the PDB pin goes up slowly after the power on of the device.
the same mechanism is used to reset the deserializer.TAfter startup I send a reset to the deserializer using register 0x01 and writing 0x02 on it.
Then I wait 5 seconds and I start programming deserializer registers:
- I configure AEQ using registers 0x42, 0xD2, 0xD5, 0x41, 0xD4, and I send a AEQ reset through 0xD2 register
- verify deserializer status in register 0x04 -> everything is OK
- I read register 0x5C to see I2C address of the remote serializer -> Here I see a first problem: I read 0x00, while the address should be 0x30 (from datasheet considering resistors partition on the IDX pin)
In any caseeven if the value is not correct the serializer seems working correctly. Indeed, i continue with the following steps:
- I set serializer address writing in register 0x5C
- I program CSI writing on registers 0x33, 0x7C, 0x20, 0x21 of deser
- I configure some registers of the serializer writing on I2C using the alias addres (0x0D, 0x0E, 0x02, 0x03, 0x06, 0x07) and I read back values to check if the serializer is working properly (everything is OK)
- I configure CMOS I2C physical address and alias (registers 0x5D and 0x65 of deserializer)
- At this point I check the deserializer status reading register 0x04 -> everything OK
- and i check the serializer status reading registers 0x51 and 0x52 of serializer -> Here I see the second problem; register 0x52, GENERAL_STATUS, shows a CRC error (GENERAL_STATUS[1] = 1)
- I try erasing the error writing 1 into register 0x49[2], but reading GENERAL_STATUS[1] I still get 1. Why is the flag not cleared?
I did some other tests to better investigate the problem and I discovered that if I do not reset the deserializer at the beginning of the startup procedure (so i do not write 0x02 in register 0x01) the second problem disappears (I do not see CRC problems anymore). In any case, I did not find any way to see the correct 0x30 serializer address at startup in register 0x5C.
Do you find any error in the procedure I am following?
Why does reset of the deserializer introduce CRC problems?
Why do I see 0x00 address of the serializer at the beginning?
i thank you in advance for your answer.
Best regards,
Alessandro Cominelli


