Documentation

Parts List

Part Number Description
68EC000 Microprocessor
SN74HC32 2-input OR gate
SN74HC257 2-to-1 Multiplexor
UA7805 Voltage Regulator
SN74LS138 3-to-8 Decoder
OSC10H 10 MHz Clock
1108800 Clock Socket
JMS9313-01G Hookup Wire
PCB-594 Perf Board
DS1233D-10+ Reset Supervisor
4000-68D-R 68 Pin PLCC Socket
16MTLP Qty 2 16 Pin DIP Socket
14MTLP Qty 2 14 Pin DIP Socket
32MTLP.6 32 Pin DIP Socket
DC.1/25 100nF Decoupling Cap
CF1/4W103JRC 10kΩ Resistor
CF1/4W331JRC 330Ω Resistor
WTJ-020-37A 2.1mm Power Jack
2211S-40G-.55 40 Pin Header
74HC04 Hex Inverter
74HCT257 2-to-1 Multiplexor
32-6554-10 32-Pin ZIF Socket
AS6C4008-55PIN 512 kbyte SRAM
4538-632-AL Standoff
10368-30-1-0500-008-1-TS Orange Hookup Wire
3166 Blue Hookup Wire
SG-531P 1.8432MC:ROHS 1.8432 MHz Clock
SST39SF040-70-4C-PHE 512 kbyte flash
TL866PLUS Chip Programmer

Resources

About my 68k Homebrew Computer

January 25, 2021

What is this thing?

This 68k homebrew is a computer built with 1980s era chips that basically has the same functionality as a simple microcontroller would have today. The 68000 was the CPU in the original Macintosh (1984) and SUN Microsystems workstation. This homebrew computer is not nearly so fancy: there's a serial port, some GPIO, program memory, and data memory. It doesn't have any fancy peripherals like an analog-to-digital converter, video card, etc. The big difference between this homebrew computer and a modern microcontroller is that all of the components on this board are discrete — the processor is a separate chip from the RAM and the serial port, so you have to figure out how to hook all the stuff up by hand.

Why do this?

Building a homebrew computer like this one is mostly an educational exercise to understand how computers and memory systems work. Modern computers are not too different from this this one (at least in principle). They have a memory bus and I/O ports. The interfaces between components go a lot faster these days, and most of the components are grouped together on a single chip instead of being separate ICs.

Back in the good old days I built a similar system with my dad, and it really taught me how the computer works. The problem is, we didn't document anything, so it would be virtually impossible to recreate. Others have made similar systems, but there's not a ton of theoretical info out there about how the designs actually work, which makes it difficult for noobs to get started.


A Note About Ordering Parts

January 30, 2021

It seems like parts selection could be a bit confusing, particularly if some of the parts in the list are unavailable. It is possible to substitute some of the parts, and fortunately most of the parts that can't be substituted (like the CPU and memory) are widely available. In general, it's not a bad idea to buy a couple of extra parts in case you accidently bend a pin on a part or something.

Passive Components (Resistors and Capacitors)

All the passive components in this design can be substituted for different part numbers with the same values. For example, if Jameco is out of 10k resistors (which would be weird, but whatever), you can get 10k resistors from DigiKey or somewhere else. Sometimes tolerances for these kinds of parts matter (± 5%), but not on this design. Same goes for capacitors.

IC Sockets

There are lots of sources for IC sockets, and they're pretty much all the same. The ones I've linked in the parts list are called machine tooled, which are a bit higher quality than standard DIP sockets. Either kind is fine though.

Clocks

Clock oscillators are also mostly the same. The 4-pin DIP ones I've seen all have the same pinout. The only difference I've noticed is that some use pin 5 as an enable input and others are enabled always. You might want to buy a couple different frequencies of clock, like a 4MHz, a 10MHz, and a 12 MHz. It can be helpful to reduce the clock frequency of your board in case things are not working.

CPU and Memory

For the CPU, you'll want to use either a 68EC000 or a 68008. The schematics in this project don't support the 68000 because that part has a 16-bit data bus. If you use a 68008 instead of a 68EC000, the pinout will be different, so you won't be able to use the same pins as on the schematic. Check the datasheet for the correct pinout.

You have to be a little bit careful if you decide to change the memory. There are two issues: (1) pinout and (2) timing. Different memory chips might have different pin configurations (but most are the same). Make sure you check that the memory chips you use have the same pinout, and if not, use the pinout from the datasheet, not my schematic. Timing is key for the memory system on this board. Both of the memory chips I've picked have 55ns response times—the amount of time from chip enable low to valid data out. There is an additional lag in the address decoder of about 15-25ns for an overall delay of 70-80ns. The clock period of a 10MHz clock is 100ns, so the memory system can easily respond in 1 clock cycle at 10 MHz. It also works at 12 MHz. If you decide to use a different memory chip, make sure it has a short response time, otherwise you will need to run at a lower clock speed. Some old EEPROM memories have response times on the order of 250ns, which is way too slow for this design. You'd have to slow the clock down to 4 MHz or less to make that work, and the CPU can't run with a clock frequency lower than 4MHz. The best way to confirm that your memory will work is to read the datasheet in the AC Electrical Characteristics Section, which talks about timing.


Building Linux for the 68k Homebrew

March 10, 2021

Building Linux for our homebrew is a pretty involved process. I'm working on a series of posts that explains how to do it.