For fun, I am resurrecting an old MC68000P on a breadboard. I've never designed a computer system from scratch before, so to start I hooked the 68000's address and control lines to some I/O from a PC-104 card on a 200MHz Linux computer. The program initializes the I/O pins, and then runs through a state machine to properly communicate with the chip. First the processor's /HLT and /RST lines are asserted for 1/2 a second to reset, then released. Next the card waits for the 68000 to assert its /AS. Upon seeing that, the card sends a /DTACK. And then it releases /DTACK once /AS is negated. The data bus is hard wired with pull-up/down resistors for a 'branch-back-to-itself' instruction. Now the problem...
I can start the processor and, after a few clock cycles, the processor does 2 16-bit read cycle to fetch the SP. Next it should read 2 more for the PC. But instead it hangs without ever asserting /AS again to start the next bus cycle. I made a number of minor timing changes, with no improvment. Also I notice that the behavior is not always consistent, with a bus cycle starting without the Data Strobes being asserted. (Maybe timing irregularities from the Linux board?)
I read in the documentation that there is a minimum clock frequency for the chip (that I am certainly violating) and that the clock signal must be square (which I am crudely approximately). Do clock irregularities really matter in a static processor?? If I run off a 1MHz crystal clock, the processor makes all 4 reads.
Any other ideas? Thanks a lot!
I can start the processor and, after a few clock cycles, the processor does 2 16-bit read cycle to fetch the SP. Next it should read 2 more for the PC. But instead it hangs without ever asserting /AS again to start the next bus cycle. I made a number of minor timing changes, with no improvment. Also I notice that the behavior is not always consistent, with a bus cycle starting without the Data Strobes being asserted. (Maybe timing irregularities from the Linux board?)
I read in the documentation that there is a minimum clock frequency for the chip (that I am certainly violating) and that the clock signal must be square (which I am crudely approximately). Do clock irregularities really matter in a static processor?? If I run off a 1MHz crystal clock, the processor makes all 4 reads.
Any other ideas? Thanks a lot!