9
\$\begingroup\$

I'm a student in an IT school and we are trying to think of a project we could use to show 1st year students how things work behind the stage and we eventually thought of making a retro computer.

I've read many things concerning the Z80 processor, but my guess would be that we need something more powerful, we're still wondering about the architecture although ARM might be a good choice considering we'd find a lot of documentation, we have also established some special needs:

  • An external address bus if we need more RAM
  • > 50Mhz
  • 16 or 32 bits
  • No BGA/QFN package
  • No FPGA board
  • A serial interface (?)
  • Not too expensive either as we have a limited budget

The P8X32A-D40 looks like a good CPU but lacks the amount of RAM we'd need (32k), I was more thinking about something like >1MB. Maybe the eZ80 is worth considering. We'd like answers from experimented people like you are.

Thank you.

Edit: Even though I have accepted an answer as it fills our needs, the question is still open to other suggestions as we'll have to discuss about the choices with the team of students willing to participate to the project.

\$\endgroup\$
6
  • 4
    \$\begingroup\$ First you discuss making a retro computer, and then put up specs (50 MHz, > 1 MB of RAM) for microprocessors much newer. The Z80 had a maximum clock rate of 2 MHz, and could support 64K of memory. The Propeller chip (P8X32A-D40) is one of my favorites due to its unique architecture but it is definitely not retro computing. The Z80 is not a bad choice since there is a fair amount of information on putting together a home-built system, for example see this. \$\endgroup\$
    – tcrosley
    May 24 '14 at 15:16
  • \$\begingroup\$ I know these specs would make old days computers jealous, but I think some kind of retro++ would be ideal (The other students would consider anything below 1GHz as "retro" anyway...) \$\endgroup\$ May 24 '14 at 15:23
  • 4
    \$\begingroup\$ In a microcontrollers class I took, we used the Motorola 6800... it's complex enough with all the different addressing modes that it makes the 8-bit Atmels and PICs look like a toy.. But it's not so complex that you can build a mental model of the thing without losing your mind. It just depends on how 'under the hood' you want to get. \$\endgroup\$
    – Daniel
    May 24 '14 at 16:14
  • \$\begingroup\$ I was going to build something like this. Have a look at the WDC 65C816 - it's the 16 bit CMOS derivative of the venerable 6502, and comes in a DIP40 package. \$\endgroup\$ May 24 '14 at 17:04
  • 7
    \$\begingroup\$ I totally disagree with the reason for closing this question. The OP is looking for an appropriate computer architecture to use for school students, given a set of criteria. I responded first with a recommendation on an appropriate architecture, probably one he was not aware of, and yes, then recommended a specific chip because it was available in a student-friendly DIP package. But I think my rather comprehensive answer listing the reasons for my recommendations would be useful in the future for anyone else trying to make the same decision. Recommend this be re-opened. \$\endgroup\$
    – tcrosley
    May 24 '14 at 17:41
6
\$\begingroup\$

Although the currently available versions don't have a true external address bus (it's coming), you might consider the Microchip PIC32. It's architecture is based on MIPS, dating back to 1988, and is one of the two major RISC instruction sets (the other being ARM). So in that regard it can be considered retro. (A little trivia: the Sony Playstation used a MIPS processor.)

One of the nice features of the PIC32 (and unusual for a 32-bit microcontroller) is you can get several varieties in a DIP package, however the maximum memory available will be limited compared to the surface mount versions. One of the PICs with the largest memory in a 28-pin DIP package is the PIC32MX250F128 with 128KB of Flash (program) memory and 32KB of RAM. It is available from Digi-Key in the US, and Farnell in the UK.

