30

A few days ago, I got Z80A CPU from eBay. So I tried to run it with classic 555 timer as a clock signal generator. I connected the 8-bit data bus of the CPU to the ground to "simulate ROM" (00 for NOP). I wired up all missing inputs: WAIT pin 24, pin 16, 17, 25, 26 to the 5V. And all address bus pins to LEDs to see the NOP, how it behaves. Normally it should count up to 2^16 without any problems, but it randomly freezes somewhere. I also tested my 2nd Zilog Z80C version with the same circuit and it works just fine.

What could cause the freezing of the CPU? Is the CPU defective?

Zilog Z80A on breadboard

Edit (solution): The problem was solved with blocking capacitor between + and - on breadboard (row 2), decoupling capacitor between +5V and GND on the Z80 and with the reset button. Thank you for all the answers.

Solution

Nogard
  • 533
  • 5
  • 9
  • 9
    The fact your second test worked fine seems like a hint. Did you ever retest the first Z80, to eliminate maybe something spurious that caused it to fail? – Brian H Feb 03 '20 at 18:16
  • 7
  • I do not see any blocking capacitor near CPU power supply pin 2. is your CPU clock inside specs range (some technologies do not work on too low frequency) ? 3. Breading board is not very reliable with higher frequencies ...
  • – Spektre Feb 03 '20 at 18:28
  • 6
    My suspicion: Insufficient decoupling, too many leds being switched at once, brownout, THUNK! – rackandboneman Feb 04 '20 at 14:05
  • 2
    What the lowest possible number for the count? If it's 0, note that a 16-bit counter cannot reach 65 536 (2^16) - there aren't enough bits to hold that number. – user6030 Feb 04 '20 at 22:25