Controller Board
The controller board was built by Steven Ginzburg for an EE/CS 53
project. It is a generic 68HC11-based system board. It
has sixteen expansion ports, on-board RAM and EEPROM, and serial I/O.
The (not quite accurate) schematic is available in pretty color
postscript format:
controller.ps.
Chip List
U1: 68HC11F1 - microcontroller
U4: 74F138 - port select decoder (8-15)
U5: 74F138 - port select decoder (0-7)
U6: 74LS244 - port address and LED buffer
U7: Am28F256A-90 - 32K x 8 bit EEPROM
U8: 74F125 - random tri-state buffers
U9: 74LS245 - data bus two-way buffer
U10: 74LS00 - NAND gates used as inverters
U11: W24257AK-15 - 32K x 8 bit SRAM
U12: MC145406P - RS232 driver/receiver
Issues
This board has problems. First of all, as you can see from the
schematic, the HC11 data bus D0, D1, D2, D3, etc. is wired to the
external data bus as D7, D0, D1, D2, etc. In other words, the data
bus is rotated down one bit. This presents no problem when dealing
with RAM or with an EEPROM that has been programmed on-board. It
does affect peripheral ports and presents a major pain when programming
EEPROMs externally.
Solutions: Before using BP or another device programmer to program a
pattern in the on-board EEPROM, run it through this program first:
rotate.c. As for the expansion ports,
as long as you stick to the pinout in my specs,
you'll be fine.
Modifications
The board is different than shown by the schematic. Vpp for the EEPROM
is now controlled by a jumper instead of on-board circuitry. The EEPROM
that we are using (the Am28F256A) is very cool in many respects, one of
which is that its Vpp pin can be +12V all the time and it will still
function normally as long as it is not written to. Therefore, it is okay
to keep the Vpp jumper on all the time, or it can be taken off for
extra protection.
On the schematic, the R/W line from the HC11 goes through several buffers
before driving anything. On the actual board, all this is bypassed and
the HC11's R/W line directly drives everything, including all of the
expansion ports. Nobody knows why this was done. In addition,
EXPANSION PORTS 8 THROUGH 15 DO NOT WORK because their R/W line is
not connected to anything. We once tried to hook it up and chips started
getting hot and random errors started occurring, so we disconnected it.
Nobody knows why this happened.
Maybe somebody someday will figure it out, but it won't be me.
Other Issues
The board tends to reset when a motor or relay or other inductive load
is switched nearby. After pretty much eliminating surges on the power line
as the culprit, it appears to have something to due with EMI, and
shielding would probably help. However, it should certainly not be as
susceptable as it is, which suggests there is some sort of flaw with the
board itself.