Although the RAM may seem limited, note that PICs are Harvard architecture, meaning the program and data address spaces are separate, and programs are executed out of flash, so you don't need a lot of RAM. (For the purists, the PIC32s are actually modified-Harvard architecture, because it is possible to run programs out of RAM.) The other alternative is Von Neumann architecture (used, for example, in PCs'), where there is one address space for everything and programs usually run out of RAM, one exception being they typically need to have at least some Flash or ROM (called BIOS in a PC) in the processor's addrress space to execute a boot routine to load the OS off a mass storage device or network into RAM. The Z80 (and most microprocessors of its time) also used a Von Neumann architecture. So one had to fit both program and data into 64 KB. Some micros with a Von Neumann architecture also mapped their peripherals into the same 64K address space; others used separate port addressing.

Re the external bus, current PIC32's (but only in surface mount packages, due to the number of pins) have an 8 or 16-bit wide "Parallel Master Port" (PMP) which, coupled with DMA, can transfer data back and forth automatically between the PIC's RAM and external RAM or a peripheral. However this doesn't allow one to access the external memory directly (in the address space of the processor) or run code there. The very newest PIC32MZ family, listed but not yet in stock at Digi-Key, will have a true external address bus, up to 2MB of Flash, 1/2 MB of RAM, and run at 200 MHz.

The PIC32MX250F128 runs at 50 MHz, there are others that run at 80 MHz. It has two serial UART ports; you will need a level converter to translate that to RS232 signals.

Because it is packaged as a DIP, and can run without an external oscillator, to get started all you need is a 3.3.v power supply, some 0.1 µF decoupling caps and a breadboard. You can get a free C compiler and IDE from Microchip.

Once you get the processor up and running, you can add peripherals like an LCD display, buttons (even a keyboard), etc.

You can get other PIC32MX's with up to 512KB of Flash and 128KB of RAM, but only in surface mount packages like TQFP and VQFN that would require you to layout a PCB (you would have this same problem with any ARM processor also).

\$\endgroup\$
3
  • \$\begingroup\$ Thanks a lot, this is very informative and such a PIC would actually fulfill our needs. We'll adapt our design in case we feel the need to switch to the VQFN package or the PIC32MZ family. \$\endgroup\$ May 24 '14 at 17:43
  • \$\begingroup\$ I wouldn't say that it's a requirement of CPUs that use a von Neumann architecture to run their programs from RAM. It's certainly possible to have flash and RAM in the same memory map, thus allowing you to run code from either. von Neumann CPUs simply have one bus and address space for both instructions and data. \$\endgroup\$
    – Jason R
    May 25 '14 at 18:15
  • \$\begingroup\$ @JasonR I didn't mean to imply programs in a Von Neumann architecture had to run out of RAM, in fact they need to have at least some Flash or ROM (called BIOS in a PC) to execute a boot routine to load the OS off a mass storage device or network into RAM. (Of course really early computers, including early PCs like the Altair 8800, didn't even have a boot ROM and you had to toggle a bootloader in by hand using front panel switches). I've updated my answer. \$\endgroup\$
    – tcrosley
    May 25 '14 at 23:35
3
\$\begingroup\$

While I broadly agree with @tcrosley, I feel obliged to point out that if you really want to show other students how things work "behind the stage" then you should get an FPGA board (just buy one, don't try and make it) and learn how to build CPU's from scratch using logic. Take a look at this for a good starting point.

\$\endgroup\$
1
\$\begingroup\$

Have you considered the MC68000 series?

It's a 16/32 bit CPU except the 68008 the data line is 16 bits some of them can run run at 50 MHz easily and the address space is 16 MB.

  • An external address bus if we need more RAM - yes and only
  • > 50 MHz - can be
  • 16 or 32 bits - both
  • No BGA/QFN package - yes
  • No FPGA board - no
  • A serial interface (?) nope, you have to make yours but very easy
  • Not too expensive either as we have a limited budget - yes

Here is full documentation: https://www.nxp.com/docs/en/reference-manual/MC68000UM.pdf

\$\endgroup\$

Not the answer you're looking for? Browse other questions tagged or ask your own question.