element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Embedded and Microcontrollers
  • Technologies
  • More
Embedded and Microcontrollers
Embedded Forum Choosing a Microcontroller Brand
  • Blog
  • Forum
  • Documents
  • Quiz
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Embedded and Microcontrollers to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Verified Answer
  • Replies 47 replies
  • Answers 2 answers
  • Subscribers 471 subscribers
  • Views 5239 views
  • Users 0 members are here
Related

Choosing a Microcontroller Brand

screamingtiger
screamingtiger over 10 years ago


I understand that choosing a specific microcrontroller/processor/SOC depends on the requirements and what I am doing etc..

 

I've started a couple discussions but this one is at a critical time, I just used up my last 2 ardunio minis so I need to order a new stash.   I am considering moving away from them and to something more advanced, even if it is just using AVRs directly.

 

This question however is more about choosing a general brand of micro controllers.  In my opinion, for me, I don't have time to learn all of them.  I don't have time or $ to invest in IDEs for different platforms nor do I want a slew of them installed on my PC.

 

So help clear my ignorance here.

 

I am looking AVR, they have a wide range of products.  So does ARM.

 

If I were to say "I only want to use ARM" would I benefit from the following:

-A wide range of products from low power consumption (<100mA) all the way up to full multi core processors ( I can build small embedded projects and then go bigger if needed without having to switch brands)

 

-If I learn the assembler for one ARM product, moving to another ARM product will not result in as steep of a learning curve as the register names, instruction pnuemonics  and paradigm will be similar (subsets).

 

I could as the same question about sticking with AMTEL or PIC (microchip)

 

Does it make sense what I am trying to do?  I just want to cut down the cross system learning curves and stick with a specific set of chips that are very similar in terms of programming.

  • Sign in to reply
  • Cancel

