hi i am new here. i would like to learn embedded programming on a very wel established microcontoller. I know that PICs are becoming more popula but can someone tell me of a controller that is popular in industry fo several years (8 or 16 bit) and also has products available that i can us to learn such as demo kits. motorola 68XX? Atmel? 8051?
They're very easy to program and understand (in C or assembly) and have a nice set of peripherals. They're especially good for low-power, battery operated things.
You can get a small devlopment board/system for as little as $20, and some pretty powerful eval boards for not much more than that:
formatting link
If you want to solder some extra stuff on, the proto boards towards the bottom of the above page work nicely.
The MSP430 port of GCC works quite well:
formatting link
The tools from Rowley are highly regarded and very reasonably priced (personal licenses are only £75):
formatting link
My second recommendation would probably be The AVR Atmega family:
formatting link
Eval/proto boards seem to be harder to find, but there are some available:
formatting link
Like the MSP430, the gcc port works well (here's a windows package):
formatting link
Rowley also supports the AVR:
formatting link
A lot of people use IAR tools for both these platforms but they're way down on my list because of:
1) Price. 2) Dongle and license-server hassles.
3) No Linux support.
If you can stomach those issues, IAR tools are solid and their support seems good (IIRC, there are crippled and/or time-limited eval versions of IAR tools available for both platforms).
Both the AVR and the MSP are popular for both hobby and commercial use.
IMO, the 8-bit PIC is a very nasty little architecture and is difficult to work with. It's not a part I recommend to somebody just learning embedded programming. There are C compilers for it, but it's not well suited for C-language projects.
I've heard that some of the newer PIC arcitetures don't suck as badly, but that isn't saying much.
--
Grant Edwards grante Yow! I'm having an
at EMOTIONAL OUTBURST!! But,
"johnstokes30" skrev i meddelandet news:iYednf73dqkqdd_anZ2dnUVZ snipped-for-privacy@giganews.com...
With the AVR, you need (want) the following tools.
1) gcc C compiler - or IAR. Some like Imagecraft.
2) AVR Studio
3) STK500 development board
4) JTAG-ICE Mk II.
If you want a real cheap environment, then you can try out the AVR Dragon which is a low cost, low featur combination of STK500 + JTAGICE Mk II but only works for chips with 32 kB flash or less.
You can get IAR, Imagecraft etc compilers which are limited to about 4 kB code for free.
I agree with Grant that the msp430 is terrific but I'd recommend the AVR family for beginners.
Although I've used 68hc12 for years I have some concerns about this for new people. The 68hc08 is not friendly to newbies.
PICs are easy to use with BASIC Stamps, but there are no decent free C compilers for the 16F devices and their performance with C compiled code is not very good.
I'm still working on my tools document but you can see my family selection document here:
formatting link
You may need help selecting tools because it's more compilated that it should be.
I love your comments about MSP430 marketing's use of the "RISC" and "emulated instruction" terms. Everytime I attend something where there's a TI FAE, he begins by apolgizing those terms in order to pre-empt the inevitable questions/complaints.
TI's brain-dead mar-com stuff also frequenty talks about having a "single-cycle instruction set" or something equally bogus (some of the instructions take up to 5 clock cycles).
--
Grant Edwards grante Yow! LBJ, LBJ, how many
at JOKES did you tell today??!
Can you clarify "only works for chips with 32 kB flash or less" ?
- so that means the JTAG-ICE Mk II therein, is not going to also work with an AVR32, for example ? Then what - you buy another JTAG-ICE Mk II ? How do you then tell them appart ?
'Low feature' means what ? - just that 32K ceiling, or do other things not work either ?
Seems a little strange having a ceiling on an ICE. ST don't mention any on their STM32 Ice ?
The register-to-register instructions are single-cycle, so I suppose they could claim that's what they meant, but when you see it in context, it seems to be implying that all instructions in the instruction set are single-cycle (which is pretty much true for processors like the AVR).
:)
--
Grant Edwards grante Yow! I'm RELIGIOUS!! I
at love a man with a
The Debug functionality only works for devices of 32kB or less. And then only some of them as well. It supports the ATmega32 for example, but not the ATmega162. One can still program devices such as the ATMega128 though.
If you buy the cheap STM32 dev kit (One with games and circleos), then there is a debug limit as well. Something like 32K in RAM mode only. At least it is better than the 16K limit (RAM only) for their STR9 version. 16K is basically useless for ARM if you link with new-lib.
Getting interrupts going, especially nested interrupts, is not easy on an ARM for a newbie. I would also recommend AVR for a beginner. Lots of resources, one learn how to use gcc, which provides one with knowledge to get gcc going for ARM, Cortex and a host of other micros which has gcc available.
hi thanks for alot of good advice. I have looked further and decided upon the avr micrcontroller to start off.
there is a lot of demand in the UK for ARM engineers. Is it possible to obtain a development board for this brand? I have been on their website and again as a beginner it is ver confusing? Oh yes i have very good c programming skills so this is not a problem for me. thanks john
I'm a little confused. You say you have decided to learn the AVR line of processors and then you ask about ARM tools. Was one a typo? Or maybe both and you really meant to say you are going with the MSP430 line of parts... ;^)
If you are picking ARM parts, you then have the issue of which ARM and which brand. The cores on all of the are similar, but the different variants have differences in instruction sets and they are all integrated differently with the peripherals... not to mention the difference in peripherals.
Most popular for smaller projects is the ARM7 at this time. The Cortex M3 flavor of the ARM MCU is new, but specifically designed for embedded work. I expect that over the next year or so, the CM3 will be more widely used and will become the dominant flavor of ARM at the lower end. I would also suggest the parts from Luminary Micro. They have some very nice, low cost development kits with several flavors of evaluation tools which are very useful for learning the ropes.
The ARM9 is a faster processor and will run Linux if you give it enough memory. There are many makers of these, but the eval boards are a bit pricier than the low end.
[I'm a professional programmer, but a hobbyist when it comes to electronics.]
When I started out with microcontrollers, I started with the HC08 and I actually found the HC08 to be easy to learn, but it's not well supported under Linux, so I had to write a programmer for it.
Note that if you use Windows, there's a free Codewarrior package to get you started, so for a Windows using newcomer the HC08 may be an option.
I am now switching to the AVR, because of a lack of capability within the HC08 for my more advanced requirements. [But it's annoying that, unlike the HC08, you can't get a AVR with USB device in PDIP. (And yes, I know that I've mentioned this before. :-))]
Simon.
--
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Microsoft: Bringing you 1980's technology to a 21st century world
The AVR Dragon is a JTAG emulator combined with an application area. It is just a PCB not mounted in plastic. You probably want to solder a socket of some kind in the application area. The part downloads the code into a SRAM which is limited to 32 kB.
I think you have misunderstood something Look up AVR Dragon on the Atmel website.
I dont think you want to use the AVR Dragon as an emulator for the AVR32.
The emulation feature is only limited to 32kB, the low feature comment is really compared to what you get on an STK500.
Now I am more confused. Code-Sram ? The FLASH AVR's cannot execute code from SRAM ?
- or is that some temp storage ? Why does it need SRAM ?
It DOES use the real silicon for emulation, right ?
Yes, I did - I took "is a low cost, low feature combination of STK500 + JTAGICE Mk II" rather too literally.
I thought you meant it included a JTAGICE Mk II, but I can see when looking at a photo, it is quite a different animal. Rather than follow others lead with USB-Stik debug, where the Stick is generally usefull for wider debug, Atmel have done this a little differently.
Better/smarter would have been a compact, low cost USB link that could be used on ALL Atmel products, and AVR daughter cards, for programming, debug, and production.
ElectronDepot 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.