ATMega644 MSX
This project is MSX1 computer emulation on ATMega644 microcontroller. Only part of MSX1 hardware is emulated, video and sound are produced using the same integrated circuits as in real MSX1, but there are also some features that real MSX1 don't have. Loading programs from SD card is one of them. Some AVR microcontrollers like for example ATMega162 have nice feature (XMEM) where you can easily connect external SRAM, but unfortunately they don't have enough FLASH memory for this project. Because of that, I made simple RAM board where memory is accessed using only 12 AVR pins, 8 address/data and 4 control lines. This approach is slower than previously mentioned XMEM interface, but still fast enough and much faster than serial SRAM which would be simplest to connect.
Electronic schematics
Main board
RAM card
Video card
Audio card
Finished electronic circuits
All cards together
Cards inserted in the motherboard
In operation
The picture is in grayscale, because I used TMS9129NL which generates YPbPr signal. To have picture in color with TMS9129NL I would need to use two converters to capture video: YPbPr to RGB, and RGB to Composite/S-Video. I could also use TMS9118NL which already have composite output, but for it I didn't have exact crystal oscillator which need to be 10.738635 MHz.
Downloads
atmega644_msx1.hex | HEX file to burn into ATMega644 microcontroller |
Fuses: H=0x99 L=0xE0 |