Go Down

Topic: INPUT_PULLUP (Read 515 times) previous topic - next topic

earx

A project I made (originally for AVR based Arduino) uses INPUT_PULLUP mode on some of the digital pins to read out of tactile switch. On the UNO, this works fine. On the DUE, it's unstable somehow. When the switch is open and my hand comes close to the wire there's a square wave instead of a constant value.

I read that the DUE the pull-up resistors have higher impedance, but how can that cause this?


earx

reading this i gather that a bigger pull-up resistor might lower the registered voltage and hence it might not be seen as high anymore. it's logical.

https://learn.sparkfun.com/tutorials/pull-up-resistors/all

..but then it might be nice to consider using external pull-up resistors on the DUE..

dlloyd

On average, the input pullup on the DUE will be around 100K. An external pullup of around 10K should give decent strength to overcome external interference.

MarkT

The classic interference to a high impedance circuit is a potential divider between stray
capacitance and the circuit's impedance acting at mains frequency.

Typical stray impedances are a few pF, lets say 10pF.  At 50Hz that's about 300M ohm.

But the kinds of mains voltages knocking around can be quite high, perhaps even 100V
if you are near mains wiring - so a 15M ohm resistor in combination with the 10pF will
pick up about 5V.  Any floating CMOS input will have no trouble seeing such mains
pickup.

However 100k is too low a resistance to see problems like this from mains.

But there are other sources of interference of much higher frequency, such as PWM
controlled motors, LCD screens and so forth running 3 orders of magnitude faster
than mains frequencies - these are the sorts of things that can interfere effectively
with 100k signal line if it isn't suitable screened since capacitance has lower impedance
at higher frequencies.
[ I won't respond to messages, use the forum please ]

Go Up