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.
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)
We are glad that we were able to resolve this issue, and will now proceed to close this thread.
If you have further questions related to this thread, you may click "Ask a related question" below. The newly created question will be automatically linked to this question.
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.