This is essentially the board that houses the other boards (modules) and provides some basic functionalities as system clock, arduino control, power-up reset, etc.
The motherboard has:
- four 2x22 pins bus connectors (1)
- one 2x20 pins arduino connector (2)
- the power supply plug (DC 5v - 3000mA), switch and led (3)
- some leds to show SYNCH, IRQ and NMI lines status (4)
- the power-up reset logic and the reset button (5)
- the system clock switcher and the fast clock generator (4Mhz) (6)
NOTE: this is still a prototype... I may have to change something if necessary.
A bus socket is unpopulated (for now) to easily connect the probes.
Bus connectors (1)
All bus connectors are identical so child boards can be installed in any place.
The bus has the following signals:
- address (A0 - A15)
- data (D0 - D7)
- control (RW, RDY, BE, SYNCH)
- interrupt (IRQ, NMI)
- system clock (PHI2)
- rom banking (EROM1, EROM2, ROM14)
- device selection (VDP, AUDIO, VIA1, VIA2, ACIA)
- 5v power supply (VCC)
- ground (GND)
Arduino connector (2)
An Arduino MEGA can be connected for developing and debugging purposes:
- system clock control (slow mode)
- CPU operations detection and trace
- runtime address breakpoints handling (add, remove on the fly)
- CPU code execution stepping
- direct memory read and write (DMA)
- direct software programming (without the need to remove the ROM every time)
Power supply (3)
A DC 5v regulated power supply must be use. A 3000mA of max current ouput should be fine.
Power-up reset (5)
When switched on the 555 timer, configured in Monostable mode, keeps down the reset line for about 750 milliseconds. The same time is guaranteed when the reset button is pressed.
System clock (6)
A 4Mhz oscillator module provides the (fast) system clock.
Arduino can takes the control (A-FOSCEN signal) of system clock generation (A-CLK signal) in order to stepping CPU execution, access to memory or devices, running at slow rate, etc.
Next step: memory mapping.