Overclocking the Z80-MBC2...

A project log for Z80-MBC2: a 4 ICs homebrew Z80 computer

Homemade 8MHz Z80 SBC, 128kB banked RAM, RTC, SD (HD emulation), Basic and Forth interpreters, CP/M 2.2 and 3, cross Assembler and C (SDCC)

Just4FunJust4Fun 11/02/2018 at 09:514 Comments

Because the Mighty Core gives the chance to choice a 20MHz bootloader, I've decided to try to "overclock" the Atmega32A using a 20MHz quartz:

You don't need others HW changes, just use a 20MHz quartz instead of a 16MHz one. The Z80 clock speed will be at 10MHz.

You have to select the "20MHz external" option in the "Toos" menu of Arduino IDE before flashing the 20MHz bootloader:

Of course you need to load the sketch again (using the "20MHz external" option). IOS will display the new clock speed:

Remember that using a 20MHz quartz you are out of the Atmega32a specifications (the Atmega32a is rated at 16MHz max.), so you are in a "grey area" where things "may works"...


freefuel wrote 07/12/2019 at 23:01 point

why does the Z80 have to run at half speed? if the AVR can assert a bus halt, could it not be run at 20Mhz with a suitably rated part?  

  Are you sure? yes | no

WestfW wrote 07/18/2019 at 01:09 point

The Z80 clock is driven off a timer output of the AVR, not directly from the crystal.  The max output frequency of the timer is half its input frequency, and the max input frequency is the core clock frequency (20MHz, in this case.) (Also, I'm not sure that common external RAM will run at that sort of speed.)

  Are you sure? yes | no

freefuel wrote 07/18/2019 at 03:29 point

if I had SRAM fast enough and clocked the Z80 directly off the crystal output, might it work then? 

  Are you sure? yes | no

freefuel wrote 07/12/2019 at 22:22 point

there is a drop in variant of the AVR chip rated for 20MHz there is also a 64KB and 128KB varient of this chip series.

  Are you sure? yes | no