I'm re-implementing a 1980's Microbee computer on an FPGA (see here) and trying to figure out how to do the cassette port. Here's the schematics for the original Microbee cassette interface:
I also found this description of it in a technical manual:
The cassette data output consists merely of an RC network which accepts a signal from DB1, pin 28 of the PIO. The signal is attenuated and then decoupled prior to sending it to the cassette recorder MIC input. This signal appears on pin 3 of the 5 pin DIN socket.
The cassette data input circuit is slightly more complicated. The input from pin 5 of the DIN socket passes first to an attentuator -decoupler. Following this is a CA3140 op-amp, to allow a wide range of input levels to be squared up before the signal is passed to pin 27 of the PIO, DBO. The two diodes across the inverting and non-inverting inputs to the op-amp clip any input signals greater than the diodes' forward voltage in either direction. The 47pF capacitor is required by the CMOS op-amp for precompensation.
- What does "de-coupled" in the description mean?
- Would the same circuit work if connected to two of the I/O pins on a Xilinx Spartan 6 FPGA (through the PMod connector on a Nexys3) and if not, could it be adapted to make it work?
First attempt, based on comments in answers, but the output resistor shouldn't be in series.
I'm leaving this here for context and instructional reasons, please see the next schematic
- Is the polarity of the comparator correct?
- For the MCP6546, does Vss go to ground and Vdd to 3.3V?
- I'm not sure what to make of the "dotted out" resistor across the tape inputs in the original circuit.
Incorporating feedback regarding the output of the comparator being open-drain:
What alternatives could I use for the MCP6546, which I've not been able to find in retail stores here in Australia. I can get LM311 or LM393 which, from what I can tell are similar. Will these work just as well?