Learning embedded coding, which uC?

I am teaching myself embedded programming as a career move. Could somebody tell me which microcontroller(s) are most popular in the industry right now? I've found tons of resources for eg: 8051, PIC, ARM

- but I'm not sure what's most likely to land a job.

Reply to
Julian Morrison
Loading thread data ...

Depending on the needs of the application, the main ones seem to be PIC,

68HC12, MSP430, ARM and PC's on PC104 format. However, there is no need to be limited to just one of those processors. Being able to select and use any of them in a project is likely to be seen as a worthwhile capability.

Many of the development tools (editors, compilers, source repositories and change tracking) will allow you to develop in a reasonably high level language. I would suggest, though, learning a few assemblers (only for small fragments of coding such as interrupt handlers, fast calculation routines).

As for self tutoring on software development. For the most part I am self taught in my software aspects. I have had a few courses in specific assemblers and high integrity devlopment techniques. Noting you are in the UK I expect that you shouldn't be too far from some centre for learning. Why not see if there is a suitable course near you. Additionally, you could look out for some of the free seminars that the processor companies run from time to time.

--
********************************************************************
Paul E. Bennett ....................
Forth based HIDECS Consultancy .....
Mob: +44 (0)7811-639972
Tel: +44 (0)1235-811095
Going Forth Safely ....EBA. http://www.electric-boat-association.org.uk/********************************************************************
Reply to
Paul E. Bennett

Learn one thoroughly - doesn't really matter which - once you get used to micro programming techniques in general, learning a new chip doesn't take much effort. PIC has the advantage of a quickly-memorized instruction set and vast amount of free resources. Probably best to start on 8 bit as skills scale better upwards than down. Learning assembler will make you able to write much better C code when you move onto bigger systems as you will have a much better understanding of the underlying hardware.

Reply to
Mike Harrison

I was hoping folks would say PIC, because there's a Maplin shop nearby that sells PIC programmer/tester kits (Velleman K8048), and I can drive that from PiKdev on Linux. I figure on turning up to a job interview with some 8-bit doohickey I designed, breadboarded and coded, plus spec docs and code printouts. Should make up for lack of formal qualifications :-)

I assume it's C all the way, though Ada95 and Forth wouldn't hurt?

Reply to
Julian Morrison

Hello Julian,

I can only really speak for the hardware side of it but pretty much agree with Paul and Mike. Once you know a particular uC well and then have to deal with another one you'll find that it's almost like renting a car. Once you get a Chevy. Next time they give you a Toyota but you can drive that as well.

In the industry the 8051 is still popular. Mainly because they are used to it and the simpler versions are multiple sourced, something that in general cannot be said about other uCs.

Don't become spoiled. If you start out with a higher end MSP430 you have the leather seat and all. 16 bit math and even a HW multiplier. Then a company asks you to design something mundane and it can't cost more than a couple of Dollars including the batteries. Then it goes down the elevator and fast. 4 bit uC, no HW multiplier, no gravy, bare bones and the docs can be hard to decipher unless you understand Chinese. So as the scouts say, be prepared.

Regards, Joerg

formatting link

Reply to
Joerg

Hello Julian,

If you can get that stuff locally at decent prices go for it. But mail order ain't that bad. I get my MSP430 stuff in two days for very little in shipping costs.

In today's environment it's C and assembler. Usually inline assembler which you can embed in your C code. I have never heard anyone in the industry (medical in my case0 use ADA or Forth.

Important: You need a nice integrated programming suite, often free as a limited version. You also need a reliable flash programmer, best would be in-circuit programming so you don't wreck any pins.

Regards, Joerg

formatting link

Reply to
Joerg

Any of the above are fine; for the PIC, beware that there are actaully many PIC cores, and the smaller ones have very limited opcode reach, and use paging - so are something to be avoided. PIC18 has better silicon resource, the the smaller/older siblings.

Try and get a system that supports on-chip debug, that way, you verify in the real world....

For the 80C51, there are good low cost, On Chip debug models here :

formatting link

this one is cheap

formatting link

-jg

Reply to
Jim Granville

formatting link

formatting link

.. and I should add this new 80C51 one: more expensive, but also much more resource, and this ST uPSD chip has USB included, and also has on-chip JTAG debug/trace.

formatting link

-jg

Reply to
Jim Granville

Better method, try and enter some of the design competitions from magazines like Circuit Cellar, and keep a copy of all the docs on a website (once published anyone can get it anyway). Then have the more detailed stuff on non-searchable pages and that URL is put in the CV as part of your technical history, if listed in a magazine competition carries more weight than I just designed something.

Just designing something is not what employers want, with infinite time anyone can produce all the right documentation and a perfect presentation. What employers are looking for is working against deadlines!

Anyway half the people at interviews would not know what to look for in the package you presented and would be looking more at the flashing lights than documentation and did the design meet the specification etc..

Another advantage of entering a competition is that it often gets you access to special deals on development kits including compilers, debuggers and the like. Even if you don't finish the first one, it is a good training ground and we learn more from our mistakes and experiences. Also it can give good exposure to different architectures with the differeneces and similarities between systems.

These days it is generally C and assembler on a lot of products, good people should be able to migrate between different language anyway at least to be able to understand what the programme is doing.

-- Paul Carpenter | snipped-for-privacy@pcserviceselectronics.co.uk PC Services GNU H8 & mailing list info For those web sites you hate

Reply to
Paul Carpenter

Speaking of In-circuit programming - I'm starting with the MSP430. I've got the TI Flash Programmer tool, but it only connects to header board or socket. What do I use for connecting to the chip in-circuit? A 3M SOIC Test Clip? I'm not sure how to connect it to the TI Flash Programmer tool.

--

--------------------------------------------------------------------- DataGet & PocketLog

formatting link
Data Collectors
formatting link

--------------------------------------------------------------------

Reply to
Baxter

Hello Baxter,

You have to provide a header, typically in the same 14 pin configuration. If there ain't enough space you can create an adapter from the FET tool plug to whatever smaller connector like FPC you have chosen.

In-circuit might be more practical with a bootloader, reducing it to a serial link.

Regards, Joerg

formatting link

Reply to
Joerg

Thanks everybody. Very informative!

I'll go with the Velleman K8048 (and PIC16F627). It's a kit, so I can probably find some ZIF sockets to avoid the bent pin problem. Compilerwise, I'm used to command-line tools (linux all the way, heh). So, SDCC, PiKdev to drive the programmer, YaPIDE as graphical simulator

- all freebies. Gotta love Open Source :-)

