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: Communication data rate from I2C bus to camera over backchannel

Part Number: DS90UB960-Q1

Hi Team,

When trying to communicate to multiple cameras over the backchannel, how should the datarate be calculated starting from the SoC?

Basically, all the data will have to share the same I2C pipe between the SoC and the DES, but then after that, it gets fanned out to the different backchannels, correct? So how does the math work out there to calculate how long communication could potentially take?

Thank you,

Jared

  • Hello Jared,

    this is correct that the data will have to share the same I2C pipe between the SoC and the DES, but after that it will be forwarded to the different SER over the different BC using:

    1) Either in series, i.e. communicating with one Camera at a time, then to the next and so on,or

    2) Use the Broadcasting mode by forwarding the exact same initialization to all 4 Cameras (this can be used for initialization at the begining).

    So, for normal communication, you are using the first method, which forwards the I2C in series not simultaniously.

  • Hi Hamzeh,

    That is good to know. Is there a way to calculate how long that communication will take to get to each camera?

    -Jared

  • Hello Jared,

    The approximate effictive bit rate, including latency timings across the control channel, can be calculated by the following formula:


    9 bits / ((Host_bit * N) + (Remote_bit * N) + FCdelay + BCdelay); where N = Number of I2C bits sent over one frame.

    For the 953/954 if using the 400KHz I2C rate, then the effictive bit rate would be:

    9 bits / (22.5us + 22.5us +0.01us+1.2us) = 194.76 kbit/sec


    If using the 1MHz I2C rate on both sides, then this would result in an effective bit rate =
    9 bits / (9us + 9us +0.01us+1.2us) = 468.5 kbit/sec.

    Hope that helps.

  • Hello Hamzeh,

    Thank you so much! To clarify, for the calculations above, would they apply to item one or item two below?

    1) Either in series, i.e. communicating with one Camera at a time, then to the next and so on,or

    2) Use the Broadcasting mode by forwarding the exact same initialization to all 4 Cameras (this can be used for initialization at the begining).

    I am assuming item two because wouldn't item one be approximately 1/4 the bit rate since the entire communication would have to happen 4 times in order to get the message to all four cameras?

    Thank you,

    Jared

  • Hello Jared,

    The effictive bit rate is the same for both above methods. 

  • Hi Hamzeh,

    I see, that makes sense. So let's say communication to all four cameras need to take place in less than 100ms, how would you go about determining if that is possible or not?

    Assuming 1MHz I2C rate, would you just take the bit rate and convert to data/100ms? I think that would be 468.5kbit/sec -> 46.85kbit/100ms

    So that means within 100ms, if you can get 46.85kbit of data to all four camera, that would work, correct? How do you go about determining how many bits is required to configure a camera?

    Please let me know if I'm on the right track or not.

    Thank you!

    Jared

  • Hello Jared,

    you are correct!

    I believe, you should know how big is your I2C data that you want to transmit to the Camera, then you should be able to calculate if that would be sufficient or not.