[Coco] CoCo3 PIA?

Mark Marlette mark at cloud9tech.com
Fri Jan 5 09:06:16 EST 2007


Steve,

You bring up a very good point on multiple keys and shorts.

The link you provided has U8 having two port A's. :) I never noticed  
that before in the CC1 schematic.

Point noted and my design does use open drain drivers. The CPLD that  
I'm using has a 3.3v core, 5v tolerant I/O. There is a special section  
in the data sheet when interfacing to 5v CMOS and getting the proper  
levels to be driven.

Currently my design will be populated with a 4.7k pullup resistor on  
the input port of the PIA. If it is needed then I will populate the  
assembly with the pullup network component. If it works with out, then  
good but at least the PWB has a spot for the PU if needed.

Thanks for the response, good point.

Mark


HI Mark,

Let me take a shot at this.  (I'm not should if you already gotten  
your answer.)  But please don't shoot me if I get it wrong, it been a  
long since I work on this coco stuff...

There is a very good reason why they need to use the unique 6822 (open  
collector output) version of 6821 PIA in the coco 3 (and maybe the  
coco 2) and it's to do with short circuits.

First let's review how the keyboard works: Take from the CoCo 1  
service manual...

The components which make up the Keyboard Interface are shown on sheet  
3 of the schematic, upper left corner. The PIA chip (U8) is the only  
digital circuit used. The PIA chip is a programmable interface device  
which functions as both an input and an output register. The eight  
keyboard columns are attached to the B side of the PIA. These eight  
lines are programmed to be outputs. The seven keyboard rows are  
attached to the A side of the PIA. These seven PIA lines are  
programmed to be inputs.

To read the keyboard, only one column is enabled by writing a zero in  
the bit that corresponds to that column and by writing ones in all the  
other bits. If a key has been pressed in that column, one of the input  
lines will be a zero and the key location will correspond to the bit  
that is low. By scanning each column in the keyboard, all of the keys  
may be checked.

See this link for a schematic of the keyboard matrix:  
http://homepage.ntlworld.com/kryten_droid/coco/coco_tm_68.png

When a 6821 PIA creates an output on a port, it do so by lowering the  
voltage to under 0.2 for logic zero state or raising it over 2.0 (or  
so) volts for a logic one state.  This is standard for most TTL logic.

Let us say that the keyboard reading program is outputting a logic  
zero on PB0 pin and PB1-7 pins at logic one levels.  This would create  
a logic zero on PA6 when the [enter] key was pressed.  This works  
find, so far.

What happens if both the [enter] and the [clear] are pressed at the  
same time?  A short circuit!

You see, the logic one state of 2.0+ volts from PB1 is shorted through  
the [clear] and the [enter] keys to the 0.2 volts of PB0.  Not very  
good for this PIA and why they sometimes needed to be replaced after  
book or something else left on the keyboard for extended period of time.

On the other hand, the 6822 open collector outputs only drives the pin  
to 0.2 volts for a logic zero and does nothing for a logic one state.   
That's right, 6822 does not drive the output line 2.0 volts for a  
logic one state so there is no damage if more than one output pins are  
shorted together.

The only draw back is that "pull-up" resisters are used on each of the  
8 output lines to create a default logic one state.  It should be  
noted that the "pull-up" resisters can handle the short circuit create  
by the [enter] and the [clear] being pressed at the same time.

Don't get started on how the joystick buttons can play havoc with the PIA too.

I hope this helps,

Steve Bjork

At 11:58 AM 1/3/2007 -0600, you wrote:


Does someone know if IC5, LSC part number is a TTL or CMOS device?
I'm working on on interface device and I need to make sure that I  
don't have a I/O conflict.
Since it is on the keyboard port it appears that a zero represents a  
key press. So the A side must be inputs and the B side are the drives  
of IC5.

With that said then if no key is pressed(N.O. contact configuration)  
the A side input of the PIA must be pulled high, thus indicating no key.
This is a weird part number and I'm not exactly sure what is different  
in this part than a 6821.

Someone know more on this device????

TIA,
Mark
Coco at maltedmedia.com



-- 
Coco mailing list
Coco at maltedmedia.com
http://five.pairlist.net/mailman/listinfo/coco



No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.432 / Virus Database: 268.16.5/616 - Release Date:  
1/4/2007 1:34 PM




More information about the Coco mailing list