Connect with us

Generic MCU banter (Choosing an MCU)

Discussion in 'Microcontrollers, Programming and IoT' started by Gryd3, Sep 13, 2014.

Scroll to continue with content
  1. Gryd3


    Jun 25, 2014
    So, I tend to be a little hot-headed sometimes and feel that there is a right way and a wrong way to do things.
    I'll voice my opinion and recommendations and see how they fair.

    I see a large number of posts asking about learning microctrollers, and I see a fair many asking to build circuit without an MCU that eventually gets pushed to a microcontroller. (MCU = Microcontroller)

    First, I would start of by saying that getting a project done has different requirements than learning about MCUs.
    Getting a project completed typically requires very little time, effort, or money investment.

    The typical choice for this is Arduino. They don't require special programmers, so the cost of getting one going for your custom project is pretty small. Add to that the very friendly IDE, topics popping up left/right/center for others using Arduino, and the collection of shields, and you have a very easy to use thought to working project.
    There are some drawbacks. The use of Arduino and some of the shields may increase the size requirement for the electronics. If you plan to manufacture your product, using Arduino and shields is a very poor costly route to take.
    Using an actual microcontroller and not a development board like Arduino will allow you to build smaller, cost effective products. Some manufacturers will actually allow you to purchase new MCUs that are pre-programmed with your code.

    Now on the other end of the spectrum, there are people asking for a good option when learning microcontrollers. This is usually where I cringe a little as the recommendations come in to use Arduino because it's easy. Easy is not always the best path to take. Talk a little to the op and figure out what they know, if they have programming or electronics experience. Learning a more basic item will help them to develop peripheral circuits and devices and develop skills in troubleshooting and debugging memory and program problems. If this is a long-term goal to understand and learn how these devices work please keep the pre-assembled bundled products out of the discussion. There is no place for the Lego Mindstorm or Arduino here. I view this as recommending MSWord to someone wanting to learn web programming. Microcontroller programmers should understand how the clock operates, and what 'instructions' are like a 'NOP'. Of course, this desire to learn could merely be to complete a project, in which case the end result is desired more than the learning. Take a look at the first section and pick whatever gets the results.

    That said, there are a few devices to choose from to start your learning path. They are not point+click easy, but they get your brain dirty and you benefit from it when you move up the chain and start using IDEs, libraries, and other large packages. AVR and PIC are common and have a large user base, PICaxe, BASICstamp and even ARM are being used.
    Which is chosen makes little difference, as the skills gained can be transferred to another. When it comes time to build a project there are arguments over things like AVR or PIC being better. They are somewhat right, but usually in a hobbyist's toolkit it makes no significant difference.

    How you use your tools is up to you. To some, what's under the hood is what matters. Choose your own path, and keep an open mind about all of the possibilities.

    This may have been a mini-rant. Thank you for sitting through the whole thing ;)
  2. Angelo


    Sep 10, 2014

    when you design for Job, you generally have good tools, support, and the MCU choice is generally done from someone else, quite always strongly related to the cost.

    I can add some things that could be helpful on working with mcu's for _hobby_.

    1) enjoy the choice, as per the experience you like to do. PIC and Atmel are perfect to start. Easy to find at a shop level, low cost and full of support. But for example you want to learn ARM, choose ARM, there are simple ARM-based mcus. Or you like Z80 core, use it, now it is sold also with internal flash in many MCU like flavours. Just enjoy the research.

    2) even if you like it, i suggest to avoid building up your own programmer. I did it several time, like for parallel jtag programmers and so, but then, at every issue on the circuit you are testing, when something is not working, you have doubts on the programmer too. Exclude those doubts and you will be faster on learning up and development. Low cost but basic good programmers are generally under 50$ costs each.

    3) If you like / want / can, you can design the board your own, it will make you learn the general HW-FW thing. Avoid wiring based boards. You can get crazy for each wire that breaks. For simple boards, consider to use prototyping with acid / ultraviolet lights or hot-iron method. Or for few money now, you can design 2-layers smd boards from prototyping companies.

    4) ask for free-samples, some sites was supporting this, i remember Microchip for example. I could have free samples of several things asking to the resellers with a company name.

    Last edited: Sep 13, 2014
    Gryd3 likes this.
  3. Arouse1973

    Arouse1973 Adam

    Dec 18, 2013
    What you have to remember is we dont always know the age of the persons asking the questions. I was a judge for the Lego contest for a local school for a couple of years and it gave the kids an introduction to software and electronics? I do agree that most projects would be better done with a micro, but this does dilute the understanding of electronics in general.

    Over the last 15 years I have noticed a lack of general understanding of electronics and more towards software. Thats fine but when you need to switch a transistor your stuck.

    I am an analog person and can sort of find my way around with software but its not good. We need both types of people and I think if we just throw micros in their faces then we could lose some good analog engineers. A lot of solutions can be done in analog with no micro.

    I think we should promote these micro dev PCBs but also mention that the more proffesional way which is a dedicated micro with some code of some kind.

    some people need a stepped educational process to learn they cant always just jump straight in. What others find easy others dont.

    Gryd3 likes this.
Ask a Question
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.
Electronics Point Logo
Continue to site
Quote of the day