6502 Build with SPI & Audio: Progress Update
Updated: Feb 11, 2022
Last month, I transitioned the core of my 6502+VGA+PS2 build (based on Ben Eater's video series and kits) from breadboards to a PCB. My goal was to have a more stable platform for future learning and development, which included no loose wires, improved signal quality, improved power distribution, and some expansion capability. The move to a PCB-based 6502 has been absolutely terrific! I am running my 6502 at 5.0 MHz, and it runs great (outside of any poor assembly code I load on it).
In the PCB design, I included a total of five W65C22 Versatile Interface Adapters (VIA). I also included power distribution options on the right side, to easily connect power to breadboards.
I used this PCB platform as a way to work on new "upgrades," including a joystick, RS232 serial support, a USB mouse, Serial Peripheral Interface (SPI) communication support, and audio capability. These have all been nice learning projects for me. A couple of the breadboard additions seemed like candidates for PCB versions, as I would likely use them long-term. With this in mind, I designed an audio PCB and an SPI PCB. I now have these new PCBs installed alongside an additional 6502 PCB that I loaded. Additionally, I have designed a power distribution PCB; I plan to add a couple of these to the setup in the coming weeks.
Above, you can see where I am at currently with the new build. The 6502+VGA+PS2 is on the left. I have added an auto-reset circuit to the far left. To the right, I have the SPI and Sound cards. These new cards are working well. The wires (outside of the ribbon cables) are temporary and will be cleaned up or removed soon. This setup includes:
6502+VGA+PS2 with five VIAs.
2x6 channel sound card with EEPROM support and sound level bar graphs.
SPI card with external shift registers and three embedded Arduino Nanos (for future expansion).
Arduino Mega 2560 for USB mouse support.
Arduino Due for fast 6502 to PC bi-directional communication.
Arduino Mega 2560 for future expansion.
Soon to include improved power distribution.
Room for six BB830 breadboards fur future expansion projects (four upper and two lower).
Planned posts in the coming weeks
Walkthrough of the sound card design and setup. Along with the sound card, I have developed a Windows application that allows working with the programmable sound generators (PSG) on the sound card. The software also allows rudimentary MIDI keyboard capture and playback on the sound card. I will share the sound card schematic and PCB files with this upcoming post.
6502 to PC bi-directional communication through the SPI card. I am using SPI from a 6502 VIA to the Arduino Due, and the Due's native port for USB to connect to the PC (currently transferring between PC/Due at 256 Mbps). The 6502 is the SPI master and the Due is an SPI slave, with event-driven handling of received data at the Due. The Due also supports a pair of OLED displays, which is great for debugging. I will share the SPI card schematic and PCB files with this upcoming post.
Power distribution and how I've been working to improve it in my setup.
If you are interested in hearing about other aspects of my 6502 build or have suggestions to improve my build, drop me a note. Thanks!