Top Replies

  • michaelkellett
    michaelkellett over 10 years ago in reply to screamingtiger +4
    I really like the ST Nucleo boards - programmer/debugger built in, dead cheap (£7.67 for CortexM4) and quite small. MK
  • DAB
    DAB over 10 years ago +4 verified
    Hi Joey, I appear to be late to the post. I just recently purchased a couple of the Cypress Semi PSOC 4 boards. One I intend to install in my CNC mill and the others for new projects. I chose Cypress because…
  • johnbeetem
    johnbeetem over 10 years ago +2
    There are so many different ARM microcontrollers that it's hard to know what to do. In general, the core itself is pretty much the same so your real question is what on-chip peripherals do you need. Most…
  • balearicdynamics
    0 balearicdynamics over 10 years ago

    Joey,

     

    most of what you say has an implicit correctness that depends on what are your global goals. I think you can't compare ARM classes with Atmel AVR / PIC and similar. These are two kind of different things. The first are really micro controller, i.e. near-to-computer devices with too limited features to make them a real computer as we intend today. The biggest characterising difference is the absence of an operating system. You should know that ARM processors, especially the CPU used for embedded applications, also very very vertical ones, has the advantage that all bases their behaviour on a operating system; most of the cases (almost all) are Linux OS. Exists small and super-reduced linux distributions just though to be set to do a single job.

     

    Just some example I can mention, based on my personal experience:

    • Thermal printers based on ESC/POS protocol
    • Thermal printers from aps-printers.com that has their own Epson-like printing protocol
    • Some nintendo accessories for WII (in particular the add-on system to encode the games DVD over the home networks saving them on home NAS or networked HD)
    • All the router I know
    • Most of the AAA+ freezers

    In my personal opinion what you can  - and probably should - do is a reasonable choice having a reduced set of options choosing the better one that fits your needs depending on the project you are developing. Let me suggest a couple of guidelines that has sense conditioning this choice

     

    AVR has generally less power than the PIC microcontrollers (comparing the same devices). It has the advantage together the low price to be really robust micro controllers. The reason is the same that an old 486 is more and more robust - if still exists one outside of some museum - than a i586 quad-core: slower and less delicate.

    The advantage of the microcontrollers like AVR and PIC (just to cite two)

     

    Arm is an entire world, But you should focus on them as a computer / OS-based.

     

    What I can definitely suggest you is to make a choice at least forked in two branches: one is choose one or two micro controller: all the small projects, you can do them with AVR, PIC, BBB or whatever you like. You can do all by yourself including the schematics, PCB, design etc.

     

    Then, when the project comes more complex, instead of coming to be an acrobat of the small power MCU you can easily move on a SBC. I can suggest first of all the Raspberry, not because it is better than all the other (anyway it is better than many other, including the YUN) but because there is a wide community of people continuously working on it, solving problems and crating new things. I don't know in depth but I think that also BBB is something similar.

     

    When the Raspi is not sufficient, you can - also easily - interface your favourite microcontroller with the SBC and your architecture grows without serious difficulties (don't worry, difficulties and issues arrive soon anyway, for free!).

     

    What I discourage you instead is to study the assembler of the processors while there are very good C/C++ languages able to compile binaries with better optimisations than what a programmer can do.

     

    Enrico

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • johnbeetem
    0 johnbeetem over 10 years ago

    There are so many different ARM microcontrollers that it's hard to know what to do.  In general, the core itself is pretty much the same so your real question is what on-chip peripherals do you need.  Most have the usual SPI and I2C, but if you want something like touch pads or LCD screen you have fewer options, which simplifies life.  Some cores have significantly higher performance -- for example, the ARM Cortex-M4 has DSP instructions and usually floating-point, and the Cortex-M7 has cache IIRC.

     

    I wouldn't worry about ARM assembly language.  They are almost always programmed in C, and you usually don't get enough performance improvement to justify going to ASM.  OTOH, a generic C compiler won't know about special ARM instructions for DSP, etc.  In that case using ASM or linking in an ASM library can buy you a lot.

     

    My general approach to these things is to keep using what's working and only switch "when you can't go on doing what you're doing now".  There's always a learning curve for any new processor and its software, so if your current AVRs are doing the job it's probably not worth climbing the new learning curve unless you have another reason to do so, like curiosity or wanting to add to your "bag of tricks".

     

    JMO/YMMV

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • johnbeetem
    0 johnbeetem over 10 years ago in reply to balearicdynamics

    Enrico Miglino wrote:

     

    ARM is an entire world, But you should focus on them as a computer / OS-based.

    Enrico, what you say about ARM being OS-oriented (especially Linux) is true of the high-end ARM Cortex-A and Cortex-R processors.  However, the ARM Cortex-M processors are very much intended for non-OS microcontroller applications, and various vendors (NXP, ST, Freescale, Cypress, SiLabs, TI, and others) have low-cost, low-power Cortex-M chips for the same applications as AVR, PIC, and MSP430.  The difference is that since ARM is a 32-bit machine with multiply instructions, it's a lot easier to write high-level programs so you can concentrate on the application instead of the limitations of an 8- or 16-bit architecture.  The Cortex-M use 16/32-bit Thumb2 instruction coding, so program size isn't worse than an 8-bit processor.

     

    The low-end microcontrollers usually have simple peripherals and initialization.  You don't have to read a huge manual like a Cortex-A SoC, and it's easy to deal with device registers directly instead of having to face Linux device drivers.

     

    JMO/YMMV

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Jan Cumps
    0 Jan Cumps over 10 years ago

    When requirements and price don't point to a clear winner, I just select my favorite one.

    Then I at least know that I don't have to add the price/time of a learning cycle to the project.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • balearicdynamics
    0 balearicdynamics over 10 years ago in reply to johnbeetem

    Hello John,

     

    first of all, what's JMO / YMMV and OTOH ??? image I am a Spanish-living Italian ahah

     

    To be honest, it's true, but as far as what Joey wrote - for some unknown reason - I though to ARM a some higher level alternative. Instead there is a problem, I see, adopting ARM micro controllers as the main horse: the relative difficult to find already developed decent boards (e.g. Arduino instead the more sophisticated and in some way limited ChipKit PI and so on) based on these ARM micro. My two experiences of non-OS based ARM processors was developing a really great ARM from Nordic. It was a BLE device to be controlled with Android and iOS, to power and manage the speeds based on several variable curves in PWM. It was a dedicated one all-in-one. Really nice (with its IDE, lot of libraries and well documented). This was a client work but the cost of the development kit was about 650$ plus some other essential accessories, and it was almost impossible to manage it (5x3 mm, 48 pin if I remember) in any other way. I can imagine to develop a project with this kind os - exceptional - hardware.

    The other example was for my experiments and was the first NXP Arm modular micro controller a couple of years ago. I pre-ordered it at a super low price from Farnell, wait six months, then was so small and I found nothing to do than buy from NXP their dev kit. I stopped this line just for the cost of the development platforms.

     

    Enrico.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Jan Cumps
    0 Jan Cumps over 10 years ago in reply to balearicdynamics

    Both Texas Instruments (Hercules LaunchPad Series) and Silicon Labs (Gecko series) have very very cheap ARM dev boards, with free development tool licenses.

    I use dev boards and software stack of both companies. They're great.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • johnbeetem
    0 johnbeetem over 10 years ago in reply to balearicdynamics

    These two Cypress PSoC boards are very nice and very cheap.  The programmer part can be snapped off, leaving a DIP board.

     

    PSoC4 with ARM Cortex-M0, US$4: http://www.cypress.com/?rID=92146

    PSoC5LP with ARM Cortex-M3, US$10: http://www.cypress.com/?rID=108038

     

    These are amazing chips, with programmable digital and analog peripherals.  Unfortunately, there's no open-source software and you have to run on Windows.  I wish silicon companies would stick to silicon image

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • balearicdynamics
    0 balearicdynamics over 10 years ago in reply to johnbeetem

    True, I have not yet had to opportunity to do something over these devices.

     

    Enrico

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • balearicdynamics
    0 balearicdynamics over 10 years ago in reply to johnbeetem

    Just a note,

     

    I see that these devices costs from 4$ up to 10$. But I see also that the programmer is sold at 87 Euro on Farnell site. Is this mandatory or there are other ways to program these devices?

     

    Enrico

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • screamingtiger
    0 screamingtiger over 10 years ago in reply to balearicdynamics

    The programmer comes with it, it snaps off, weird.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube