Wednesday, December 28, 2016

Building a 68000 Single Board Computer - Freerunning on Protoboard


I'm now at the stage with the wirewrap version where I was on the earlier breadboard -- I have the clock, power on and pushbutton reset circuits, and CPU wired up so that I can free run the CPU. The power switch and power LED work, as well as the reset pushbutton and reset/halt LED.




By tieing AS* to DTACK* and pulling the 16 data bus lines low, it will continuously execute the instruction $0000 (which corresponds to ORI.B #0,D0) and cycle through all of memory. If I pull some data lines high, it gets an odd address exception and halts with the RESET/HALT LED lit, as expected.



Only five chips are wired up, but the rest have power and ground and bypass caps.


The next step is to wire up most of the remaining circuitry and attempt to get it running out of ROM and RAM. This will take some time as it involves almost everything in the circuit except the two UARTs. I will also only need half of the RAM and ROM chips to run the Teesside monitor program.

Friday, December 23, 2016

Building a 68000 Single Board Computer - Wirewrap Prototype

I've started assembly on a protoboard.



I am using a phenolic board with 0.1 inch hole spacing. I actually glued two boards together using Crazy Glue and some additional pieces of circuit board material for reinforcement to make a board large enough.



I've determined the locations for the ICs and inserted the wirewrap sockets. Until they are wired up, the sockets will fall out if the board is inverted, so to hold them in place I put a small dab of Gorilla Glue on one pin of each socket to hold it in place.



I also mounted the front panel switches and LEDs and some connectors. Power will connect using two binding posts. Two 6-pin headers will connect to the FTDI USB to serial adaptors for the two serial ports. A few discrete parts will be mounted on the perfboard but most will be installed into wirewrap sockets.



I installed 5 nylon standoffs, one on each corner and one in the center, to act as feet and lift the board up above the sockets.



Each IC has a 0.1 uF bypass capacitor installed next to it. There is a single large 100 uF electrolytic filter capacitor installed near the power connections.



The next steps are to wire up power to the power switch and LEDs and some of the ICs, then assemble the clock oscillator, power and pushbutton reset circuits and the microprocessor so I can get it to the same state as I had earlier on the breadboard - being able to run in freerun mode.

Wednesday, December 7, 2016

Building a 68000 Single Board Computer - Programming the ROMs


The original TS2 computer design used 2764 8Kx8 EPROMs for read-only memory. There are four, providing a total of 32KB of ROM. The 2764 type were popular at the time the board was designed, providing a good tradeoff between cost and storage capacity.

These are EPROMs - Erasable Programmable Read Only Memory, programmed using a device programmer which provides the correct timing including a programming voltage (12.5V for these particular devices). They can be erased using an ultraviolet lamp. Erasing sets all bits to ones.

I'm also planning to support 28C64 EEPROMs which are electrically erasable. The device programmer can erase them electrically in a few seconds. You can also write to them in-circuit, but not typically at full speed (you need to wait a short time before subsequent writes).

Because the chips are 8 bits wide and the 68000 has a 16-bit address bus, pairs of ROMs are used -- one for even addresses (D0-D7) and one for odd addresses (D8-D15). There are four sockets on the board, but the TS2 monitor is less than 16KB in size and will fit in one pair of chips.

When you program them you need to split the data into even and odd data. You can either do that when creating the download files, or many ROM programmers can do it directly as an option when loading the files.

My monitor source code when assembled generates Motorola S record files. I added rules to the make file to generate odd and even download files.


My programmer is a low-cost Willem GQ-4X which can program various types of devices,including 2764 EPROMs and 28C64 EEPROMs. The software can perform splitting into even or odd data if desired.


I programmed a pair of 2764 EPROMs and also a pair of 28C64 EEPROMs in preparation for testing the board once it gets assembled.


To erase EPROMs, I have a low cost UV eraser which I bought on eBay. It will erase the devices in about 20 minutes.

Incidentally, the RAM on the system uses 6264 8x8K static RAM chips which have almost the same pinout as the EEPROMs. Four sockets are provided, supporting a total of 32KB of RAM.

Thursday, December 1, 2016

Building a 68000 Single Board Computer - BOM and Preliminary Layout



I spent some time updating the parts list on github, which is available as a spreadsheet and PDF file.


I started a rough layout of the prototype board by printing and cutting out small squares of paper corresponding to each IC and arranging them. I tried to minimize the distance between the chips that interconnect. This gave me the approximate board size needed. I will probably adjust it when I get the proto board as I'm not sure yet if I will put some of the discrete components like pullup resistors on wirewrap sockets or directly on the board.


A 64-pin wirewrap socket is hard to come by, and the lead spacing varies between the different versions of the 68000 chip (e.g. plastic versus ceramic packages). I made a 64-pin wirewrap socket by cutting two 40 pins units with a hack saw.


These are the controls that are planned go on the front of the board:

  • step pushbutton
  • single step/run toggle switch
  • reset button
  • reset/halt LED (red)
  • power LED (green)
  • power toggle switch

I may eventually put the board in a case. If so, I'll either find a commercial case large enough, or maybe 3D print it.