Close

You can refactor hardware, right?

A project log for MC68000 Computer

benchoffBenchoff 10/29/2015 at 17:144 Comments

I'm in the middle of a few free days right now, and I figured it's time to take a look at this project. Things aren't good. Let's go over what's wrong with it:

So, how am I going to fix this? Rapid iteration. I'm figuring every month I can dedicate 10-20 hours to this project, and going by how long it takes Seeed studio to ship some boards to me, that's just about right for a single hardware revision. Therefore, this project is getting a complete refactoring. I'm going to design monolithic boards (with *everything* on one board - ram, rom, whatever), and get as much as I can working. Iterate on that until it works, and add more stuff. You never expected me to be done with this, did you?

Another factor that has led to this project being stuck in quicksand is the use of 5V parts and discrete logic. This was reasonable for 1982, but it ain't the 80s anymore. It isn't even the 90s. CPLDs are the way to do this, and memories are larger and cheaper if you use a 3.3V part. What does that mean?

The Motorola MC68SEC000.

The *SEC* part is a very late evolution of the 68k family; it's a static design, so it will work even when the clock doesn't. It works at 3.3V, opening the door to some really great parts and programmable logic. It's not available in a DIP part, though, leading me to this problem:


That's a 64-pin TQFP. I can solder that, but it will most likely mean boards with more than two layers in the future. I can deal with that.

With a new part that I created in Eagle, that means I need to verify that part is correct. This means ordering a board with just this package on it, and I think I can do something cool:

That's a board with the *SEC* package just freerunning, with some LEDs attached to the address lines. It's effectively a binary counter in a very small package. And to indulge the racists on hackaday.io, yes, I can solder CPUs.

With such a small board, I think it's time to go over the minimal configuration of a 68000 from one of the best resources around.

Tie to ground:


Tie to VCC:


Ignore completely:


Tie together

The *SEC* part, along with the *EC* parts have two additional pins: /AVEC and MODE. /AVEC is an extension of the IPL... pins, so we can just tie that to VCC. The Mode is a bit different, and something that's incredibly valuable in the new design:

Mode (MODE):

The MODE input selects between the 8-bit and 16-bit operating modes. If this input is grounded at reset, the processor will come out of reset in the 8-bit mode. If this input is tied high or floating at reset, the processor will come out of reset in the 16-bit mode.

With one part I'll be able to test both 8-bit and 16-bit data busses, something I've struggled with in finding a proper development environment for this computer. That's cool, several problems down.

As for now, the next update will be a blinkey thing that is a complete waste of transistors. That's cool, though: it's just to verify the part.

Discussions

Dave wrote 05/20/2017 at 22:17 point

Any progress?

  Are you sure? yes | no

hackaday wrote 12/10/2015 at 21:55 point

Aww... in expectation, I found both a 64-pin DIP 68000 and a 68010, plus a number of other support parts. But yeah, it gets expensive to have huge boards made to accommodate those, as well as the support logic.

If you're considering a TQFP part, how about using a DragonBall VZ? It's basically a 68030 system-on-chip. I know there's a university project out there where someone made a board for it and got linux running on it. I see VZs on ebay for about $7 each, so they're not yet unobtainium.

Good luck and keep us updated!

  Are you sure? yes | no

Stuart wrote 11/24/2015 at 15:24 point

Nice project :)  I agree that it's quite... challenging to get a system like this up and running.  It took me a *long* time to route my 68k pcb.  My design consists of a motherboard with a few onboard peripherals and some expansion connectors.  There are a few pictures on my project page.  I completely agree with your point about the cost of older-spec components - I ended up using AS6C4008 512Kx8 RAM ICs, which are not cheap...  Like you, I'm using PLDs to avoid having acres of 74-series logic ICs on the board; in keeping with the retro theme, I'm using 22V10 GALs.

Good luck with your system!  I hope you get it up and running soon :)

  Are you sure? yes | no

john wrote 11/09/2015 at 00:47 point

If you're rethinking and perhaps simplifying, have you considered the PLCC 68008? It has 22 address pins and can handle 4 megs of memory as compared with the DIP 68008's 20 address pins. It'd slow things down a bit in terms of computer speed, but it might speed things up in terms of project completion speed :)

  Are you sure? yes | no