Hello everyone!
The time has finally come for me to show to you my latest single board computer: The Acolyte '816 Computer
This is a 4" x 4" four-layer board with a mix of surface mount and through-hole components. I used solder paste and a skillet for the QFP packages (the 65816, the 6522, and the XC9572XL CPLD). Those were the easy ones! The rest are mostly SOIC packages which I soldered by hand. The two 512KB RAM chips are SOJ and that was much harder than I thought! I made as many components through-hole as possible so that my 5 yo daughter was able to help solder them for me. She did all of the capacitors, the DIP socket, and some of the resistors. She let me finish up the connectors myself
The '816 runs at 12.5 MHz, half of the 25.175 MHz VGA clock speed. Thus the video is active on PHI2-low and the processor is active on PHI2-high, just like all of my previous Acolyte builds. The problem here was to capture the '816s bank addresses during PHI2-low, as well as letting the VIA be selected on the rising edge of PHI2. The solution was a bunch of '245 transceivers!
This SBC is capable of displaying 64 colors at 320x240 or mono at 640x240, at the same time side by side. The way this is done is by dedicating the upper two bits simply to black and white, while leaving the lower 6 bits for color. For example, 0xC0 produces white for text, while 0x3F produces white for color. The text and color both seem pretty crisp, even on a 'smart' TV with a VGA-to-HDMI adapter (though these pictures are blurry it seems). Using the CPLD, it is also capable of hardware vertical scrolling, allowing for better use of the 80-column text and perhaps in some types of video games.
It also is a "ROM-less" design. Right now I am storing 512 bytes of bootloader code on the PIC16F886, which spoon-feeds the '816 upon startup. After that, the '816 can take over, or the PIC can continue to spoon-feed data from the SD card. The PIC's databus is connected directly to the VIA, so after boot the '816 can still talk to the PIC at any moment.
Some of the peripherals I chose were the PS/2 Keyboard and Mouse, on separate ports now. It also includes a 3.5 mm audio jack for 1-voice square wave audio from the VIA's T1 timer, two ports for Sega Genesis controllers, and a 6-pin connector for an FTDI USB adapter (which came in REALLY handy when debugging the PIC!). This machine is meant to have two-player video games, but also things like text editors and paint programs. All of this is powered by a 5V USB wall-wart.
The github page with all of my (old) code and schematics is here:
https://github.com/stevenchadburrow/Acolyte816 BUT, that code is old now, and I have had to make a few bodge wires to fix some misconceptions I had when designing it. The current code is quite scattered, but I plan on sharing it soon enough. It's running well and seems stable when I leave it running for long periods of time, but there is still SO much left to do. Many hardware capabilities have not yet been fully implemented, and my bootloading process needs a ton of help.
I want to thank all of you for helping me get to this point, and beyond. Although this SBC is still a work in progress, I consider this my "masterpiece", but by the classical definition. That is, I present to y'all this work in hopes that you accept me as a peer, no longer simply a novice. I do not think I have yet obtained the wisdom and rank that many of you all hold, but I do feel that I have now "leveled up", in a way.
So, thank you. Because without y'all being here for me, I wouldn't have reached this point.
I'll be updating this topic as I have more developments to show!
Chad