Disabling pull-up resistors on SCL and SDA lines.


I'm currently working on a project that uses the Arduino DUE as the "brain" of everything. Esentially I need to get as much I/O out of this board as possible. I have hit a wall when trying to use pins 20(SDA) and 21(SCL) configured as INPUTS. My external circuitry is designed to ground the pins when the circuit is OFF and pull them to 3.3V using a 30k resistor when ON. For this to work the internal pull-up resistors on the Arduino have got to be disabled (which as I understand should happen by default when configuring the pin via pinMode( ) as an input). As these pins are used for I2C i understand they are by default pulled to 3.3V instead, when the I2C bus is empty. Is there a way to disable these pull-up resistors ? And if so, will I still be able to access the the I2C bus through the other two different pins on the microcontroller? (D20 and D21 have 2 different sets of physical pins assigned on the Arduino microcontroller).

Thank you,

You would have to desolder I2C pull-up resistors on SDA/SCL. SDA1/SCL1 have no pull-ups.

If you need more I/O pins than you get on a DUE, and still use a DUE, there may be a workaround:

The DUE core is 100% arduino DUE compatible and all 144 pins are broken out:

The Taijuino DUE is also 100% arduino DUE compatible with much more pins ( Ethernet Mac pins):
(Note: You would have to solder headers provided with the board)

Or use a multiplex I/O pins if speed is not a major constraint.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.