<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Wed, 23 Oct 2002 20:10:01 GMT
From   : pete@... (Pete Turnbull)
Subject: Re: BBC keyboard playing up

> In article <38cd6894b%mjfoot@...>,
>    Michael Foot <mjfoot@...> wrote:

> > Has anyone encounted this type of behavour before? What ICs control the
> > signals to/from the keyboard?
>
> The system via (you could try swapping this with the less useful user
via)
> and the shift register on the keyboard itself,talking to eachother over
the
> not-so-reliable grey molex cable,

What shift register?  There's no shift register involved anywhere in the
keyboard circuit.

It works like this:

A 74LS161 (or 74163, they're interchangable for this purpose) 4-bit
pre-loadable counter is clocked at 1MHz, and its outputs drive a 7445 (or
74145, again they're interchangable for this purpose) one-of-ten decoder.
 For each state "0" to "9" generated by the counter, one of the
open-collector outputs of the 7445 is pulled low, and the corresponding
keyboard column goes low.  If a key in that column is pressed at the time,
one of the row inputs of a 74LS30 is also pulled low, which signals to the
system VIA on its CA2 handshake pin, and generates an interrupt.

When the MOS services the interrupt, it uses PA0-PA3 to drive the 74LS161
like a latch, and tests each column in turn.  For each column, it also
selects each row in turn.  Each row is connected to one input of a 72LS251
multiplexer, and by using PA4-PA6 to address the MUX, the MUX output, which
is conected to PA7, can be sampled.  When the MUX output is low, you've
found the row and column of the key that was pressed to generate the
interrupt.

The most likely fault is a cracked track near the counter or MUX; I've seen
similar situations where a crack right beside an IC becomes heat sensitive
(when it warms up, the metal expands and -- counterintuitively -- widens
the crack.  Second most likely is the chip itself.

If all the keys in one column are faulty, suspect the decoder (7445).  If
all the keys in several columns are bad, especially suspect the counter
(74LS161).  If some keys in a column are good but some are bad, but all the
keys in a row are bad, suspect the MUX (74LS251).

If it's just a mixture, suspect the VIA (which is usually socketed, so easy
to swap with the user VIA).

-- 
Pete                                           Peter Turnbull
                                               Network Manager
                                               University of York
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>