Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Beginner Microcontrollers

Status
Not open for further replies.
what's a good beginner mcu depends on your perspective.

8051 for example is very simple and lots of sources -> low prices. Yet, the project has highly limited onboard peripherals and not that interesting / expandable, especially if you want to commercialize your skills.

PIC is slightly better with its peripherals but the product is on its last leg: we fired a PIC guy earlier this year and he is still without a job. yet we have a hard time getting an ARM guy.

those chips are great if all you do is hobby and you don't intend to commercialize your skills. if you do, you better be lucky.

AVR is a newer platform and much faster than pic. however, it is more hobby than industrial use, due to its young age.

if you are looking to make a living out of your mcu skills, ARM is a great place to invest your time / efforts. it is more complicated than others, but only marginally in my view. the Cortex-M0/M3 chips are very price competitive and offer great performance for your dollar.

I wouldn't say that 8-bit is dead but it is more than fair to say that going forward, your return is likely far greater on a 32-bit system.
 

millwood said:
--snip--
PIC is slightly better with its peripherals but the product is on its last leg: we fired a PIC guy earlier this year and he is still without a job. yet we have a hard time getting an ARM guy.
--snip--
AVR is a newer platform and much faster than pic. however, it is more hobby than industrial use, due to its young age.

if you are looking to make a living out of your mcu skills, ARM is a great place to invest your time / efforts. it is more complicated than others, but only marginally in my view. the Cortex-M0/M3 chips are very price competitive and offer great performance for your dollar.

I wouldn't say that 8-bit is dead but it is more than fair to say that going forward, your return is likely far greater on a 32-bit system.
Wow, now you tell me. Yes, I do want to make a living out of my mcu skills. I just finished a college course on the PIC 16F877A. I agree it is slow as a processor.

And I don't recommend PIC systems for beginners. They are murder to understand at the outset - hardware and software tools. The data sheet for that PIC is over 300 pages long. I tried the PIC 24 first in a kit and got nowhere alone, but all went well with the PIC16 in a course. Yet everyone seems to use them - for hobby work anyway. I have never seen or heard anyone using them in commercial products. I don't know who uses them for commercial robotics projects. But I don't want to address that issue. No doubt I am not well informed.

However, the ARM name always seems to come up in discussions with pros about on embedded system. If someone can suggest a solution (proto-interfacing board and software tools) that would be a big help - something for an intermediate person, not a beginner; something that will last for a few years. Hopefully they are be under $500.

Millwood, your response is appreciated.
Regards,
Lou.
 

for hobby use, AVR is much easier, in my view.

As for ARM, there are many dev boards out there. I would go with big vendors, like NXP or STM here. both have good offering. Software wise, I use Keil but I am sure others (like IAR) or some of the freeware works just fine. You will like a jtag interface with those devices. Segger has an education / hobby version for $60, and there are diy designs out there as well.

so the whole thing can be south of $100, if you are willing to put up with the limitations on free Keil.

Depending on your needs, you may find the newer Cortex-M3 or even M0 are the way to go. In that case, you can check out LPCXpresso or the upcoming STM32 ValueLine Discovery. They are jtag / dev board / software in one deals. The LPCXpresso is $30 and STM32 VL Discovery less than $10 (when available).

that should get you started very soon.

To me, if you wish to ever commercialize your mcu skills, ARM is the best way to go now. I would never invest in any of the 8-bit platforms now - very difficult to market your skills there.
 

millwood said:
--snip--
As for ARM, there are many dev boards out there. I would go with big vendors, like NXP or STM here. both have good offering. Software wise, I use Keil but I am sure others (like IAR) or some of the freeware works just fine. You will like a jtag interface with those devices. Segger has an education / hobby version for $60, and there are diy designs out there as well.

so the whole thing can be south of $100, if you are willing to put up with the limitations on free Keil.

Depending on your needs, you may find the newer Cortex-M3 or even M0 are the way to go. In that case, you can check out LPCXpresso or the upcoming STM32 ValueLine Discovery. They are jtag / dev board / software in one deals. The LPCXpresso is $30 and STM32 VL Discovery less than $10 (when available).

that should get you started very soon.

To me, if you wish to ever commercialize your mcu skills, ARM is the best way to go now. I would never invest in any of the 8-bit platforms now - very difficult to market your skills there.
Can you clarify what you mean by "your needs"? Mine are more than just hobby:
- interfacing of sensors
- custom OS modifications
- writing of drivers for interface devices
- communications and control systems
The categories are quite broad, I guess, but I really need a wide base of skills.

Lou.
 

well, I cannot speak for your needs as I have no idea what you intend to use the chips for: what you listed are fairly generic and by themselves do not require a particular chip or particular types of chips.

as to the M0/M3 chips: they are kind of 16-bit ARM, vs. the older true 32-bit ARM (like LPC210x). Those chips are priced lower and with simpler peripherals and compete primarily vs. 8-biters / 16-biters.

however, they offer much better upward mobility (to 32-bit ARM).

if you do a lot of industrial controls, not as much in data processing, those chips are the way to go.
 

millwood said:
well, I cannot speak for your needs as I have no idea what you intend to use the chips for: what you listed are fairly generic and by themselves do not require a particular chip or particular types of chips.

as to the M0/M3 chips: they are kind of 16-bit ARM, vs. the older true 32-bit ARM (like LPC210x). Those chips are priced lower and with simpler peripherals and compete primarily vs. 8-biters / 16-biters.

however, they offer much better upward mobility (to 32-bit ARM).

if you do a lot of industrial controls, not as much in data processing, those chips are the way to go.
well, let's cut the list to immediate needs: I want to write drivers for Linux and some RTOS. Robotics, largely for aerospace, and wireless products are big where I live. These are what I call real-time systems.
I wanted an ARM-type that is used now and will grow in use in the next few years.
Does that help you answer?
 

