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.

DS90UB928Q-Q1: How to calculate 928 I2C rate thru register value setting

Part Number: DS90UB928Q-Q1

Hi team,

Customer would like to know how to calculate the I2C rate thru the SCL_High & SCL_Low setting in 928? 

They have 2 project both use same SCL_High/Low value, 0x26= 0x0B, 0x27= 0x16. 

But they have slightly different I2C frequency. Would you help to check whether this is within the tolerance spec, is it indicate in datasheet?  And what is the clock source for I2C clock actually?

   

Regards,

Alex

  • Hello Alex,

    please refer to this Application Note

  • Hi Hamzeh,

    I can't find the answer in the application note you point to. Please help to check my question. Thanks.

    Regards,

    Alex

  • Hi Alex, 

    Please refer to this 6840.snla222.pdf application note instead for the calculations, it's for the 913/914 but the concept is the same. Please note that setting SCL high and low are only necessary when using the 928 as a proxy master. 

    Best,

    Shu

  • Hi Shu,

      

    I would like to clarify the question clearer.

    1. The unit base for 928 to generate I2C master CLK is 20ns? 

    2. But why I verify customer's setting, the CLK rate is 606Khz?

    3. What is the tolerance spec of this internal oscillator(20Mhz?)? Whether the clock difference in 2 system that customer is facing is reasonable?

      

    System-A: 928 I2C rate: 442.48kHz

    System-B: 928 I2C rate: 409.84kHz

         

    Regards,

    Alex

  • Hi Alex, 

    The base unit for the 928 is 50ns. I still do not fully understanding your question. 

    Best,

    Shu

  • Hi Shu,

      

    The base unit for 928 is 50ns which means the internal oscillator is 20MHz. 

    1. is there a spec indicate the variation of the internal 20MHz clock? 

    2. What is the general setting for 400khz I2C rate on 928? (0x26 = 0x12, 0x27 = 0x20?). Customer would like to know what is the reasonable SC clock maximum and minimum frequency?

      

    Regards,

    Alex

  • Hi Alex, 

    I see, let me look into this and get back to you tomorrow. 

    Best,

    Shu

  • Hi Shu,

      

    Btw, Customer engineer told me they're facing a strange problem on 928. They set 0x26 = 0x19, 0x27 = 0x19, but found the I2C clock rate is not 400kHz. But after they set it to 0x26 = 0x0b, 0x27 = 0x16, the I2C clock became around 400k. But they face another problem like I mentioned in above. With same register setting, project A got 442Khz, and project B got 409kHz. 

     

    Regards,

    Alex

  • Hi Alex, 

    This is expected behavior. The rate of I2C is based on the internal always on clock and the register programmed value. The always on clock has inaccuracy up to 10+% across PVT, this translates to slight mismatch between programmed and measure value. 

    Regards, 

    Logan

  • Hi Logan,

       

    Thanks for the explanation. So we can expect max 10% variation of SCL clock rate across different system. 

    But it still can't explain the other problem that customer is facing. When set 0x26 = 0x19, 0x27 = 0x19, they measured the 928 I2C clock rate is not 400kHz. So they manually adjust the setting to 0x26 = 0x0b, 0x27 = 0x16, the I2C clock became around 400k. If so, the base unit would be around 70ns instead of 50ns. Why?

        

    Below are 928 register dump

     

    *** Running 928_All Reg Dump_INX.py ***
    Start 928 All Reg dump...
    main page
    Regs : 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F
    0x00 : 0x58 0x04 0x00 0xf0 0xfe 0x1e 0x00 0x18 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x10 : 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x03 0x23 0x33 0x00
    0x20 : 0x00 0x00 0x00 0x10 0x08 0x00 0x0b 0x16 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x30 : 0x00 0x00 0x10 0x25 0xfa 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80 0x00 0x10
    0x40 : 0x43 0x03 0x03 0x00 0x60 0x88 0x00 0x00 0x0f 0x80 0x00 0x08 0x00 0x00 0x63 0x00
    0x50 : 0x03 0x10 0x00 0x01 0x80 0x00 0x08 0x00 0x00 0x3f 0x20 0x20 0x00 0x00 0x00 0x00
    0x60 : 0x00 0x00 0x00 0x00 0x10 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02 0x00
    0x70 : 0x00 0x00 0x00 0x07 0x07 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x02 0x00 0x00 0x00
    0x80 : 0x3e 0x94 0x21 0x6f 0xe2 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x90 : 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0xa0 : 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0xb0 : 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0xc0 : 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xc0 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0xd0 : 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0xe0 : 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0xf0 : 0x5f 0x55 0x48 0x39 0x32 0x38 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    *** Script execution time 0 min 0.311 sec ***

       

    Regards,

    Alex

  • Hello, 

    Since today is a US public holiday, we will continue support on your request on Monday. Thank you for your patience. 

    Regards, 

    Logan

  • Alex

    But it still can't explain the other problem that customer is facing. When set 0x26 = 0x19, 0x27 = 0x19, they measured the 928 I2C clock rate is not 400kHz. So they manually adjust the setting to 0x26 = 0x0b, 0x27 = 0x16, the I2C clock became around 400k. If so, the base unit would be around 70ns instead of 50ns. Why?

    As I already mentioned, this isn't unexpected and is directly explainable by the AON variation. The AON directly leads to the base unit variation.

    Thanks for the explanation. So we can expect max 10% variation of SCL clock rate across different system. 

    It can actually be upwards to 10-20% off in PVT. 

    Regards,

    Logan

  • Hi Logan,

     

    Could you clarify what is AON version and PVT?

     

    Regards,

    Alex

  • Hi Alex, 

    The since the I2C rate is based off of the always on clock (AON) there is a variation (10 - 20%) on the AON Clock that it can come across due to process, voltage, temperature (PVT). 

    Best,

    Shu