[Coco] CoCo3 PIA?

Steve Bjork 6809er at bjork-huffman.net
Fri Jan 5 10:52:18 EST 2007


Hi Mark,

An open collector output state of the 6822 can be created with a the
addition of eight cheap switching diodes. Just put them in-line of the
PB0-7 outputs with the anode connected to the PIA and the cathode running
to the keyboard matrix. You will need pull-up resistors, but you said your
design already has them.

This will only let the PB0-7 lines create the "ground" voltage but not
create the higher voltage of the logic one state, so no short.

Steve Bjork

At 08:06 AM 1/5/2007 -0600, you wrote:


>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

>

>

>--

>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



--
No virus found in this outgoing 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