PCBs cost $5 per square inch to have manufactured, with a wait of up to two weeks before the finished board is returned to me for assembly. If every device has a custom board designed and built, the costs and delays will mount. On the other hand, each order gives me three identical boards for the one price.
I have already leveraged the input interface board I had designed for the console buttons and switches, using a second board from that batch to carry the signals from the punched card reader and will likely use my third board for another devices' inputs. I anticipated reordering the board to address other input signal needs from the many peripherals I am interfacing.
That gave me the idea to design a generalized output board, that I can vary which components are installed and use some jumper pins to configure them for various needs. As well, I will tweak the input board to provide similar flexibility before ordering the next 3 inputs.
My output board will operate with 5V TTL outputs, the most common among the devices I will interface. Some devices just need the logical signal, some such as LED indicator lamps need a transistor to drive higher current at 5V, and some need to drive a relay to offer maximum flexibility of voltage and current. I will provide header pins in the board at appropriate points on the logic on the board, which is designed to have the output drive a transistor which drives a relay, but by omitting parts and connecting to the 'earlier' pins it can be used for any of the three methods - small TTL load output, amplified signal and relay driven by amplifier.
I will set up board to host an MCP23017 chip, capable of driving up to 16 output signals. There will be jumpers for the addressing of the chip, and a two wire input header allowing each board to be on its own two wire link or sharing a link with other such chips. I will need to do level shifting from the fpga signals to operate the MCP chip at 5V level.
Level shifting with I2C links is a bit more complex because these are tri-state lines - when the circuit is not actively driving a signal on the line, it lets if float to high impedance so that other circuits sharing the link (and the master logic on the fpga) can drive the lines high or low. Normally, your circuit outputs a control signal that you use to float the lines through a bus interface, but the I2C protocol implementation on the MCP23017 does not emit such a control signal. Many I2C devices do not.
I found a neat way to handle this in an application note from a semiconductor maker - use a MOSFET transistor for each tristate line, which will automatically handle the differing voltages on each 'side' of the bridge this transistor is creating. Lines float to their proper high voltage, are shifted to drive to the high level appropriate to each side, and are pulled down to zero on both sides when needed. It only uses a single transistor per line, diabolically clever.
|Generalizable output board top layer|
Today I picked up the card punch from the recycler facility, putting it into my rental car to drive back with me later this week. The car I rented is a VW Jetta, a small sized car but with a very large trunk capacity and a decent back seat area. Still, I underestimated the size and weight of the card punch from the pictures on ebay - it weighs over 180 pounds and my quick guess is that it is over 40" by 30" by 18" in size. The trunk would have fit the unit if only the opening was not 17" rather than the 18" minimum needed to slide it in.
|Card punch machine|
The unit is sitting across the back seat of the car, its front edge placed down on the seat cushion, its top facing the seat backs and the button feet pointing at the front seats of the car. I placed old cardboard box remnants on the seat cushions and seat backs to protect the interior, since this rental car was brand new, my trip miles being the first it was every driven. I then placed more U-haul cardboard box blanks on top and between it and the front seats. Moving the passenger seat back until it firmly contacted the protective cardboard, I have the unit pinned into position so it doesn't fall forward onto me during sudden braking. I wonder what the parking valet at the hotel thought of the huge shrink wrapped machine with cardboard pieces atop it, since it blocks the rear view mirror and is highly visible to the driver.
Inside it has a bottled gas cylinder (!) and some sort of lubricant bottle that appears opened in the picture. I see no signs of leaking fluids. The bottle is on its side in the current orientation of the machine, but if it is not very full the contents may not spill out - if there are any contents in the bottle at all.
|Gas cylinder inside|
|Lubricant bottle inside|
This unit will appear to be a 1442 card punch to the 1130. Since it seems like this might be a duplicator, judging from the pictures I had available, it may also be able to read the cards, making it a reader-punch, but at worst case it will be the punch-only model of the 1442.