Reply to
Julian Morrison

I know of at least three projects in medical systems using Forth (two of them are life-critical). Forth is also used in a wide variety of space applications and industrial control.

--
********************************************************************
Paul E. Bennett ....................
Forth based HIDECS Consultancy .....
Mob: +44 (0)7811-639972
Tel: +44 (0)1235-811095
Going Forth Safely ....EBA. http://www.electric-boat-association.org.uk/********************************************************************
Reply to
Paul E. Bennett

FWIW, one example of Ada in medical stuff is Newport Instruments:

formatting link

--
Niklas Holsti
Tidorum Ltd
niklas holsti tidorum fi
       .      @       .
Reply to
Niklas Holsti

Hello Niklas,

Well, maybe I should have said medical hardware and mostly midsize to larger companies with >$50 million a year in sales.

Regards, Joerg

formatting link

Reply to
Joerg

Hello Paul,

What I meant was equipment that is sold in high volumes, not projects. But maybe there is equipment that was programmed on Forth. I just have never seen any.

Back in my university days in the 80's we had a few hardcore Forth fans. They wouldn't touch anything else.

Regards, Joerg

formatting link

Reply to
Joerg

Hello Jim,

For $199 that seems like a good deal indeed. Graphics LCD, USB, pod and all. That's almost what the MSP430 environment cost, sans LCD :-(

Just make sure the IDE eval version has enough poop. I think TI limits theirs at 4k for C and unlimited for assembler. That ought to do for a good warm-up with the tools.

Regards, Joerg

formatting link

Reply to
Joerg

I used to be one of them. At the time, I saw Forth as a sort of MSI solution, between the 'TTL gates' approach of assembler and the MSI of C, Pascal etc. It was also easy to get Forth cheaply for small processors, whereas C tended to be very expensive and clunky.

Nowadays, reasonably good C is available for nearly all processors, and Forth is a bit of a backwater. I'd certainly rather try to read even badly written C than Forth, and not having to keep track of the stack clinches it for me.

Paul Burke

Reply to
Paul Burke

I would have thought that Anaesthesia Ventillators and Vaporisers would be a reasonable volume production. I know that it can be hard knowing what equipment is programmed with what language. Anyway, you have now heard of such equipment being programmed in Forth.

I can understand that sentiment. In my position as a Systems Engineer I get to see more PLC Ladder, Literal and other languages than I do Forth. However, if I am designing new equipment then I am likely to use Forth as the programming environment for it.

--
********************************************************************
Paul E. Bennett ....................
Forth based HIDECS Consultancy .....
Mob: +44 (0)7811-639972
Tel: +44 (0)1235-811095
Going Forth Safely ....EBA. http://www.electric-boat-association.org.uk/********************************************************************
Reply to
Paul E. Bennett

Yes, the number of Forth engineers is very small in comparison to the number of C and Ada programmers. I have had no trouble convincing the agencies, notified bodies or safety licenceing authorities that the Forth coding was of an adequate standard and in compliance with the requirements of the system. I have found that certifying Forth code for correctness is rather easier than most other languages.

I have, in the past, done some coding in Fortran IV, D3, S80 and MUMPS. I still, on occassion program in BASIC (Turbo-BASIC), Assembler (for various processors), Ladder and PostScript. They are all fine for some niche or other and, when used, are the most effective tool for the job. However, Forth, for me, is very much a huge tool-shop (I mean the place where the tools are created). That keeps it in the forefront for me, especially when I am dealing with control systems.

--
********************************************************************
Paul E. Bennett ....................
Forth based HIDECS Consultancy .....
Mob: +44 (0)7811-639972
Tel: +44 (0)1235-811095
Going Forth Safely ....EBA. http://www.electric-boat-association.org.uk/********************************************************************
Reply to
Paul E. Bennett

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.