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.

DS90UB960-Q1: Synchronized forwarding and bandwidth requirements

Part Number: DS90UB960-Q1

Hi,

The 960 datasheet only specifies the following requirements for synchronized CSI forwarding:

  • Video arriving at input ports should be synchronized within approximately 1 videoline period
  • All enabled ports should have valid, synchronized video
  • Each port must have identical video parameters, including number and size of video lines, presence of synchronization packets, and so forth.

I was able to get synchronized streaming for 4 sensors. I checked the line valid signals from the deserializer GPIO and it showed that the gap between two lines is 16.6 us. This is running at 30 fps with line length = 4400. However, when I decreased the line length to 2200, I could no longer get synchronized streaming. The gap between 2 lines is now ~2 us.
The frame rate also changes to 60 fps. But I don't think this is a just a max data rate issue because the bits/pixel is the same and the product of line length and FPS is also the same (4400*30 = 2200*60).

Is there a minimum line-to-line time gap for line-concatenated/interleaved synchronized streaming? Will synchronization fail if the next line is received in the Rx port buffers before the current set of lines are all forwarded to Tx port?

Is the bandwidth at 960 based on the active pixel only (or the duration of the line valid signal only)? 

Also, is queuing at the based Rx port buffers only 1 line at a time?

  • Hi Luis,


    These are some good questions, I'm looking into them and will get back to you once I find out if there's some requirements for this.

    In terms of the total bandwidth of the 960, the CSI data includes the total lines per frame, not just the active pixel.

    Regards,
    Mandeep Singh
  • Hi Luis,

    Just following up. There isn't a minimum line-to-line time gap, other than what is required for CSI. Buffers support up to a certain number of packets, so it is possible to receive incoming lines for a port before it has finished sending the previous line. In most cases, the buffers should tolerate at least one line period.

    Regards,
    Mandeep Singh
  • Hi Mandeep,

    Thank you for your response.

    Can you help us figure out why our synchronization is failing for 4 cameras with the deserializer set-up in line-concatenation forwarding mode?

    As what I stated in my main question, the synchronization only works when there is sufficient line-to-line gap. We also tested this with using RGB888 pattern generated by the 953 serializers. I was able to successfully stream 4 953 serializers in 1920x1080 RGB888 pattern gen mode in line-concatenation mode of the 960.  If I decrease the line period setting, the synchronization fails.

  • Hi Luis,

    To summarize, the issue isn't synchronization of the 4 cameras, the issues is when you reduce the line length down to 2200 and increase the fps to 60? Essentially you're maintianing the same video throughput but line length issue causes problems?

    1) Are you using Internal or External FrameSync?
    2) Have you tried 2 Cameras? Any difference in Results?
    3) Can you share your script or procedure for the registers you're setting and what value you're setting them to?
    4) Do you get an errors in the registers? Have you checked what the 960 CSI registers are showing? Are there any CSI errors? or an lock or Pass issues? Parity errors? When you check Pass, make sure you have it, so the threshold requires at least 1 valid frame before PASS goes high. This is a good indicator that CSI data is coming to the 960 from the Serializer.
    5) Can you confirm, your set-up is 4x 953->960?
    6) Have you tried lowering the line length and maintaining the fps to 30? What were the results?
    7) Have you tried Basic Sync Forwarding and Interleaving? Both at 4400/30fps and also 2200/60fps? What were the results? I know you asked about interleaving but it wasn't clear if you tried it with those two settings.
    8) What Camera are you using?
    9) Have you tried 1 camera with the 2200/60fps? What were the results?

    Regards,
    Mandeep Singh
  • Luis,

    Anything else needed here?

    Best Regards,
    Casey
  • Hi Mandeep,

    Yes, video throughput is the same but the change in line length (and therefore the time between adjacent line valid signals) affects synchronization.

    Here are my answers:

    1.  We used internal framesync for the sensor. But for 953 serializer TPG, we just use broadcast write mode.

    2. Upto 2 cameras works fine, even with only 1 us gap between adjacent line valid signals.

    3. Do you need all the register writes to the deserializer?

    4. We checked the 960 registers and there are no CSI or parity errors. PASS is also checked and verified that there are good CSI data going to each Rx port of the 960. Even the 953 registers don't indicate any errors.

  • Continued:
    5. Yes, setup is 4x 953-960 pairs.
    6. We haven't tried the same fps but shorter line length. We can test it.
    7. We can't use basic sych forwarding because the virtual channel is not supported in our system. We can try the interleave forwarding.
    8. We were using Sony IMX390.
    9. 1 camera at 2200/60 fps works fine as well.
  • Hi Luis,

    Thank you for the info. There's two things we can try and I've listed them below. Additionally, when you are running at 60fps, are you adjusting the timing of the internal framesync so that it is also running at 60fps? Also, you want to make sure that all the data from the cameras is fitting within that time frame of that internal frame sync.

    1) Since you can get two cameras wokring with 2200@60fps, can you try different combinations. For example, try running camera 1 and 2, then 2&3, then 3&4, then 1&4... I'd like to know if there's a combination between some of the cameras that's causing this issue.

    2) Can you bring out the Framesync signal, along with the FrameValid for each camera out to the GPIOs and capture the scope shot? If the scope is limited to 4 input, then bring out the FrameSync with 3x cameras and then do the last one separately. We want to understand if there's any timing issue that's occuring when you're running all 4 cameras. By the way, do 3x cameras/953s work okay? at 2200w/60fps

    3) Similar to #2, can you repeat the test but bring out the FrameSync with the LineValid?

    Regards,
    Mandeep Singh