Over the last year or so I’ve been trying to teach myself digital electronics (analogue is a little beyond me at this stage) and so I’ve been trying my hand at designing basic digital circuits.
As I’ve not only designed the circuit and prototyped it, but designed the board layout as well with my latest project (a hardware bus monitor), I thought I’d share the results (plus, I’ve bored everyone at work to death with this so need fresh victims ).
The board itself is designed to capture the contents of address and data buses of 8 bit computers (hobbyist home brew systems) and display the data via serial interface (or more commonly a Serial to USB cable).
It also outputs a user configurable clock signal at between 1 and 5 Hz (for diagnostics) and also has a mode where a push button will generate a clock signal instead.
Commands are issued via command at the moment, but I’m going to implement an Visual Studios app at some point.
Just got to complete the CLI firmware first - all commands work, but the main SHOW command needs much more done.
I’ll post the photos of the PCB as it came back to me from the fab below and then ones where I’ve added the components in. I did have a slight design glitch and needed to add a mod link.
So… Still awake? In that case here’s the good stuff:
The top side of the PCB without components
The underside of the PCB without components
The top side of the PCB with components
The underside of the PCB with components
RS232 connected and also the AVR programming header
And finally the PuTTY console
Neat soldering, very nice little project.
You might want to put some feet underneath to prevent shorting.
Show us a photo of your home brew system
Feet already in place
As for home brew: I have my original prototype created a while ago (I knew less at the time by miles): a 65C02 CPU, 32KB RAM, 64KB (32 mapped) EEPROM and a VIA for I/O. Since I took these photos I’ve added more to the board (RS232 mainly):
My newest creation is another 65C02 running with 128KB split into 4 banks, 64KB (24KB mapped) EEPROM, 2x VIAs for I/O and an ACIA for RS232. It’s no where near complete as I’m still working on the RAM mapping for the 128KB.
The biggest change from the one above (apart from the memory paging) is that the memory decoding is done by a couple of GALs.
Once this one is finished I’m going to try and have it fabricated as I’ve done with the bus monitor.
Here’s a couple of pics of the prototype with the my LCD Busmonitor prototype attached and manual clocker circuit:
That’s some really hardcore wire wrapping! I do hope you kept circuit diagram of your connections.
It’s all really well done. I had done something similar to this at uni and you’ve done it all tidier and nicer than my ones. What’s next on your list? VGA display? Digital signal processing?
So is it just because you wanted to completely build your own? If I was going to do an electronics project of some kind I would just use Arduino
A large part of it was exactly that: wanting to make it myself and I’ve learned a lot doing it.#
However, another part is that while I have no objection to using an arduino, buying an AVR is much cheaper and the programming software is free (Atmel Studio or WinAVR); You just need a programmer such as a USB ISP programmer (very cheap) or AVR Dragon (affordable). Also, you’re not dependant of a boot loader where you are with an arduino.
None of your pictures are loading, Mike. Would like to be able to see!
Yeah the URL of the forum changed when it went from test to open. I’ll re-upload shortly.
(edit) Ok, done. Enjoy!
My little project, the Scott’s CPU is an academic 8-bit cpu we are using as a base, will need some adapting to get it to work (This book doesn’t believe resistors exist / none are shown for example) however attempting to breadboard and get it to work, we estimate we can get it working on 0.5Hz, and all out of basic components.
We will be creating the components seperatly (E.G. ALU, Control unit, RAM, registers, clock) and connecting them together, plus making 256 bits of RAM allowing 32 CPU instructions.
Quite a challenge xD
Good stuff. Creating a breadband CPU is quite a challenge!