Cassette Interface Assistance
mtapley at swri.edu
Tue Feb 28 11:12:14 CST 2017
On Feb 28, 2017, at 9:55 AM, Jim Brain via cctalk <cctalk at classiccmp.org> wrote:
> Analog, which is my nemesis, curses me again.
> I have a cute idea for a cassette port project for the Tandy line of computers (the ones with the cassette port). I have a Coco 3 on the bench, so I scoped the output line while doing 'csave "jim"'. The signal looks to be just under 1V PtP (0-1V on the scope), and rests at about .3V when not sending data.
> I have tried 6 different ways to boost the signal to 5V digital, to no avail, and so I ask humbly if someone with analog knowledge might be able to assist.
Warning, I am not an electrical engineer at all, only opinionated.
(analog out) -> A/D conversion -> tight software loop -> D/A conversion -> (analog in) ?
Use a dedicated (Beaglebone? Raspberry Pi?) system in the middle, and o-scope the analogs to make sure it’s clean enough.
The dedicated system should be able to 5V (or whatever you want) on the output, and I would think be fast enough to generate a reasonable sine-wave coming out if it only has to be audio frequencies.
Once you have it working that way (and the software loop should allow you to tune it at will), you could build a simple dedicated circuit to multiply the same way the software did.
This is killing a mosquito with a sledgehammer, I know. With any luck, one of the regulars who *is* an EE will chime in before you read this with the correct answer, in which case disregard.
> I first tried to boost the signal with a transistor (with variations using a N channel FET as well). Arguably, that was foolhardy, and it did not work.
Can a plain transistor do both + - ways on voltage?
> My second attempt was based on this link that was shared with me:
> The output from the Coco3 does not appear to be "loud" enough to work with this circuit.
Even if it did, this looks like it implies all square waves. I think CoCo is designed to work with modulated sine-waves, and there could be some frequency components of the square waves (3x frequency, etc) that are causing problems somewhere.
I don’t know that an AVR can run fast enough to do the sine-waves. I would guess you need to sample and digitize at least 10 times faster than the carrier (so maybe 100kHz?) and same for the output.
> So, I finally decided a comparator solution would be required.
Still square-wave? I could be on the wrong track here completely, but I’m thinking you want sinewaves.
> First, I tried a design using a 741 op-amp, which failed miserably, but probably would have worked, but I tried to merge the design from the Coco1, and replace the LM339 in the Coco 1 design with the 741, and I feel I did not merge the designs well :-)
> I then tried using the comparator in an Atmel AVR, and had minimal success. By biasing one input via a variable resistor to around .8V, I was able to get a digital stream, but it did not look like the data stream of the cassette format.
> I then pried an LM339 out of my Coco1 and replicated the circuit int the Coco 1, as noted in the tech manual:
> Color Computer Technical Reference Manual (Tandy).pdf <http://www.colorcomputerarchive.com/coco/Documents/Manuals/Hardware/Color%20Computer%20Technical%20Reference%20Manual%20%28Tandy%29.pdf>
> I was shocked that I had no success with that design at all. I assumed (wrongly, it appears) that the Coco cassette input circuit would read the output of it's output circuit. Beyond the possibility that my components are defective or I wired it up wrongly, I can only theorize that Tandy assumed that all tape recorders would AGC the output and then feed a 2V PtP signal back to the Coco (the Coco 1 circuit looks to bias the comparator at 1.05V (not sure about the feedback resistor's impact))
> I can fiddle around with the AVR solution, which might work if I can smooth out the spikes and bias the comparator right, but it just bothers me that the Coco 1 circuit does not work, as I assumed I would at least have success by copying a working design.
> Jim Brain
> brain at jbrain.com
More information about the cctalk