DS90UB953-Q1EVM: No sensor data output at des DS90UB954 from the ser DS90UB953 eval board

Part Number: DS90UB953-Q1EVM
Other Parts Discussed in Thread: DS90UB953-Q1, ALP

Dear TI Experts,

We are having a problem with receiving data from the CSI camera sensor. A short overview of the problem as follows,


- Communication Model- Sensor -> DS90UB953-Q1 eval board -> FPD Link -> logiFMC-FPD3-954 12-Ch FPD-Link III FMC (which contains the deserializer DS90UB954) -> FPGA.
- Able to start the sensor directly from FPGA PS.
- Getting the data at serializer CSI Input
- For sensor, not getting any data deserializer output
- CRC errors, Datalane errors show up when starting the sensor, but no sensor errors show at the deserializer register.
- Can be sent the Serializer TPG Data to the Deserializer and portrayed in a display.
- CSI setting, Port forwarding has been set according to the requirements at serializer and deserializer. Continuous clock, correct lane, CSI-2 Synchronous Mode, correct bcc setting has been selected for the serializer. besides that, nothing changed at the serializer.
- In the deserializer part, error threshold, pass-lock settings, filtering, scl-sda timing, data speed, port forwarding, virtual mapping, equalizer settings, bcc, and CSI setting has been done sequentially.

What should be considered to fix the problem besides the above settings, or what's needs to be modified? what could be the probable cause of the problem?

Regards,

