Dev board updates from Kevin Williams
Posted: Thu Oct 27, 2022 5:47 pm
From @Kevin Williams, via Discord:
Hey everyone. It's taking a bit longer than I planned, but here is the current state of the X16 Developer Board. I'm still routing it and I do need to nudge a few things around and stuff can happen, but this is more or less the layout I'll be going with. It is a little different than Proto 3, and perhaps a bit more than planned which is part of the reason it has been taking longer. For one, after adding Wavicle's clock stretching circuit, I felt the urge to revisit some of my decoding logic and was able to simplify it a little and move some things around. I undid a part of my logic (interestingly, something Adrian and I added) that was incompatible with the clock stretching and wound up saving another IC. But then, I subsequently put another IC on the board for another feature, ROM carts. A total of 2MB of RAM is accessible via 256 'pages' of 8k each in the HI-RAM area. The ROM functionally works the same, but we only have 512k onboard and a 16k window. We could theoretically support up to 4MB of ROM with this arrangement but, 512k is probably more than enough. Looking down the road however, David suggested moving these pins to the bus so we could later support a cartridge. I did quite a bit of shuffling of pins on the bus and managed to squeeze everything we wanted in there, for the most part. I'm sure some may disagree, but 60 pins are all we have. Some other parts have been moved to hopefully optimize the audio ground paths, as well as other ground considerations. Pretty happy with it, but the board is pretty crowded now.
Some other notes and changes:
I decided not to change the expansion port. I intentionally picked 60 pins on Proto 3 because it's uncommon and a lot of pins. This prevents A2 & ISA cards and I think none of the console carts will fit in here, maybe Famicom? But hey, it is its own thing, so please, only X16 stuff! I'm thinking about printing it on the production PCB.
Image
Added a ton of UGLY TVS Diodes for port protection. I think they will be a little less ugly in real-life, but safety third, or something.
Added a relay on the audio circuit to mute it on reset or power off. The caps on the opamps make a squeal when powering off, and the YM tends to squeal a hair too, so I wanted it to mute to prevent spurious noise. I know a relay may be annoying, but it truly is the best ‘invisible’ mute circuit in my opinion.
I moved the ATX power connector to a more traditional location on the side of the board. IE, a more traditional location.
The last big one, was something I wanted to add, which is an audio-option header. I haven’t labeled much of anything in this pic yet, but the header directly to the left of the power connector is meant for an add-on audio board. Directly to the right of the connector are several on-board jumper pads which can be cut, and optional PCBs can be designed to do some cool stuff. We don’t really have a volume control, except via SW, but this header has the VERA, YM & BUS audio input pins individual addressable, the output opamp is still there, as well as the i2c pins. So you could get an i2c variable pot to set volumes, with code! You could also add effects, and all manner of cool stuff! Or leave it alone and it still works as it did originally.
I’m probably forgetting something, but that is the bulk of it. It’s a daunting board to layout, and it takes a ton of optimization. However, I really want the dev board to be as close to the prod as possible to make sure we work out any issues now before we start making a TON more.
Take care everyone and thanks for your involvement. I truly will be the software available which makes this machine successful, and I have high hopes for what we can achieve, it’s really the best DIY made in many years in my opinion. Yes, I am biased, but I do think it’s true in this case