ioncannon wrote:
I have pretty much finished transferring my homebrew computer from bread to protoboard, however I seem to be having a problem with the serial circuit. It's a 6551 chip, with a MAX232 to convert voltages. It seems the circuit works when I press down on the crystal, while resetting. Thought it could be a wiring problem so I resoldered the crystal wires. Now it doesn't work at all! I used garth's 22pf cap idea at pin 6 to ground idea to clean the signal btw (which worked before). Voltages at both ends seem good, so any ideas what I causing it?
I know that Garth's circuit does work (having used that same circuit way in the past) and will produce a clean signal. You didn't precisely define what you mean by "Now it doesn't work at all!" However, assuming the circuit is completely DOA, here's what I'd look at.
First determine if the crystal is oscillating. If you have a 'scope you should be able to detect a clean and symmetric waveform at the crystal. A logic probe can also help if a 'scope isn't handy. If you see nothing, suspect the crystal. Clock crystals are high volume commodity parts and a 2-3 percent failure rate per lot is not unheard of. Also, you may need to bond the crystal's case to ground to get a stable oscillation.
If the crystal is oscillating and the signal is present at pins 6 and 7 (PDIP package) of the 6551, verify that you have a Ø2 clock present at pin 27 of the 6551. Also, tie DCD (pin 16) low for testing (and leave low if you aren't going to connect a modem).
The 6551's chip selects should be active as soon as a valid address is placed on A0-A15 by the MPU. When Ø2 goes high D0-D7 will become valid and you should be able to read or write the chip. Interfacing the 6551 with the 65C02 is very straightforward (a little less so with the 65C816).