I'm attempting to build a cassette interface for a simple z80 SBC based on a schematic I found online. The z80 is built and working properly, and the cassette interface is built but not quite working properly. Because the creators of these designs are busy, I figured I'd jump into an online community to see if I could get any hints on what to try next in my quest to add simple mass storage to my SBC.
Before I start in, I should note that I'm not entirely "new" to electronics, but I am very inexperienced. I am a ham radio operator, an avid unix user, and a lover of computers and technology; but I've never really gotten into electronics until recently. Electronics as a hobby started, for me, with the idea of building a z80 computer. I love many things that are represented in such an activity. Take whatever I say with a grain of salt; I'm still learning.
The circuit is simple enough, and the author has described it's functionality in their post linked above. It takes serial data, at TTL levels, and converts it into sound. Then it takes that sound- or a recording of that sound- and converts it back into serial data at TTL levels. My build of that circuit does turn serial data into sound (via a USB->TTL cable that I use for other projects,) but when taking those same sounds in, produces no output (kind of; read on.)
I own a simple, cheap oscilloscope of sorts, the DS0138. I've used (learning as I went) to look at all of the parts of this build, as it is attempting to function. I used it to dial in the POTs in this design, so that the Schmitt trigger would operate as intended. I checked the triggers on the 555 timers, to make sure that they were working.
What I found- and again, I don't really know exactly what it means- was that the 555 timer in the "audio in" side was constantly triggered (active low) on pin 2, producing constant high output on pin 3. This is intended, as the rx line of the TTL serial side is meant to be held high when idling. But nothing I could do would bring it low. So, I followed the signal with the scope, out of pin 7 on the LM358. That seemed to be producing a square wave, which dropped low with input. Then when it passed through the 100k resistor, the wave seemed to be (at least with my equipment and knowledge of how to use it) erased.
(To test things further, I took a 19.2khz clock generator circuit that I made, the one that gives me 300 baud on my z80 SBC, and looked at that square wave on the scope. Then I added resistors to shrink that wave. I can only assume that this was intended in the circuit above, though I don't understand the circuit quite enough to know why.)
Here is where things got a little more hopeful and interesting for me. When I built this design, I didn't have a 100k resistor. So, I combined 3 in series: a 75k resistor, a 22k resistor, and a 10k POT, in that order, with the POT closest to pin 7 of the LM358. With the scope, I looked at the signal as it went through those three resistors. Then, when I placed the probe between the 75k resistor and the 22k resistor and pressed some keys on the keyboard, I began to get some output.
(With further testing, I noted that the output is accurate only with the o,u,m,w, and k keys. At least, mostly with those. It's not 100% accurate- meaning specifically that they don't come through with each keypress, but an "o" always comes through as an "o" for example. I suspect that the fact that these particular letters work has to do with the waveforms they produce, but I don't really know.)
After some reading, I tested two things: first, I adjusted the POT in that series, and measured between ~95k and 104k. Those adjustments had no effect on the circuit; it still would only work with the probe in that particular spot. Second, I tried placing some very small capacitors between that spot and ground. This yielded some sort of characters coming though sometimes, but not reliably, and not the right characters.
Unfortunately, that is as far as I've gotten in my troubleshooting efforts. At this point, I don't know what to test or try next, based on the information I've found. I'm hopeful that people here might have some clues as to what I could look at to move forward. Many thanks in advance for any tips!
Before I start in, I should note that I'm not entirely "new" to electronics, but I am very inexperienced. I am a ham radio operator, an avid unix user, and a lover of computers and technology; but I've never really gotten into electronics until recently. Electronics as a hobby started, for me, with the idea of building a z80 computer. I love many things that are represented in such an activity. Take whatever I say with a grain of salt; I'm still learning.
The circuit is simple enough, and the author has described it's functionality in their post linked above. It takes serial data, at TTL levels, and converts it into sound. Then it takes that sound- or a recording of that sound- and converts it back into serial data at TTL levels. My build of that circuit does turn serial data into sound (via a USB->TTL cable that I use for other projects,) but when taking those same sounds in, produces no output (kind of; read on.)
I own a simple, cheap oscilloscope of sorts, the DS0138. I've used (learning as I went) to look at all of the parts of this build, as it is attempting to function. I used it to dial in the POTs in this design, so that the Schmitt trigger would operate as intended. I checked the triggers on the 555 timers, to make sure that they were working.
What I found- and again, I don't really know exactly what it means- was that the 555 timer in the "audio in" side was constantly triggered (active low) on pin 2, producing constant high output on pin 3. This is intended, as the rx line of the TTL serial side is meant to be held high when idling. But nothing I could do would bring it low. So, I followed the signal with the scope, out of pin 7 on the LM358. That seemed to be producing a square wave, which dropped low with input. Then when it passed through the 100k resistor, the wave seemed to be (at least with my equipment and knowledge of how to use it) erased.
(To test things further, I took a 19.2khz clock generator circuit that I made, the one that gives me 300 baud on my z80 SBC, and looked at that square wave on the scope. Then I added resistors to shrink that wave. I can only assume that this was intended in the circuit above, though I don't understand the circuit quite enough to know why.)
Here is where things got a little more hopeful and interesting for me. When I built this design, I didn't have a 100k resistor. So, I combined 3 in series: a 75k resistor, a 22k resistor, and a 10k POT, in that order, with the POT closest to pin 7 of the LM358. With the scope, I looked at the signal as it went through those three resistors. Then, when I placed the probe between the 75k resistor and the 22k resistor and pressed some keys on the keyboard, I began to get some output.
(With further testing, I noted that the output is accurate only with the o,u,m,w, and k keys. At least, mostly with those. It's not 100% accurate- meaning specifically that they don't come through with each keypress, but an "o" always comes through as an "o" for example. I suspect that the fact that these particular letters work has to do with the waveforms they produce, but I don't really know.)
After some reading, I tested two things: first, I adjusted the POT in that series, and measured between ~95k and 104k. Those adjustments had no effect on the circuit; it still would only work with the probe in that particular spot. Second, I tried placing some very small capacitors between that spot and ground. This yielded some sort of characters coming though sometimes, but not reliably, and not the right characters.
Unfortunately, that is as far as I've gotten in my troubleshooting efforts. At this point, I don't know what to test or try next, based on the information I've found. I'm hopeful that people here might have some clues as to what I could look at to move forward. Many thanks in advance for any tips!