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.

TM4C1299NCZAD: I2C SCL internal pull-up value

Part Number: TM4C1299NCZAD


Tool/software:

Hi,

In the datasheet for the TM4C1299NCZAD it lists that the I2C interfaces contain an internal pull-up resistor. Please see image below.

 

What value is this? I need to know as it sounds like this will be put in parallel with my own selected pull-up and will affect the equivalent resistance specified. I am using SVO buffers so need to be confident that my pull-up allows me to pull below the VOL of the buffer.

Kind Regards,

Andrew

  • Hi Andrew,

      You must use an external pull up resistor for the bus. Normally for standard speed (100kbps), a 4.7k will suffice. For higher speed like the 400k, you will need a stronger pullup. I will suggest you use this app note https://www.ti.com/lit/pdf/slva689 to determine the correct value which depends on the bus loading. If you look at  how the I/O pad is configured for SCL function, the internal weak-pull is not enabled. The controller can only actively drive low for SCL. The time SCL or SDA takes to reach a high level depends on the external signal capacitance and pullup resistor value only, not the internal pullup. 

    void
    GPIOPinTypeI2CSCL(uint32_t ui32Port, uint8_t ui8Pins)
    {
    //
    // Check the arguments.
    //
    ASSERT(_GPIOBaseValid(ui32Port));

    //
    // Make the pin(s) be peripheral controlled.
    //
    GPIODirModeSet(ui32Port, ui8Pins, GPIO_DIR_MODE_HW);

    //
    // Set the pad(s) for push-pull operation.
    //
    GPIOPadConfigSet(ui32Port, ui8Pins, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD);