To explore CP/M with PCMCIA card, I built Tom Szolyga's existing project.
Corrected serial connectors to match FTDI serial-to-USB cable pinout.
Fixed a design flaw in the USB cable connections.
Now working with 3.684 MHz oscillator and 57600 baud communications.
Two 3.6864 MHz oscillators arrive. Now need sockets.
Remove U6, fit socket and oscillator module Modify board for 32K EEPROM (cut tracks and rewire) Program EEPROM Fit socket and SIO-2 No sign-on message. Dry joint on U9 VCC fixed.
This board is similar but not identical to the Searle or LiNC designs, so firmware will not run without modification. I used diff to compare the Searle and LiNC source code, and was pleased to see the differences were small and understandable. This bodes well for my own alterations.
Contacted PCB vendor and got link to some firmware. It has pre-assembled hex files for the monitor, but it is not clear how to create CP/M boot ROMs. Looks like one starts with the monitor, which then allows it to load CP/M from the CF card.
Ready-made monitor firmware loaded, fails to run. Found and fixed dry joint at A8 of CPU. Still not working. My board uses DTR instead of RTS as per latest circuit diagram (version C and later). Modified to use RTS.
Contacted vendor, who showed me pics of his non-FTDI interface board connections. Saw that the Z80 board designer had got CTS and RTS crossed over! Corrected wiring to match FTDI cable pinout, now works at 57600 baud with the 3.684 MHz oscillator. Glad this was someone else's silly mistake, not mine.
Wiring correct for both channels now, but not getting traffic on the second channel. Changed SIO, second channel still silent. Not very reliable starting up. Keeps working when started.
Noticeable electrical tingle is felt when holding 5V power plug and the USB cable. Most people think transformers provide full isolation. For DC, yes, but there is a small but finite capacitance between the coils. Enough to produce that high-voltage low-current tingle. And enough to damage silicon chips. You can easily verify this with a voltmeter. I have measured up to 80 volts.
Ideally the two grounds need to connect before any other signals, and well-designed connectors do this. That is what the shield is for. RS232 cable drivers also include protection against static discharges, which as a side effect protects against the brief power-supply ground mismatch.
The 6-way connectors used by FTDI cables have no such protection. If you are lucky, the ground pin mates first but if not then the ground mismatch voltage goes straight through the unprotected UART chip pins and the FTDI chip's logic-level serial interface pins. Do not plug the 6-pin end of the FTDI cable into a mains-powered device!
The right way is to mate the board and the cable first, ensuring their will never be a ground mismatch between them. Then plug in the USB end of the cable into the PC, and the power supply into the board. Preferably in that order if you are powering it from a mains PSU. You don't want the powered USB cable trying to drive the non-powered UART pins.
Other options are from battery or the USB cable itself. I measured the current flowing from the cable through link P4.
180 mA with NMOS CPU and NMOS SIO 120 mA with NMOS CPU and CMOS SIO 87 mA with CMOS CPU and NMOS SIO 28 mA with CMOS CPU and CMOS SIO
The CMOS CPU saves more power then a CMOS SIO, and gets current consumption under the 100 mA USB limit.
If a CMOS SIO is used, then it is even more important to avoid the mismatched ground problem, as CMOS is much more vulnerable to damage than NMOS.
The power LED takes a significant amount of current in a CMOS populated board. It might be useful to use very small low-power LEDs, or disable them completely unless...