Microcomputers for Homebrew Projects? 68
tengwar asks: "Way back when I was at university, I did a course on microcomputers which went into enough detail to design, build and program a Z80-based system - more or less state of the art at the time. Now that my lecture notes are firmly embedded in the Carboniferous layer, I'd like to have a go at doing this with a more modern chip, and I wondered what's available. I'm not brilliant at electronics, and I liked the way the Z80 peripheral chips integrated easily with the CPU. Obviously I'm not looking to just slot together the latest PC motherboard with the latest Pentium, but I'd need to go for something where the board design won't get too complicated, which probably rules out processors with full 32-bit external interfaces on space grounds. I'm not really concerned about performance, but it would be nice to be able to port a JRE to it rather than working entirely in assembler. Any thoughts on suitable starting points?"
Atmel AVR (Score:4, Informative)
This processor is used in some smart-sensor [xbow.com] applications where you have distributed sensors.
Here's a 1998 EDN mag review [reed-electronics.com] and some simm circuit boards [simmstick.com] which make project computers.
AVRs rock! (Score:2)
http://www.avrfreaks.net/ is an excellent AVR resource.
In addition, you can program AVRs in C rather than assembler. There is a GCC version that targets the AVR platform, although my preference has been for Codevision AVR compiler/IDE/library set- It's $150 for a full version, but worth every penny (Mainly for the library set it comes with. No need to write your own I2C, One-Wire, or LCD interface routines, as CV-AVR has
Not that easy (Score:4, Informative)
Re:Not that easy (Score:5, Interesting)
Re:Not that easy (Score:1)
you can even wirewrap to 40 Mhz...
microcontrollers (Score:5, Informative)
Microcontrollers are extremely small, low-powered devices containing a CPU, some code/data memory peripheral interfaces. You might have seen them at work in your preferred game station mod chip...
I think Motorola, AMD and Intel also have a line of powerful 68xxx- and x86-, respectively, -based microcontrollers that might be closer to the capabilities of a PC processor.
There are also some chips that you can program in Basic (ugh) via a small interpreter in their boot code. It really depends on what you are planning to do.
Re:microcontrollers (Score:2, Interesting)
Re:microcontrollers (Score:2, Interesting)
Re:microcontrollers (Score:1)
Re:microcontrollers (Score:3, Informative)
Pick up to 5 items and have em FedEx'ed to your home. It's a great way to check out a new chip you where wondering about, and not spend the money on it. Granted, it's only 5-25$ per piece, but that's 5-25$ you might waste if you get a new chip to play with and end up toasting it.
Well (Score:3, Informative)
To go to a more powerful CPU gets you into all the stuff you don't want to get into, like critical and complex board layouts.
There's BASIC compilers, but you aren't going to get very far before you run into some serious limitations if you want to do anything complex.
Good luck on the JRE thing, something like that is way too slow and bloated to run on a hobbiest CPU. I think sun made a chip that executed bytecode, but I don't think they make them anymore.
Re:Well (Score:3, Insightful)
One bonus to this is that not only have your designed and built your own computer from CPU up, but also your own OS/Application from NOP up.
Re:Well (Score:1)
Certainly a good idea - it's just I have this allergic reaction to the aesthetics of Forth which I suppose I'll have to overcome.
Re:Well (Score:2)
Re:Well (Score:1)
That's not true. Check out The TINI [ibutton.com].
You can also program it in 8051 assembly, AND with the 1-wire interface you can hook a buttload of different sensors and things to it.
ARMBoards (Score:5, Interesting)
The best feature for me is the huge FPGA's to play around with [man.ac.uk]. Its quite easy to pick up any electronic equipment and plug it into it. Lots of fun and great experience gaining stuff.
The board total was around 100 GBP (inc board manufacture and mounting) and I think if you ask nicely the designs will be available.
Alternatively you could use something like a 6809 or an 8051 but then writing code for them is a pain. The best idea if you use someting old is to emulate a better processor. You can then run your favorite ARM/MIPS/x86 code on an emulation and forget the real system.
Try Arm on for size (Score:5, Interesting)
A few suggestions (Score:2, Interesting)
They can be programmed with java, c and much more, yet are basic. They are made to work well with servos and such, and are very versitile (read up on vitural circuit)
For a more expensive option, the famous mini-itx boards are great, and robot sized heh http://www.mini-itx.com/
Starting at about the same price as a microcontroller (well, some)!! Java is here too
I suppose I'm more looking into cpus for robots, so maybe this is not ideal.
This is what I've done.... (Score:4, Informative)
They provide a JRE environment (JDK1.1.3 in the case of TINI, J2ME CLDC 1.0 in the case of SNAP) and allow me not to worry about processor and memory design etc.
Right now, my SNAP module lives in a custom extuded aluminum enclosure I designed, and has a MMC interfaced for it (an extra 16Mbytes of removable storage), and a bunch of other things like temperature/humidity sensors, LEDs, an LCD, and dry contact sensors.
One reason I like both these modules is that they support I2C, SPI and 1-wire for expansion....meaning that you don't have to necessarily hang stuff off the CPU's data bus.
Good luck.
-psy
Re:This is what I've done.... (Score:2, Informative)
Re:This is what I've done.... (Score:2)
Have you considered an ARM core? They're quite easy to work with....from what I know/am told.
-psy
Edumucation (Score:3, Interesting)
Better I would think to start with an FPGA. I did a lab like this when I was in school - not that it was being taught in the course, just that I was bored with the labs so decided to make my lab reports more interesting. Take an adder (in my case it was an actual 74181) and sh
Re:This is what I've done.... (Score:2)
There was quite a bit of equipment we ended up needing, including the programer (to put the code on the chips) a breadboard (actually several) and a very good osilascope. If you have access to this kind of stuff it could be worth it.
One problem DIP prof
Re:This is what I've done.... (Score:2)
And just about everything Microchip (the PIC folks) make is available in DIP
-psy
Where to start (Score:5, Informative)
If you *really* want a JRE (which is generally not synonymous with performance, in the microcontroller world), check out the TINI from Dallas Semiconductor, here [ibutton.com].
If you want to get into heavier duty gear (and available only in surface mount), you can look at things like the Patriot from PTSC, here [ptsc.com]. There are also several others that I've seen, but can't recall the name of. A little Googling [google.com] should find those.
Re:Where to start (Score:2)
Re:Where to start (Score:1)
No, but the links to Dallas Semiconductor and PTSC probably were.
Atmel (Score:2)
JStamp make native java hardware. Never used them though.
Motorola Dragonball? (Score:4, Informative)
If you want a microcontroller, then maybe the 68HCxx series, or a RISC-ish PIC. The 68HCxx series is probably the most popular there, and you can easily find code and design samples for them.
HC12 (Score:4, Informative)
I had to get back into microcontrollers, after a long absence (since the days when the 6809 was state of the art).
I decided to go with the Motorola HC12. Unlike the HC11, it runs compiled C code with reasonable efficiency (gcc supported), it's highly integrated, and you have a simple execution model (not very many registers, etc.) when debugging by hand. It's reasonably capable, and almost trivial to design your own project board (clock frequencies within reason, few external components required, every kind of I/O pin conceivable).
The more powerful versions have huge amounts of internal FLASH (256K), but not quite as much internal memory as I would like (8K is typical of recent versions).
There are cheap modules available from Technological Arts in Toronto. They don't seem to be very active this year with new designs, but they continue to supply their product line to local colleges last I checked.
Anything more complex than an HC12 I think I would want some kind of kernel OS. The next step up the food chain, in our evaluation, was an Atmel chip.
modern or not (Score:2)
mmm. beer (Score:3, Funny)
Re:mmm. beer (Score:1)
Re:mmm. beer (Score:1)
So dust off your notes (Score:2)
homebrewcpu (Score:2)
Re:homebrewcpu (Score:1)
If you like x86 and Borland C/C++ (Score:2)
For $69 you can get a 33mhz 80186 board with 512k of flash and ram, a flash file system, and a full Borland development ide. You get 44 digital I/O lines plus the raw processor bus and a bunch of integrated peripherals.
Or if you just want the IDE... (Score:2)
Re:Or if you just want the IDE... (Score:2)
MCU's (Score:1)
PicoJava (Score:1)
And as you are at it, you could as well design this as a PCI board to finally speed up Java on the desktop
Still want Z80? (Score:2)
Re:Still want Z80? (Score:1)
Re:Don't fool yourself (Score:1)
Ah, rubbish. I asked for pointers on where to start, not detailed circuit layouts, and I've got a load of useful responses (thanks guys!). That's exactly what /. is good at. Now I'm going to have a look at what FPGAs can be used for - I get the impression they could be useful for building the device, but I'm not sure how yet as they came in after my time.
Re:Don't fool yourself (Score:1)
The Z8F640x [zilog.com] z8encore devel kit only costs $50 (check the future active [future-active.com] page) and comes with an IDE which lets you play with both C and ASM. The CPU is of the most basic variety so don't expect running linux on the board but you will feel at home having done Z80 coursework.
There are 2 kits for the ez80acclaim (eZ80F91 [zilog.com] and eZ80F92 [zilog.com]) which both come with ethe
Rabbit Semi Z80 (Score:2)
-russ
Using a JRE is silly. (Score:2)
Learn C. It's pretty similar to Java, but is far more suitable for writing embedded controller software. Remember that you are going to be controlling things,
Re:Using a JRE is silly. (Score:1)
I didn't mention imbedded stuff. I'm only interested in building a computer, not using it for something practical - there's plenty of off-the shelf stuff for that.
Learn C. It's pretty similar to Java, but is far more suitable for writing embedded controller software. Remember that you are going to be controlling things, not drawing widgets on a screen, so an OO language is not really necessary (or even desirable). Instead, you will be re
Re:Using a JRE is silly. (Score:2)
Apart from, if it fails then it can disable your brakes completely, yes. I don't want to take a chance on the Mickey-Mouse language of the "Shock the monkey and win" brigade anywhere near life-critical systems.
Re:Using a JRE is silly. (Score:1)
Re:Using a JRE is silly. (Score:1)
It's unbelievable that someone who knows something of embedded systems would post this kind of vitriol without posting benchmarks or, at the very least, performing a google search [google.com] first. It's also disturbing that the myth about Java's slowness is still stuck in people's heads. Java's bytecode certainly does not execute as fast as native code, but making a blanket statement about the p
Try This (Score:1)
CircuitCellar (Score:1)
These days, at the low end (less than 100 MHz), there is seldom a need to wire a processor up to much of any peripherals. For example, the motorola Coldfire [motorola.com] proc
actually pretty easy (Score:4, Informative)
Many of the current MCUs are ball grid array (BGA) devices, which make them pretty hard to work with if you're not a professional, but a few can be had in PLCC or QFP packages, which means you can get an adapter board or socket.
You can also buy preassembled demo/development boards (this is the route I'm taking) and wire-up anything the board doesn't include by hand. Most of the MCUs on the market will have 32-bit memory busses (though they may not support more that 25 or 26 address lines), so you can attach just about anything you want to them.
This is exactly the kind of thing that Steve Ciarcia (of Ciarcia's Circuit Cellar [circuitcellar.com]) used to do: building personal computers from microcontrollers. Most of his designs used Z80 based devices, which was fine back in the mid- to late-eighties. Now, however, you can do a fair bit better.
As for speed, I don't know exactly what you're looking for, but the ARM devices can be had in speeds from 50MHz to 400MHz, and the same is true of the PPC and MIPS devices. That may not seem like much, compared to a 2GHz Pentium, but it's really quite nice.
Some good resources: Digi-Key [digikey.com] is a reasonable source for all sorts of parts, Atmel [atmel.com] makes some nice MCUs, programmable logic, and Flash RAM, Cirrus Logic [cirrus.com] makes some ARM MCUs and networking chips (amoung other things), Sharp [sharpsma.com], Samsung [samsung.com], Motorola [motorola.com], and AMD [amd.com] all make nice MCUs, Cogent Computers [cogcomp.com] builds some nice development boards, and EarthLCD [earthlcd.com] has good prices on LCDs and has an ARM based board in the works.
Re:actually pretty easy (Score:2)
Free Software... (Score:1)
Little Boards (Score:1)
Texas Instruments DSP (Score:2)
TI makes a few good ones. Advantages over a MicroController? How about a decent Math package (fixed point or floating point), built in programmers, and a large array of I/O options? The DSPs I've been playing with have 3 General I/O registers, any pin of the 24 available to the GIO can be configured to be input or output.
Add on integrated ADCs and DACs, and a decent clock speed, and you've got a nice system.
Did I mention that you can find older
PICs, Parallax Javelin and ucsimm (Score:1)
The Javelin is java version of the basic stamp for the more hardware adverse, For low performance work the Basic stamp is excellent.
Finally the uClinux
Parallax: Basic stamps and Javelin (Score:1)
Sure they don't have the power of some of the beefier solutions mentioned, but they're much easier to get into.