Where to learn embedded system basics for little or no money?

I've been working on a project that involved testing a toy with a
simple processor in it, that controlled how the toy reacted when the
user did things.
All of which got me interested in how the thing works at a hardware
level - something in which I have no experience at all. I would like
to learn more.
I have around me a Windows PC, a Linux PC, an EEPROM 'memory
programmer', some basic programming skills, the ability to wire a
plug, the ability to learn stuff, and broadband.
I would like to learn how to build and code embedded system type
things with the absolute minimum of expenditure. Where should I
start?
Are there emulators for microprocessor packages that I can program,
complete with emulated lights and switches, or somesuch? Are there
freeware ones? What about the attendant circuitry - sensors, buttons,
motors, diodes and such?
Reply to
Charlie King
Loading thread data ...
Yes to all those questions. I use the 8052 microcontroller which has been around for ages and is available in lots of different versions. There are plenty of free and evaluation tools including all sorts of emulators some of which will simulate external circuits too. A google search will bring up lots of sites. You could do worse than start at
formatting link
which has tutorials and many links.
HTH
Ian
Reply to
Ian Bell
Minimum of expenditure = nothing! You can get a simulator which allows you to play with I/O on the PC screen. Check out AVR Studio + WinAVR at
formatting link
There should be plenty of others.
Reply to
Ulf Samuelsson
Charlie
Another microcontroller you might want to play arround with is a PIC. by MicroChip. Below is a link of some projects I found on a google search.
formatting link
Also for a higher level language see if your local kibrary can do an inter library loan on this book. "Real-Time UML: Developing Efficient Objects For Embedded Systems" By Bruce Powel Douglass.
Another good book to look at is "UNIX Network programming" By W. Richard Stevens. this book wil get you a little more comfortable with unix and allow you to migrate to realtin OS's
Look at realtime OS's ThreadX is a C lib VxWorks pSOS these two are the work horses of rtos's Linux hard hat is makeing good progress
Linux Unix these are also worth looking into..
You should look at data manuals,(PDF online) and get use to reading them. At how devices operate. They have some basic characteristics that most share. Initail default wake up state. Mode control for data or control commands. After you have poked arround on a few chips look at the motorola power pc 860. Look at the embedded process and the list of embedded devices it has. become familair with these you will often times see many of these devices over and over, the 860 just hapens to have them all in one nice basket. The PIC 16C74 has many devices also.
I noticed that you mentioned you programed EEProms so I am assumeing that you have an eprom programer or acces to one. Going to extrapilate that you can get to either a bread borad or wire wrap set up and a DC power suply. IF you got all that or have access to it, then get a micro controler or two that you have become familair with and an LCD to display some output or even a few LED's. Read up a bit on electronics and build some simple circuits. Plug in your EEPROM code and have fun =)
Reply to
StepNRazor
Check out AVR Studio, and AVRLCD from Atmel.
formatting link
These people have an emulator for some of the AVR processors, and ST devices.
formatting link
it costs EU75.00 for the full blown AVR version, until the end of March. The demo is code-size limited: max 4K bytes, max 4 code modules.
Texas Instruments have Kickstart (IAR Embedded Workshop), a programming and debugging suite for their MSP430 devices
formatting link
's limited to 4K of compiled C code, but unlimited for ASM.
And there's MPLAB for the PIC from Microchip.
formatting link

Reply to
dmm
Take a look at where you will find a number of useful articles. You should also find a link to Jacks book on embedded systems which includes lots of useful guidance.
Reply to
Paul E. Bennett
I was going to recommend that, but you beat me to it! :) Atmel's simulator is dependable. I did my first AVR project years ago in simulation, because the chips weren't quite available yet. When I finally got chips (8515's with a date code of "ES") I dropped the code in them, and everything was fine.
For working on real chips, an AVRISP is a nice simple dependable programmer, at $29 from Digikey. For the simpler chips, you can do a $5 programmer using the BA1FB software (google on BA1FB and programmer) A 2343 is a good starting chip. 8 pin, internal RC clock, a timer, some ram and registers, and some EEPROM, and some I/O pins, but not too complicated. Code ports upward relatively painlessly in the AVR line :)
As you progress, you'll want to get a Jtag Ice for debugging real hardware. Sparkfun sells them for about $40, and they work nicely.
Reply to
Dave VanHorn
When I started using the AVR, the only chip available was the '1200. I used the BA1FB programmer with it, it worked very well. The newer Tiny2313 is a good chip to start with, IMOH. I'm not sure if it is supported by the BA1FB software, but it may be programmed with the SP12 software and (minimal) hardware.
Leon
Reply to
Leon Heller
Just a small thing to add ...
The STK500 is a really nice and very low cost proto board that can be programmed directly from AVR studio. Usual LED's and IO headers for trying out your IO. Note however that it does not have a JTAG port (oddly) - although you can buy an adaptor to fit on one of the pin headers.
As previously stated - the simulator is excellent, so you can develop in the simulator then run on the STK500 for very little cost.
Regards, Richard.
formatting link

Reply to
Richard
have a look at:
formatting link
schematics, free software, simple programming circuit for AVR's.
Don...
Reply to
Don McKenzie
The STK500 was designed before the AVR got a JTAG port and AFAIK, it was easier to design a small adapter than to change the STK500.
Reply to
Ulf Samuelsson

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.