you can run RTOS on those M3 chips, and certain the bigger ARM7 chips. You can also run them on the M0 chips but they are not really designed for that. so M3 would be your practical low-end.

Aerospace may be a limiting factor, however. the hardware (and software) there is highly "client-driven" and because of the conservatism there, they tend to be 10 - 20 years older (if not more), on the avionics side.

so rather than picking a chip that's cutting edge new, you may want to look into what is actually being used there and be more focused.
 

Yes, I concur. Aerospace is very reliability oriented and that usually means older, proven technology. But I will take the cutting edge for now. In a few years, I might have just caught up. I will look at the 32-bit systems.
 

You mentioned Linux!? Now that is a completely different level and your hardware will not be Cortex-M based any more.
Millwood provided excellent guidance with respect to Cortex-M, you can also check out lots of Cortex related news here: **broken link removed**
If Linux is a focus of your work I would rather recommend to use an ARM9 based device. That could be a SAM9xxx from Atmel or a LPC3xxx from NXP just to name a couple of low cost candidates.
Some stuff about the LPC3000 sure on the NXP website and also here: http://www.lpc2000.com/arm9/
All of these MCUs I would not consider beginner microcontrollers though. You want want to open a new topic.

Bob
 

bobsanjose said:
You mentioned Linux!? Now that is a completely different level and your hardware will not be Cortex-M based any more.
Millwood provided excellent guidance with respect to Cortex-M, you can also check out lots of Cortex related news here: **broken link removed**
If Linux is a focus of your work I would rather recommend to use an ARM9 based device. That could be a SAM9xxx from Atmel or a LPC3xxx from NXP just to name a couple of low cost candidates.
Some stuff about the LPC3000 sure on the NXP website and also here: http://www.lpc2000.com/arm9/
All of these MCUs I would not consider beginner microcontrollers though. You want want to open a new topic.

Bob
I understand. Thank you.
 

If you dont want lose time with design you could start with a ARM9 ready to use DevKit as FriendlyARM.

Example:

**broken link removed**

The chip itself is kind old but i think it is a good and very good DevKit to learn how to deal with AMR9 core with and without OS inside. This kit already come with JTAG emulator.

My opinion, if you want to work with high end aplications you should learn FPGAs + ARMs + DSPs (Freescale, TI or Analog Devices as example).
 

Sink0 said:
If you dont want lose time with design you could start with a ARM9 ready to use DevKit as FriendlyARM.

Example:

**broken link removed**

The chip itself is kind old but i think it is a good and very good DevKit to learn how to deal with AMR9 core with and without OS inside. This kit already come with JTAG emulator.

My opinion, if you want to work with high end aplications you should learn FPGAs + ARMs + DSPs (Freescale, TI or Analog Devices as example).
I'll start a new thread "High-End Microcontrollers- Recommendations".

But to respond here:
I don't understand the comment about losing time with design. I do want to buy a kit with software and some hardware board with interfacing points. The design of devices and interfaces will likely be done by me.

Old chips are not worth it. I want this to be valid for at least three years.

About learning FPGA: That cannot be done in school; they start with the very basics and end with FPGAs. I have a very solid knowledge of digital design, but not FPGAS and DSP's that must come with online tutorials. The brand Freescale comes up again and again when get advice, but not TI and AD.
 

Old chips are not worth it. I want this to be valid for at least three years.

if you are a good programmer, you will quickly realize that the primary benefit of going to C would be its portability.

if you design your code efficiently, your code base will consist of a layer or so on hardware so you establish a logic layer for higher level routines, and software layers that interact with the hardware through the logic layer.

what you will find is that even in a naked implementation (aka OS-less), the bulk of your code will be in entirely portable C, with a few modules on the specific hardware, represented to the core C-code through the logic layer.

what that means is that your employers will be unlikely to place much emphasis on your skills with a particular hardware. instead, the money is on your ability to take a look at your code base and design a logic layer that interface with it.

a simple example would be blinking the led.

a poor implementation of it would be like this:

Code:
  PA1=1;  // turn on led
  delay_ms(500); //delay 500ms
  PA1=0;  //turn off led
  delay_ms(500);  //delay 500ms

this code is terrible in that if you were to move the led to a different pin, it would be hard to find all the references to PA1 and change it.

a better implementation would be to define a led_pin and toggle that.

Code:
#define LED_PIN  PA1  //define led_pin to be pa1
  LED_PIN=1;  //turn on led
  delay_ms(500);  //delay
  LED_PIN=0;  //turn off led
  delay_ms(500);  //delay

that way, if you were to move the led to a different pin, you can simply change the define statement and recompile the code - as the code only needs to have LED_PIN define to function.

Obviously, there are many others way to improve the code above. but the central point remains: once you have moved to a high level language like C, the low-level hardware knowledge becomes less important.
 

for hobby use, AVR is much easier, in my view.

As for ARM, there are many dev boards out there.
..........snip..........
the upcoming STM32 VL Discovery for less than $10 (when available).
..........snip..........

STM32VL Discovery Board is officially out and some distributors have a few left if you are fast.
More information:
**broken link removed**
There is also a link to the preliminary User Manual

This is the lowest cost entry into the 32-bit market I've seen anywhere.

Bob
 

also available is detailed set-up instructions for the various compilers (MDK and IAR) to use the STM32VL Discovery.

with the STM32 (and STM8S) Discovery, I find it so difficult to justify investing (both financially and from a human capital perspective) in a pIC/AVR/8051.
 


the best pic tutorial I have seen, bar none, is the one by gooligum.

and it is free.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top