Electrical – Pulldown to prevent floating input pins for multiplexer


I'm designing a multiplexer shield for Arduino, by which it will (hopefully be possible to read up to 64 analog inputs such as potentiometers etc.. Schematics of rev.0.1 can be found here.

I'm using a I/O expander to switch between the inputs of 4x 74HC4067's, all channeled to one of the Arduino's ADC pins. The guiding line for the design is that it will be modular – i.e. the user can connect blocks of 8 pots, sliders, or other resistive inputs to IDC headers. The board should also be easily adapted by advanced users for use with different number of connections in blocks.

When connecting a single 8-input block of resistors to half of a 4067's ports, the remaining ports remain floating. While the user is not supposed to read the inputs of these latter pins, I would prefer to have them tied down to ground.

Edit: I thought of adding a pulldown resistor to each of the 4067s' inputs, than use 50k pots on connected sub-modules. The Atmega328 datasheet says its ADC is optimized for 10k and lower, but a quick calculation gives 5V/51kOhm=0.1mA, so I think it shouldn't slow the ADC too much.


simulate this circuit – Schematic created using CircuitLab

Going through TI's app note I found the following equation:
Pullup resistor calc

I'm looking for a pulldown R value, so I exchanged V(t)=5, Vcc=0, and got (approximatley) R=1kOhm. (C_T=10pF,t=500ns).

So (finally) my questions are:

  1. Is this the right way to calculate the required R value?

  2. This value is quite high, which means it will affect the reading from my inputs. Is there a better way?

  3. I assume pulling the pins down may also help to keep the ICs from damage, is this true, and are there other benefits (or negatives) I'm missing?



Best Answer

If I understand your question correctly, there is no need to pull up or pull down analog multiplexer inputs. They are just fine floating. You may, however, with to add some protection against ESD or or other voltages outside the power supply range.

The limit to series resistance plus source resistance will be set by the ADC in the Arduino MCU and should be something like a few K, certainly no more than 10K for general purpose applications.

If you want to add resistors you are probably better adding one per input because then you won't get the voltage drop due to the series resistance of the multiplexer (but you'll still be loading the analog output of whatever it is connected to).