Go Down

Topic: Wiring a Z80 to Arduino... (Read 26718 times) previous topic - next topic

graynomad

Interesting using C on a Z80, twas all ASM in my Z80 days.

So you are using the flash-based units. If one was to go retro and use an standard Z80 you'd ditch the hardware and use the compiler/IDE to get a HEX file, then get that into an EPROM.

Why did you do these? Was there a need to evaluate the Zilog products? Miss the old days?

_______
Rob
Rob Gray aka the GRAYnomad www.robgray.com

JoeN


Interesting using C on a Z80, twas all ASM in my Z80 days.

So you are using the flash-based units. If one was to go retro and use an standard Z80 you'd ditch the hardware and use the compiler/IDE to get a HEX file, then get that into an EPROM.

Why did you do these? Was there a need to evaluate the Zilog products? Miss the old days?

_______
Rob


No need.  I just wanted a new toy to play with.  It doesn't matter if it isn't as shiny as some of the others.  I have no anticipated applications for it and as far as 8-bits go.  I do feel a lot more familiar with the AVR architecture.
I will never ask you to do anything that I wouldn't do myself.

umurri

Oh yes, I know that this post it's very old .... as I am.

At the speed of 1 or 2 MHz of clock for the CPU Z80, Arduino could became a kind of EPROM because when the CPU place the address, Arduino could put the "CODE" of this address lines and then wait for the Fetch. After this, Arduino can wait the next address, and behave as before.
It's a non sense task, but it can be interesting, because you could write a small program code in Arduino.

A strange idea.

westfw

As long as this thread has been resurrected from the dead, I'll point out this recent project that implements a Z80 system in 4 chips - the Z80 itself, a 64k RAM chip, an ATmega32a running Arduino SW that does the boot processing and all the I/O, and a 7400 as some higher-speed glue logic.
The ATmega32a is a 40-pin DIP, so it has enough signals to fully control nearly all of the Z80 signals, and can DMA to enough of the memory to load a bootloader, which can then load other SW, including CP/M.
It's got a bunch of clever design elements; IO reads and writes put the Z80 into wait states and wake up the  AVR, which manipulates the bus and then lets the Z80 run again...


https://hackaday.io/project/19000-a-4-4ics-z80-homemade-computer-on-breadboard

MarkT

If you want to interface directly to an old microprocessor then the Parallel Propeller chip is a much
closer fit to what's needed, as it has lots of PLLs to generate clock signals, is fast enough, has cycle
perfect timing and 8 cores to parcel the work out to - but a standard Arduino with 8-bit processor
is going to struggle.   You would need to underclock the Z80 by a fair bit I suspect, send it clock edges and
check for Z80 bus control pin changes and service then (memory read/write, refresh, I/O, halt), emulating
the RAM/ROM for the thing.  To my mind that requires about 36 pins I think, so Uno and so on are out
without some clever interfacing circuitry for the busses
[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]

Go Up