Jonard Rico

  • Hi Jonard,

    Can you configure RX PASS to indicate valid frames on the deserializer? This will allow us to know if the deserializer can properly receive the frames.

    If you read reg 0x35 on the deserializer, does it show the CSI transmitter is outputting valid data?

  • Hi Jiashow,

    Thank you for the response. It has been solved using CLK_CTRL settings for the sensor in the Serializer.

    As another inquiry, I can't run the BIST script for the system. I have tried the script from the TI Model System for 954-953 Manual. Even I push the continuous errors or settings up for a higher duration, there is nothing changes between initial register values and afterward. Could you please describe, what could be the minimal setting to try the BIST script aside from the scripts written in the manual?

    Regards,

    Jonard Rico

  • Hi Jonard,

    To run BIST, you just need to have lock established. When you enable BIST, are you able to maintain lock?

  • Hi Jiashow,

    When i run the script from TI manual it shows the lock established before and after running bist. But nothing changes even i push the continuous errors. I have attached the example output of the script.

    Regards,

    Jonard Rico

    sn_customerservice_case_1d8e81e21bcf2850602cf715464bcb9a_attachments.zip

  • Hi Jonard,

    Based on the results, it doesn't look like you have lock established when you ran BIST (reg 0x04). Can you read reg 0x04 before you ran BIST and make sure LOCK is established?

    Best,

    Jiashow 

  • Hi Jiashow,

    I was trying to establish the lock. I tried the script from the TI manual to established. Its show become lock established even just within nanosecond even it is not locked. The output of the lock script:


    General Status = 0x45
    Lock established in approximately 0.1 seconds.

    What I have to do to run the bist or to lock established? what settings I have to do?

    Regards,

    Jonard Rico

  • Hi Jonard,

    Typically you establish lock first (if mode is correctly strapped, lock is automatically established. If mode is incorrect, need to select the RX port reg 0x4C, set back channel reg 0x58, and mode reg 0x6D). Once lock is established, you can run the BIST script.

    I'd like to clarify where your ALP is connected. Is it the serializer or the deserializer? 

    Best,

    Jiashow 

  • Hi Jiashow,

    I haven't connected to any ALP device. The I2C line of the Serializer is connected to an FPGA which is connected to Deserializer via the FPD link. I am sending the I2C data from FPGA PS.
    I have attached my script which is adopted from the TI manual. Can you please indicate, what register value I have to change or need to be added or modified? that would be a great help.
    I just wanted to run the BIST program. There is no need for a special configuration, a general one will be more than sufficient.

    sn_customerservice_case_1d8e81e21bcf2850602cf715464bcb9a_attachments (1).zip

    Regards,

    Jonard Rico

  • Hi Jonard,

    The requirement for running BIST is to make sure you set the right registers to establish lock:

    # Port selection, Passthrough, and aliasing
    WriteI2C(UB954, 0x4C, 0x01) #Enable Port 0 writes
    WriteI2C(UB954, 0x58, 0x9E) #I2C Pass through Enabled and BC = 50Mbps <I would suggest setting this to 0xBE for I2C pass through all. Or 0x5E for regular I2C communications.
    # WriteI2C(UB954, 0x5C, 0x18) #953 Alias defined as 0x18
    WriteI2C(UB954, 0x6D, 0x7C)

    After you set these registers, can you read reg 0x4D to confirm if lock is available and stable?

    Best,

    Jiashow

  • Hi Jiashow,

    Please see the below reply.

    No. I can read the value from 4D and it is null (0x00). In both pre and post case. As i already have given a screenshot of the output previously.

    Regards,

    Jonard Rico

  • Hello Jonard,

    What are the MODE strap settings on both the 954 and 953 sides? Also can you try just powering up both sides but don't run any script or send any configurations to 953 or 954, then dump the registers on both sides? They should link automatically without any need to program anything if the devices are strapped to the correct mode. Also can you send a picture of your setup for reference?

    Best Regards,

    Casey 

  • Hi Casey,

    The deserializer board is from Xylon and UB953 evaluation board is connected to via Coax cable . Both sensor uses separate deserializer. At initial point after the starting the boards, it is not locked as the default configuration is not matched (checked).

    The sensors are working fine, sending data quite good at 1080p60FPS and no errors occurred. But as a customer requirement, I need to provide BIST data along with it. I just want a very compact script (like as TI script for BIST) for both serializer and deserializer which can lock and run BIST script at initial point.

    Regards,

    Jonard Rico

  • Hello Jonard,

    Sorry but I'm confused on what you are saying here. At first it sounds like the SERDES are not able to lock in this setup:

    The deserializer board is from Xylon and UB953 evaluation board is connected to via Coax cable . Both sensor uses separate deserializer. At initial point after the starting the boards, it is not locked as the default configuration is not matched (checked).

    But then it sounds like they are locked after that since you are able to stream sensor data without issue:

    The sensors are working fine, sending data quite good at 1080p60FPS and no errors occurred.

    So I'm not sure what you are saying here. Do you need help establishing LOCK? Or are you having a problem specifically when you try to run BIST?

    Best Regards,

    Casey 

  • Yes, I am having the problem specifically when I am trying to run BIST. All the strap modes are in default mode which should establish the lock at the start-up. And the lock term comes into place because you have stated the only lock needs to be established to get the BIST running.

    cite: "But then it sounds like they are locked after that since you are able to stream sensor data without issue:"
    Nope, I ran the scripts at startup and the output remains the same (already attached the scripts and output results). Also after configuring the serializer and deserializer for the sensor, the sensor data is coming without any problem, but when I ran BIST with the same setting still it is not running (no status register is changing, no errors are shown, even though continuous errors has been set).

  • Hello Md,

    Your print-out of the BIST test indicates that the 954 is not receiving a valid REFCLK according to register 0x04[4] which is giving back 0 instead of 1. I think that is most likely related to the issue. What sort of clock do you have provided to the 954 for the REFCLK? Can you share the schematic?

    Best Regards,

    Casey 

  • It 25MHz Oscillator on the deserializer board. I am using the U21 Deserializer of the board.

    deserializer board schematic.pdf

  • Hey Md,

    Upon second inspection I was mistaken about the REFCLK bit in reg 0x04[4]. I'm wondering - is it possible that you are connecting to the incorrect cable coming out of the quad ports? The script you are using selects RX0 on the 954 but I can see from the schematic that there are 6 954s on the board and each one has two channels. Can you verify that you are plugged into the correct RX port based on the camera you are trying to access? Maybe try switching around the RX connections to find the correct port?

    Best Regards,

    Casey 

  • Hi Casey, 

    I have checked with both ports though I am sure of using the correct port, as I can reach the sensors, while I connect them.

    can you provide me a small script with initialization code which will hard reset all the register at first, then set up both serializer and deserializer for BIST?

    Thanks,

    Mizan

  • Md, 

    The script that you used before was already the right script. It looks like it is from the PreDefScripts folder in the Analog Launchpad install path. The BIST Script enables BIST on RX0 of the 954. So please verify that the sensor you are trying to connect with is attached to RX0 and not RX1. When the camera is streaming, can you please read back register 0x4D to check the status?

    Best Regards,

    Casey 

  • Yes, I only have modified the functions to incorporate with my program and run on the FPGA. 

    I have tried both changing cable and changing 0x4C to 0x12/0x00. Not working.

    While the sensor is running, I am getting 0x83 from the 0x4D register. 

    One thing I want to mention, I am communicating the serializer through the deserializer, not separately. Could it be the problem? if so, is there any additional device I need to read from the serializer board with the Analog Launchpad?  Because when I connect the serializer with a USB cable for running with Analog Launchpad (windows10) it either hangs, or wrong board shows up...

    Thanks,

    Mizan

  • Hello Md,

    This should work without issue from the deserializer side. I'm not sure why you are getting this issue at the moment. It's really strange that it looks like you are able to communicate with the 953 through the link (because in the first part of your script printout it reads reg 0x00 from the 953 successfully), but then reg 0x04 of the 954 reports no LOCK. I don't see how this is possible... 

    Can you try a different 953/954 device? Do you have a 954 TI EVM which you could test with instead of the FPGA board?

    Best Regards,

    Casey 

  • Hello Casey,

    Thanks for the very long discussion and have patience with me. A have tried the second and third deserializer of the board. It is working without any problem with the same script. I don't understand what is wrong with the first one. It took me more than 1 long month to have this. 

    I can't thank you enough.

    Best Regards,

    Mizan

    Edit: Unfortunately I can't mark it resolved as this post is created by the TI support. I hope he will mark it resolved.