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.

[FAQ] Can I leave "...." pin floating on my I2C I/O expander or I2C switch? (INT, Reset, Port I/O, ect.)

For I2C I/O expanders and switches, what happens if I leave a pin floating (such as an interrupt pin, Reset pin, I/O pin, ect.)?

  • Can the Interrupt pin be left float?

    All of our I2C I/O expanders and switches the interrupt pin's are open drain outputs. This means that if the interrupt pin is not going to be used, the interrupt pin can be left floating. If the interrupt pin is being used, it must be tied to Vcc.

    Can the reset pin be left floating?

    Typically the reset pin will have a internal weak pull up resistor. (If it does, the datasheet will specify this) In this case, the reset pin can be left floating however adding a stronger external pull up resistor is recommended in cases where EMI or electrical noise is expected.

    If an I/O expander or switch does not have an internal pull up resistor, then the reset pin cannot be left floating.

    I have some unused I/O ports, can I leave an I/O port floating? 

    Some of our I/O expanders come with an internal ~100k pull up resistor, in which case the I/O pin can be left floating. (You can check by going to the functional block diagram for the device!)

    If the device does not have an internal pull up resistor, then you could possibly leave the pin floating BUT you have to consider your application.You will need to consider 2 points.

    (1) Are you running your system off of a battery and care about supply current? If so, then leaving an input floating (the device starts up default as an input) will potentially cause higher current consumption due to the input stage's CMOS gates partially conducting (also called shoot through current). In this case, you would want to either use a pull up/down resistor on the unused I/O port or you can immediately program the port to become an output (either low or high) to ensure the input is referenced. (Input stage is still there even if you set as an output but because it is referenced, we can prevent unnecessary shoot through current)

    (2) Are you using the interrupt feature (if included) of the I/O expander?

    If yes, then any unused could float up or down and cause the INT to toggle and give false interrupts for the used input ports. Unused I/O ports should either be set as outputs or tied to a pull up/down resistor.

    I have some unused channels on my I2C switch, can I leave them floating?

    Technically if you never enable the unused channels, then leaving the channels float will not be a problem. If the channels are accidentally enabled then noise could couple onto the pins and corrupt your I2C transaction.

    The recommendation is to place pull up resistors on the unused channels to ensure noise does not couple onto the pins if they are accidentally enabled. 

    ----------------------------------------------------------------

    Pins that should not be floating:

    Vcc, Ground, SDA, SCL, and Address pins (a0, a1, a2)