We have recently discovered problems reading a keypad (silicone keypad / carbon ink pads) connected directly to a port using internall pullups only. Usually I connect 4k7 to 10k external pullups but this time lack of space made me not to use them.
However, it seems that some of the prototypes have now problems with reading correct state of the inputs. Typically, when key in column 3 is pressed, everything is as expected. After releasing the key, all inputs read high as expected as well. But when column 2 is pressed afterwards, the input read show both columns 2 & 3 active!
I'm pretty sure that the pullups are enabled, and PUD bit in SFIOR is cleared as well. After all, it works on some prototypes with identical software flawlessly. Maybe some inputs are damaged, but they work when resistors are addes externally.
Anyone ever experienced a similar failure?
Do you use internall pullups in a commercial device?