Up until now my clock circuit has been living on a lonely breadboard, floating off the main PCB like The Isle of Wight to the UK. In a fit of late-night, rum-fuelled board design, I decided to rectify this and get OSHpark to make me a new PCB.
I was interested to know how fast my computer really could run, but with the option to slow things down (to help with debugging, or to reserve the right to add a slower-performing peripheral at a later date).
To this end, I put together a circuit that uses an oscillator to feed a binary counter IC. That way I can use jumpers on the binary outputs to select which clock speed I’d like to feed into the CPU.
I’d also intended to add a reset circuit in at this point, so that when powering up my computer I wouldn’t need to press the “reset” button. I was all set to clone the 555 circuit as used in the BBC Micro, until I discovered the DS1813.
This component (in a TO-92 package, like a transistor) is made by Maxim for just my sort of situation: it holds a reset line low until it decides the power supply has been valid for about one-tenth of a second.
Half an hour of drunken board design gets me this:
And two weeks of manufacture and postage time gets me this:
(The dotted line across the oscillator is because oscillators in my collection seem to come in two different package sizes.)
And lastly: twenty minutes with a soldering iron gets me this:
Eagle-eyed readers will notice that I’ve put four pads in for the DS1813. That’s because at the design stage, I had conflicting reports on the pinout for it. So as OSHpark charge by the square inch, it didn’t cost me any extra to add an extra pad in, just in case. But obviously now I can confirm that the rightmost pad is unnecessary (if anyone is planning on making one of these themselves).
Other eagle-eyes readers will also note that I haven’t added the reset push button. That’s because I got the spacing wrong when designing the board. Here’s a tip, people: PCB design tends to be more successful when you’re sober.
So … how fast will my computer run? Actually: it seems to run fine at 4MHz, bypassing the binary counter entirely. That’s twice the speed of the BBC Micro!
I could potentially replace the oscillator with something faster – but I know that the EEPROMs I’m using are only spec’d to operate at 5MHz, so I don’t think it’s worth the effort at the moment. One day I’ll do performance tests on each of the boards, and see how fast I could reasonably expect it to go.