I would appreciate if you could find some time to review my (rather simple) schematic and PCB design. This is my very first PCB, so you are more than welcome to roast me badly
I definitely have more experience with ASM (and programming in general) than with the electronics, but the retro passion wouldn't be "complete" without dealing directly with the hardware, would it?
Project purposeMostly - debugging, secondly - learning. I am using Teensy 4.1 dev board to control W65C02 or W65C816 via serial port (or Ethernet) from my main computer. I do it mostly to test my emulator (written in Rust) against the actual CPU to guarantee cycle-level accuracy. The project is simple enough that perhaps designing a dedicated PCB (over breadboard-based solution, that I'm currently using) is an overkill, but - on the other hand - it's perfectly simple for learning purposes. Apart the Serial/Ethernet bridge, the PCB has 11 LEDs for quick status control (and a switch to disable them), a switch between 6502 and 65816 (that simpy either keeps 02's NC pin floating vs being connected). After designing all of that I've realised that I have enough Teensy pins available for one SPI connection, and seeing that my board had a size almost identical (now really identical) with ILI9341 3.2" LCD I decided to expand the capabilities of the project and there an option to have a screen at the back of the board. That, on top of debugging, would allow to use the board for some fun retro projects, similar to Olimex Neo 6502 (
https://www.olimex.com/Products/Retro-Computers/Neo6502/open-source-hardware) with the advantage of the screen and much nicer (in my opinion) development board (Teensy) than RP2040 used by Olimex.
FilesAll schematics, Gerber files and screenshots can be found in a browseable form on my Github:
https://github.com/ddrcode/teensy_6502_ ... ee/pcb/pcb, but I have attached the main files here as well.
Design decisions (and questions)1. 3.3V (for compatibility with Teensy and ILI9341)
2. The U3 and U4 ICs are simple line drivers (U4 is inverting one) to drive LEDs and to avoid powering the LEDs directly from signal lines. Curious whether you'd suggest other components for that job? Ideally I would prefer something in PDIP-14 (rather than 16) with all inputs on one side and outputs on the other (that would massively simplify my tracks), but - to my surprise - I couldn't find any. The closest with that layout (but in PDIP-16) I could find was TI 4000B series, but that means stepping into TTL theritory.
3. The dip switch controls the LED's "subcircuit" by simply cutting the VCC on/off. I could, theoretically, drive U3/U4 bus-enable signal instead, but then I'd need to deal with floating input to all LEDs and pull them down.
4. I decided to have all LEDs, resistors and capacitors in SMB form (all in 0805). I don't have bigger issues soldering 0805's and that's always a good practice of patience
5. I use DS1818 to control reset function. I'm tempted to stabilize the pushbutton in the reset circuit with capacitor, but even the datasheet for DS1818 shows a circuit without any cap. Is that ok?
6. In two places on the PCB there are vias directly on solder pads (C4 and LED10). I know there are different opinions about placing vias on pads and I'm curious what's your (pragmatic) approach is?
7. Those tiny 0805 LEDs are super bright (I've tested S85CS5), especially having 11 of them. According to the math, I should be using 60-100 Ohm resistors for them, but in my actual tests, I had to increase the resistance up to 2-4k Ohms to use these LEDs as indicators rather than the source of light in my room
If you have any questions, comments, suggestions - I'd love to hear from you. And thank you!
And, as it's one of my first posts here, I'd like to express my gratitude for this amazing Forum and the site. I spent my teenage years doing a lot of asm coding (on C16, C128 and then Amiga) and I find now a great pleasure being back to that world. In the world of blackboxes (called "AI"), dealing with something that can be fully understood and controlled, is extremely rewarding.