-
Flash programmer
02/08/2016 at 01:26 • 0 commentsI figured I would need a programmer for the AM29F040B, so I made one using my trusty old ATmega128 development board and a ZIF socket:
With a simple interface:
Very retro as well I guess, haven't used XMODEM since the early 90's :-)
The programmer is pretty slow and it only supports 16-bit addressing, but it is ok for a start...
-
Further design considerations
02/04/2016 at 14:04 • 0 commentsAfter having further studied the available documentation and having played aorund with a preliminary board design in KiCad, I have decided to revise the design a bit.
Since I will need to have the PCB fabricated (no breadboard PCB this time), I have settled for a eurocard sized (160x100mm) board with two layers to keep the cost at a reasonable level. Since there is not enough space on such a board for the amount of RAM I will eventually need, I have decided to dial things back a bit for the first part of the project.
Second, the 32 bit RAM banks and their associated selection, decoding and bus cycle termination signals is still something I am in the process of getting my head around.
So for now, I am aiming for a simpler design with just 512 KB flash and 512 KB RAM using an 8 bit data bus. If I can manage to get that to work I can implement more advanced stuff on a second board later on.
I have also decided to use the multifunction peripheral MC68901 which I have found in a PLCC package instead of the 68681/68230 combo in order to save space and limit complexity of the board.
-
Initial design considerations
02/04/2016 at 10:18 • 0 commentsMotorola has published Application Note ANE426 describing a minimal system based on the MC68030.
It consists of the following:
- MC68030 running at 20 Mhz
- MC68681 Dual UART
- MC68230 Parallel Interface / Timer
- 8 x 6164 8 KB SRAM
- 2 x 27512 64 KB EPROM
- PAL16L8 for RAM byte select signals
- 555 timer for reset generation
- A bunch of 74- TTL IC's for glue logic
I thougt of using this application note as a starting point for my board with a few exceptions.
All glue logic will be implemented in a CPLD. Having never used CPLD's or FPGA's before, I'm sure there will be a lot for me to learn about those devices.
I recently bought a cheap CPLD development board with an Altera MAX II EPM240 along with a USB-Blaster cable to play around with the Altera Quartus II software. As far as I can understand from the documentation, the Altera MAX II series is not really 5V tolerant, so for the T030 project I have settled for the older MAX 7000 series, to be specific the EPM7128SLC4 which comes in a nice PLCC package.
Instead of the EPROMS, I will use a more modern flash IC for ROM: AMD AM29F040B
From the other projects I have found, It seems like the Alliance Memory AS6C4008 is a good choice as a relatively large capacity 8 bit parallel SRAM as it is available as a DIP package.
-
CPU Choice
02/02/2016 at 15:16 • 0 commentsThe next step in the project is choosing which CPU in the m68k series to use.
I have a board from an old payment terminal with a 68008, but I quickly decided that 1 MB address space is simply not enough.
In the attic I found and old Amiga 500 from which I could pull a 68000, but the idea of eventually being able to run "real" Linux or NetBSD on a homebrew board necessitates the addition of a MMU.
The next logical choice would be a 68020 with a 68851 MMU, but to keep the design of the board as simple as possible I chose the 68030 instead. The 68030 has an on-chip MMU but still supports dynamic bus sizing, which makes interfacing with 8-bit peripherals a lot easier.
I believe I can do without an FPU since both Linux and NetBSD support FPU-emulation for the m68k platform.
I also found a printed manual...
-
Background
02/02/2016 at 10:00 • 0 commentsI got the idea for this project when I found my old Z80 Single Board Computer in the attic. It turned out that it actually still works, and I suddenly remembered how great a learning experience it was to design and build it from scratch, making a lot of errors and fixing them along the way.
After having finished a couple of AVR based projects after I haven't touched electronics for quite a while apart from simple repair tasks, I got the urge to create something else.
I thought it could be fun to learn something new by designing and building a more advanced single board computer that eventually should be able to run a variant of a modern day OS.
Originally I thought about starting with something like a 80386, but I seems like the x86 architecture and hobbyist projects don't mix very well.
Then I discovered that the Motorola 68k platform is much more suited for hobby projects if you want to do something a little more advanced than classic 8-bit stuff like 6502 and Z80.
After reading about these two very impressive projects:
Steve Chamberlin's 68 Katy:
http://www.bigmessowires.com/68-katy/
Luis Alves' 68000 project:
(Both projects were originally implemented on breadboard(!) and both are capable of running uClinux.)
I decided to go for a m68k based project.