[simpits-tech] [sim-hardware] PHCC 16x 7segment board finished (fwd)

Gene Buckle geneb at deltasoft.com
Mon May 17 08:41:32 PDT 2004



---------- Forwarded message ----------
Date: Mon, 17 May 2004 00:02:09 +0200
From: Manuel Bessler <manuel at varxec.de>
Reply-To: Discussions about homebuilt external hardware hooked up to your
    flight simulator <sim-hardware at cockpit.homeunix.net>
To: sim-hardware list <sim-hardware at cockpit.homeunix.net>
Subject: [sim-hardware] PHCC 16x 7segment board finished

Hi all,

My multiplexed 16x 7segment controller board for PHCC is finished.
Board was soldered the weekend a week ago, PIC assembler code was written
last week and tested/debugged Fri/Sat.

This design is based on a PIC16F630, a 14pin PIC (all pins used in this
circuit :).
The PIC drives two cascaded 8bit serial-in/parallel-out shift registers
(74x164) whose parallel output pins control two ULN2803 darlington
arrays.

The advantage of this circuit over my MOS4067 based designs is that no
more intensity problems (the more segments of a display were lit, the
less bright they were. That had to do with the relatively high internal
resitance of the 4076)

I also eliminated the problem with ghosting (the normally unlit segments
of a display could be dimly lit if its neighbor display had that segment
on.) This was fixed by turning the segments off for a short time while
switching to the next display. Due to the shift register nature of this
new design, I had to shift 17 times instead of 1 for each "display to
the next switch".

The working principle is pretty easy:
The PIC drives the shift registers via 2 output pins: clk and data.
The data is fed in the serial data input of the first 74x164, the clk
of both 164's are connected together, thus forming a 16bit shift
register out of two 8bit ones.

The PIC cycles one bit within the shift registers. (ie. there's max one
of the 16 parallel outputs high at any time.) A high on the parallel
outputs activates a respective darlington transistor of the 2803's
which pulls the output to ground level.

Each of common cathodes of the 16x 7segment displays are connected
to one of those darlington transistors.

Eight pins of the PIC are connected to the anode side of the 7(+1) segments.
This allows the control of each individual segment. It can not only
display 0-9, but also any other combination of segments.

The PIC activates the segments via these eight pins and then turns on
the appropriate display for a short amount of time, then goes on to the next
display doing the same thing all over again... and this for all 16
displays of course.

Communications with the PHCC motherboard is established through a
syncronous two wire protocol I named "AP2PP" (Addressable Pic-2-Pic
Protocol). This protocol is unidirectional, bus oriented (each node
listens on the bus, and reacts upon received data only if the address
matches its own address). Sort of like I2C but not open collector, only
one direction and speed is controlled by the master only.


For more info on the PIC HomeCockpit Controller (PHCC) see
http://cockpit.varxec.de/PHCC.html
(theres the board layout/schematic as pictures, eagle files or
postscript, as well as the PIC assemly language firmware code available
upon request. License for both: GPL)


Here are some pics of the working setup:
(Note: the displays show garbage because the translation table for the
segments is still from the 4076 based display controller. Additionally,
the order of the displays on the ribbon cable is different.
The translation from numbers/characters is done on the host side, so the
microcontrollers don't have to do that and you can use a different table
for each display or set of displays)
http://cockpit.homeunix.net/misc/img_0878.jpg
(the upper right quarter of the PCB on the right has the 16x 7segment
controller on it, along with the servo board and the board with 32-channels
non-multiplexed Digital rated at 100mA)

http://cockpit.homeunix.net/misc/img_0881.jpg
(closeup of the circuit, the yellow 'chip' is a 8xresistor array)

Next step: 100x160mm PCB panelized with four of these circuits for
stephens simulator.
I also want to do a variation of the above circuit, but for common
anode 7segment displays by using the 2803's complementary 'brother', the
UDN2981.... well, looking at the datasheet, this variation is very
simple, just one pin on both darlington arrays needs switching GND to
+5V :-)


Enjoy

Manuel
-- 
Opensource/Free Software: No Gates, No Windows
_______________________________________________
Sim-hardware mailing list
Sim-hardware at cockpit.homeunix.net
http://m18s17.vlinux.de/cgi-bin/mailman/listinfo/sim-hardware



More information about the Simpits-tech mailing list