On Mon, Jul 23, 2012 at 1:11 AM, Andrew Quinn <jaquinn2001 at gmail.com> wrote:
The insight came when I looked at which keys on the
number pad worked
and which didn't. I came up with the following table
Pressed = Displayed
1 = 1
2 = 0
3 = 1
4 = 4
5 = 5
6 = 4
7 = 5
0 = 0
If you convert this to binary it becomes pretty obvious where the
problem lies. The invalid display is for the items marked with * and
all have the second bit set. If you mask out the second bit you get
the displayed value.
0 = 0000
1 = 0001
2 = 0010 *
3 = 0011 *
4 = 0100
5 = 0101
6 = 0110 *
7 = 0111 *
The front panel uses a 7447 BCD to 7 Segment decoder to drive the LED
modules. If pin 1 (B) on this is not being set when required then the
behaviour will be what I am seeing..... it isn't that the keypad is
getting it wrong... but the display is showing the wrong value due to
a missing bit.
Need to do a bit more digging here but given that this line is pulled
to +5V via a resistor on the front panel board I am hoping that the
problem is either
a connection problem on the front panel board with the line not being
pulled up or the 7447 needs to be replaced. If there was a break in
the ribbon table to the controller board then the bit would always be
set and a different set of incorrect values would be displayed.
Hopefully there isn't a fault on the controller board that is pulling
the pin to ground.
It's likely there's a driver chip on the controller board with an open
collector output (something like a 7438). That output could very well
be shorted to ground. That would in fact be my first suspect for this
error.
Camiel.