I'm building a mostly simple SBC with the 6502, which I plan to get manufactured into a PCB and assemble myself into a working computer. I've made the schematic by using a few ideas from other people's projects on this forum and also from youtube videos like Ben Eater's and George Foot's videos.
This is my first time posting here but I've used this forum to gather ideas for my project for a while.
Below are some of my goals for this project. I'm looking for some reviews/sanity checks from people who have done this sort of thing before.
My goals for this build
The main thing I want to be able to do with this SBC is to program it with itself. This means having some way to input text from a keyboard and display it to some kind of screen/output device, and I've chosen a VGA monitor for this. I'm not trying to keep this compatible with the ROMs/BIOSs or code of old but I want to be able to write my own, preferably on the machine itself. Of course I'll need to write the ROM on a different PC and write it to the EEPROM.
[EDIT](Also, I dont want to use discrete logic for everything since I have some experience with trying to make that work. I've used an FPGA (the smallest one I could find, the same one that TinyFPGA uses) for the glue logic on this board and I plan to program the logic into that chip (via a JTAG header). I'm also not necessarily using all DIP chips because of lack space, and going SMD isnt that much of a problem so I think it will be a fun challenge too. -> Turns out this is harder than I thought and keeping it simple will help a lot)
To store programs on a sort of "disk", I thought I need to add some sort of serial interface which can talk to a SD card reader module, such that the computer can use it as storage like so: 6502 -> (ACIA, currently 6551) -> SD card module serial inputs. Now I'm not sure if this will work or if this is even possible with the hardware I have, but I have seen it done before.
The peripheral interface talks to a USB controller and should be able to use a USB keyboard as input device. This idea was taken from the schematic of the SBC dev board that WDC sells https://wdc65xx.com/Single-Board-Computers/w65c02sxb/ and I have used the same controller in almost the same config as them.
The video signal is being generated by a microcontroller (STM32) because I thought that's probably the easiest way to get it working without worrying about a lot of VGA signal timing. This MCU is fast enough to generate a 640x480 screen and has enough memory to store the framebuffer. Some more details are in my schematic.
The parts I'm using
- uProcessor: W65C02S
ROM and RAM: AT28C256 and AS6C62256, both 32K
Glue logic: [EDIT](Lattice MachX02 256LUT FPGA -> NAND gates from Garth's Primer, for simplicity)
VIA: W65C22
[EDIT](ACIA: W65C51 -> Removed)
USB I/f: FT245RL
Video: [EDIT](STM32 F301 uController -> PIC32 MX270 because STMs are nowhere to be found)
- 1. I am unsure if the configuration of ACIA and VIA I have, will work for interfacing with the computer. I've seen many people use the 6522 VIA to control the 6551 ACIA as a peripheral but i dont know if that is a requirement or can the ACIA act directly as a MMIO device?
2. My goal for the serial interface is to be able to connect some kind of SD card reader with a serial output to it and use that to load programs onto the computer. Since the W65C51N is in short supply from the suppliers I'm using, I am looking to swap it for a more modern chip that can do the same sort of job with roughly the same inputs and outputs. What, if any, are my options here?
3. Is the USB interface idea going to work? I know modern keyboards use different protocols from the PS2 keyboards which will just give you the scan code.
4. In the 6522 VIA I'm using, I have used port B as the data port and port A as a control port. I was planning to use two MSBs from Port A as a chip select so i can maybe have multiple peripheral devices. Is this a good idea? Chips like the USB interface dont have a Chip Select nowadays
I have attached my schematic here for reference so that you can see the whole design.
The rest of the KiCAD project is on Github if you want to take a look at the PCB design or anything else: https://github.com/zrthxn/8puter
Thanks a ton!