Updated: May 23, 2022
In this running post, I will share the buildout of my sound card for my 65816 PC. Having the PCB in hand, I can say this will be the largest sound card I've ever had. It's a little crazy.
I'm going to build out and test one section of the sound card at a time. I plan to work through it in this order:
65816 "core" (65816, ROM, RAM, PLD, oscillator, CD4078, and 7414).
Dual-port RAM and VIA #2 with an LCD (for testing). At this point, I'll be close to what I had posted in Sound Card 2.0: Breadboard Build.
VIA #1 and #3, programmable sound generators (PSGs), and storage ROM.
Shift registers for SPI and SPI SD card reader.
First Fire Up
I populated the 65816 core, VIA #2, and the LCD. I updated my previous 65816 assembly test code to use VIA #2, port B, for the LCD. All good! As far as clock speed, 12.59 MHz runs great. 14.16 MHz fails. I do not have an oscillator between these two speeds to test. I think I will run the card at 12.00 MHz for the primary clock, as that's a convenient oscillator value.
Bonus: I finally have the bracket mounts and spacing dialed in.
* The lower oscillator is 12 MHz. I guess when I cut the background out of the image, it took out the shiny oscillator, too.
Sound Card Emulator
First Audio Output -- It's Working!
With the card fully populated, I was quite curious if it would fire up and work (without bodge wires). At first, I wasn't getting output as I expected. After a little troubleshooting, I narrowed it down to my assembly code. Somewhere, I was messing up switching between 8-bit and 16-bit registers. Anyways, I resolved the code issue. The hardware appears to be in working order so far. I have not yet tested the ROM, VIA #3, the shift registers, or the SPI card reader.
More music, sound effects, and integration into the rest of my 65816 system.
As I'm working on integrating the sound card into the overall system, I found that the EasyEDA component I used for the dual-port RAM had pins reversed on one of the data ports. I need to learn from previous mistakes of this nature and triple-check all user-submitted components in the EasyEDA library. I missed the pinout reversal when proofing the circuit.
More to come!