Tuesday, 3 January 2017

Use GPIO for switchable Pullups of I2C


I'm designing a general purpose interface board and want to make available as many of the peripherals available and usable on an expansion header without the need for permanent (soldering) changes.


One issue is making the I2C pullup resistors switchable, such that they can be disabled when not needed. My initial idea simply uses a free GPIO output to pull the resistors high or is disabled (high impedance) when not needed, as depicted below. This apparently saves me a switch transistor. Is there anything I need to be aware of, or is this feasible?


I know that the pullup resistor values depends on the bus length and speed, but we found that for our applications 4k7 Ohm are generally OK.


schematic


simulate this circuit – Schematic created using CircuitLab




No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...