After a lot of work and research, I decided to go with a RP2040-based option for my "specialized chip" and based on the availability of examples, as well as the price-point and the number of available GPIO pins, the Raspberry Pi Pico was the obvious winner.
My current design uses every GPIO pin, because I plan on using the Pico to also do PS2 keyboard functions, and get rid of the ATMEGA chip completely. Also, but using both PORTA and PORTB on a single 65C22 (VIA) chip, I can reduce chip count again.
The GPIO pinouts are as follows:
- 6 GPIO pins for VGA output (HSYNC, VSYNC and RBGI)
- 8 GPIO pins for communication to the Pico for VGA (directly connected using an I/O address)
- 1 GPIO pin for RD between 65C02 and the Pico (tells Pico to read data on the above 8 pins)
- 2 GPIO pins for PS2 Data and Clock
- 7 GPIO pins for PS2 ASCII data to VIA
- 2 GPIO pins for VIA handshake
It would be great if there was another pin available for the 65C02 clock signal, but I'm fresh out.
As far as the code is concerned, I'm working on the core VGA and PS2 functionality, and using PIO programming extensively. I found a great basis for the VGA library from a course taught by V. Hunter Adams from Cornell. Using his work as a guide, I was able to also figure out how to use PIO for the PS2 timing and scancode stuff.
Current versions of the code can be found at https://github.com/jimjag/JJ65c02/tree/main/Software/pico-code . I'll save a more indepth look at the code for another entry.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.