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.

TMP117: Pull-up value for SDA/SCL

Genius 17325 points
Part Number: TMP117

Hello,

The TMP117 datasheet recommend to use 5Kohm for pull-up on SCL/SDA lines.
But it also says that “in some applications, the pullup resistor can be lower or higher than 5K Ohm”.
My customer want to change it to 47K ohm with 150KHz clock. Is it acceptable?

Regards,
Oba

  • I2C pull-ups should be calculated for every specific design based on the parasitic impedance in the I2C bus traces. Refer to the I2C specification for details: https://www.nxp.com/docs/en/user-guide/UM10204.pdf 

    For typical designs with reasonable bus trace length and not a lot of I2C devices connected 3 - 5 kohm will work fine. 47 kohm is way too high resistance and will not work.

    /F

  • Oba - 

    Agree with Fredrik. Also, it would be non-standard or rare to run at 150kHz (most folks operate at 100kHz or 400kHz). Is there a reason they operate at 150kHz, specifically? Are they bit banging the I2C instead of using a dedicated MCU peripheral?  

  • Hello,

    Thanks for reply. I'm not sure the reason of 150Hz,
    Anyway, so if all parameters described in page 7 of the datasheet (I think it is same as I2C spec) are within the specified value on the customer's board, any resistance value is OK.
    Correct?

    Regards,
    Oba

  • Oba - 

    Not correct regarding the "any resistance value is OK" comment. 

    to illustrate the concept for clarity, I made an I2C simulation  - here is what happens when you raise the pullups and the bus cap is set at 10pF (varying this also has impact, too - but here we are focused on the pullup value so you completely understand what happens)

    1.2k (hard pullup) - nice square edges

    4.7k (nominal) 

    10k - probably about the limit - as you can see the leading edge is becoming rounded off

    at 47k, this would be completely unusable

  • Hello Josh,

    Thanks for showing good example.

    What I wanted to say for "any resistance value is OK" is if all parameters in the below table are within the spec.
    For example 47K case in your simulation, it obviously violates t_HIGH time in the table. So it can't be used in this case.

    So my question is if all parameters in the below table are within the spec on their board, is it OK to select any resistance value?

    Regards,
    Oba

  • Hi Oba,

    There's one other spec that constrains pull-up resistors. The Vol spec limits the minimum pull-up resistor by constraining the output to less than 3mA.

    Otherwise, yes, any resistor can be used when the Timing Specifications are met.

    thanks,

    ren