Author Topic: Which microcontroller should I learn?  (Read 47732 times)

0 Members and 1 Guest are viewing this topic.

Offline cdonateTopic starter

  • Contributor
  • Posts: 18
  • Country: br
Which microcontroller should I learn?
« on: February 08, 2016, 12:04:19 am »
So, I would like your opinion on which microcontroller should I learn.

I'm about to finish college (mechatronics engineering) and I've only worked with arduino. I would like to go from a hobbyist to a professional, my goal is to work on product development.

Among other things, I would like to know which microcontroller is most in demand now and for the foreseeable future.

Should I focus on that one? It is better to focus on only one?

Any information will be welcome, as you can probably see, I'm a bit green on the subject.

I was thinking about learning ARM, but there are so many types, and versions, and manufactures, I got very lost.

This is very subjective, I know, but that's what I want, the opinion of people with more experience than me.

Thank you very much!
« Last Edit: February 08, 2016, 02:17:36 am by cdonate »
 

Online nctnico

  • Super Contributor
  • ***
  • Posts: 26889
  • Country: nl
    • NCT Developments
Re: Witch microcontroller should I learn?
« Reply #1 on: February 08, 2016, 12:05:58 am »
Did you use the search function of the forum? This has been asked many times!
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline cdonateTopic starter

  • Contributor
  • Posts: 18
  • Country: br
Re: Witch microcontroller should I learn?
« Reply #2 on: February 08, 2016, 12:15:15 am »
I did try, but what I got the most is how to learn microcontrollers, where to find info.

This is not what I would like to know, I would like to know which IC is most in demand now, what companies are looking for now. I would like to focus my effort on the one that will give me the best chance of finding a job.

If there a post that I missed with that info, please post the link here.
« Last Edit: February 08, 2016, 02:19:17 am by cdonate »
 

Offline dannyf

  • Super Contributor
  • ***
  • Posts: 8221
  • Country: 00
Re: Witch microcontroller should I learn?
« Reply #3 on: February 08, 2016, 01:08:29 am »
"I was thinking about learning ARM"

Your intuition is spit on. That part of the mkt is red hot. Spend time on keil or iar and you are in business.
================================
https://dannyelectronics.wordpress.com/
 

Offline legacy

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: Witch microcontroller should I learn?
« Reply #4 on: February 08, 2016, 01:25:32 am »
learn good programming instead
 

Offline cdonateTopic starter

  • Contributor
  • Posts: 18
  • Country: br
Re: Witch microcontroller should I learn?
« Reply #5 on: February 08, 2016, 01:26:51 am »
learn good programming instead

Well, that's no help...
 

Offline cdonateTopic starter

  • Contributor
  • Posts: 18
  • Country: br
Re: Witch microcontroller should I learn?
« Reply #6 on: February 08, 2016, 01:28:22 am »
"I was thinking about learning ARM"

Your intuition is spit on. That part of the mkt is red hot. Spend time on keil or iar and you are in business.

Thank for the reply. Tell me, should I focus on a specific one? v6, v7? Is there a big difference in programming different versions?
 

Offline 1xrtt

  • Regular Contributor
  • *
  • Posts: 70
  • Country: br
Re: Witch microcontroller should I learn?
« Reply #7 on: February 08, 2016, 01:33:26 am »
If you're interested in ARM, there is an online course from University of Texas that started this January 20:

https://www.eevblog.com/forum/beginners/free-course-ut-6-03x-embedded-systems-on-edx-starting-now/msg846982/#msg846982

Although it already started, I guess you can still enroll. The course is based around the TI implementation of ARM (TM4C123), and you can get the evaluation board directly from TI: https://store.ti.com/Tiva-C-LaunchPad.aspx. I got mine delivered in 4 days, to Sao Paulo.
 

Offline 0xdeadbeef

  • Super Contributor
  • ***
  • Posts: 1572
  • Country: de
Re: Witch microcontroller should I learn?
« Reply #8 on: February 08, 2016, 01:34:11 am »
Weren't all the witch microcontrollers burned?  ;D
Trying is the first step towards failure - Homer J. Simpson
 

Offline cdonateTopic starter

  • Contributor
  • Posts: 18
  • Country: br
Re: Witch microcontroller should I learn?
« Reply #9 on: February 08, 2016, 01:36:28 am »
If you're interested in ARM, there is an online course from University of Texas that started this January 20:

https://www.eevblog.com/forum/beginners/free-course-ut-6-03x-embedded-systems-on-edx-starting-now/msg846982/#msg846982

Although it already started, I guess you can still enroll. The course is based around the TI implementation of ARM (TM4C123), and you can get the evaluation board directly from TI: https://store.ti.com/Tiva-C-LaunchPad.aspx. I got mine delivered in 4 days, to Sao Paulo.

That's awesome! Thanks companheiro.
 

Offline TheCharels

  • Contributor
  • Posts: 12
  • Country: us
Re: Witch microcontroller should I learn?
« Reply #10 on: February 08, 2016, 01:42:04 am »
Weren't all the witch microcontrollers burned?  ;D
They tried but the engineers involved needed to sacrifice the virgins, none of the engineers survived.
 

Offline legacy

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: Witch microcontroller should I learn?
« Reply #11 on: February 08, 2016, 02:03:21 am »
Well, that's no help...

It helps a lot, as your question is completely pointless until you get a purpose (=job)
and if you come from Arduino then I am 100% sure you do not know good programming
 

Offline legacy

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: Witch microcontroller should I learn?
« Reply #12 on: February 08, 2016, 02:04:33 am »
Weren't all the witch microcontrollers burned?  ;D

 :-DD :-DD :-DD
 

Offline Bruce Abbott

  • Frequent Contributor
  • **
  • Posts: 627
  • Country: nz
    • Bruce Abbott's R/C Models and Electronics
Re: Witch microcontroller should I learn?
« Reply #13 on: February 08, 2016, 02:15:32 am »
I would like to know witch IC is most in demand now
You don't want to know that. The biggest demand for MCUs is in smart cards and automobiles, but few jobs are available in those industries. More likely you will be asked to maintain some legacy gear made by a company with a small market.

Why 8-Bit Microcontrollers Refuse to Go Away
Quote
In an industry where five years represent an eternity, why is an ancient technology so appealing to engineers building state-of-the-art products?

The answer is that 8-bit’s success has little to do with it being, well, 8 bits. For many engineers, it’s about familiarity. That’s why white goods makers employ 8-bit MCUs in refrigerators, freezers, washing machines, dryers, and dishwashers. It’s why automakers use it in window lifts, door locks, mirrors, seat motors, and interior lighting. It’s why tens of millions of smart cards incorporate them, and why countless low-end motors are controlled by them.

“It’s about legacy,” Jim McGregor, founder and principal analyst for Tirias Research, told Design News. “The engineers have been using it so long that they just don’t want to switch their software base.”
With so many different MCUs to choose from it's unlikely that your employer will be using the one you trained on. So the answer is to not lock yourself into one platform, but try out several different chips and IDEs. Then you will have the skills to take on anything they throw at you.

Some people will say you should learn ARM or whatever, but with modern coding practices the core is irrelevant. The biggest hurdles are learning how the peripherals in a specific MCU work (which may vary greatly even within the same family) and how to use the vendor's IDE, frameworks, debugging tools etc. 

Quote
I've only worked with arduino
Arduino is not an MCU. It is a development environment that spans a wide variety of processors and is specifically designed to hide the underlying hardware. That is what makes it so easy to use. If you want a real challenge then take a bare MCU (any MCU) and try to program it from scratch with your own code. Then do it again with a different compiler.
 
 

Offline cdonateTopic starter

  • Contributor
  • Posts: 18
  • Country: br
Re: Witch microcontroller should I learn?
« Reply #14 on: February 08, 2016, 02:18:45 am »
Weren't all the witch microcontrollers burned?  ;D

Well, that was embarassing...  ;D
 

Offline cdonateTopic starter

  • Contributor
  • Posts: 18
  • Country: br
Re: Witch microcontroller should I learn?
« Reply #15 on: February 08, 2016, 02:30:31 am »
I would like to know witch IC is most in demand now
You don't want to know that. The biggest demand for MCUs is in smart cards and automobiles, but few jobs are available in those industries. More likely you will be asked to maintain some legacy gear made by a company with a small market.

Why 8-Bit Microcontrollers Refuse to Go Away
Quote
In an industry where five years represent an eternity, why is an ancient technology so appealing to engineers building state-of-the-art products?

The answer is that 8-bit’s success has little to do with it being, well, 8 bits. For many engineers, it’s about familiarity. That’s why white goods makers employ 8-bit MCUs in refrigerators, freezers, washing machines, dryers, and dishwashers. It’s why automakers use it in window lifts, door locks, mirrors, seat motors, and interior lighting. It’s why tens of millions of smart cards incorporate them, and why countless low-end motors are controlled by them.

“It’s about legacy,” Jim McGregor, founder and principal analyst for Tirias Research, told Design News. “The engineers have been using it so long that they just don’t want to switch their software base.”
With so many different MCUs to choose from it's unlikely that your employer will be using the one you trained on. So the answer is to not lock yourself into one platform, but try out several different chips and IDEs. Then you will have the skills to take on anything they throw at you.

Some people will say you should learn ARM or whatever, but with modern coding practices the core is irrelevant. The biggest hurdles are learning how the peripherals in a specific MCU work (which may vary greatly even within the same family) and how to use the vendor's IDE, frameworks, debugging tools etc. 

Quote
I've only worked with arduino
Arduino is not an MCU. It is a development environment that spans a wide variety of processors and is specifically designed to hide the underlying hardware. That is what makes it so easy to use. If you want a real challenge then take a bare MCU (any MCU) and try to program it from scratch with your own code. Then do it again with a different compiler.


You make very good points. But, after reading, I'm still unsure where to start.

I get what you are saying, but
Quote
try out several different chips and IDEs
kinda leaves me the same way.

Where do YOU think I should start?
 

Offline legacy

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: Which microcontroller should I learn?
« Reply #16 on: February 08, 2016, 02:37:45 am »
Are you 100% sure?

sure, in my experiences (guys on my pre-job interviews) Arduino has always demonstrated to be far from the definition of "good programming", and guys like you are more worried to follow the last dish of the day (which arm CPU ? which compiler ? which vendor ?  :palm: :palm: :palm: :palm: ) instead of caring about important things, and as result their code is usually a fsck crap

no help from you

I don't like the way you have introduced to us, so, don't worry, it's just my 50 cents, and no more help will follow
 

Offline cdonateTopic starter

  • Contributor
  • Posts: 18
  • Country: br
Re: Which microcontroller should I learn?
« Reply #17 on: February 08, 2016, 02:40:33 am »
Are you 100% sure?

sure, in my experiences (guys on my pre-job interviews) Arduino has always demonstrated to be far from the definition of "good programming", and guys like you are more worried to follow the last dish of the day (which arm CPU ? which compiler ? which vendor ?  :palm: :palm: :palm: :palm: ) instead of caring about important things, and as result their code is usually a fsck crap

no help from you

I don't like the way you have introduced to us, so, don't worry, it's just my 50 cents, and no more help will follow

If you thought that I was asking the wrong question, just tell me. I made very clear that I was a beginner, that's why I'm here. But ok, have a nice one.
 

Offline cdonateTopic starter

  • Contributor
  • Posts: 18
  • Country: br
Re: Which microcontroller should I learn?
« Reply #18 on: February 08, 2016, 02:44:27 am »
If you know how to program and how low level thing work, as taught in university second and third years, you should not have problems changing from a chip to another.
Therefore, learn whatever chip you want, and you will be fine. Good programmer can write good code even with Arduino, bad programmer writes shit on every platform.
If one really knows what he is doing, switching from a chip to another should not be painful at all.
So far I've used 8051, AVR, Blackfin+, Cortex M0, M3, M4, MSP430 and embedded x86 (sorry PIC fanboys, no PIC).
They are virtually all the same from a user's perspective, just different performance and peripherals, as long as you are not writing a compiler.

Well, thanks for the info, that's good to know. I'm quite parcial to AVR (probably because I always saw the IC on my Arduino boards). This looks to be the right approach.
 

Offline legacy

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: Which microcontroller should I learn?
« Reply #19 on: February 08, 2016, 02:46:25 am »
Good programmer can write good code even with Arduino

even if arduino is good for rapid prototyping, there are at least three negative aspects
1) arduino's examples, libraries, etc, are (just to use an euphemism) usually not so good
2) arduino call the programming "sketch" instead of "code"
3) arduino doesn't have the concept of "module"
 

Offline cdonateTopic starter

  • Contributor
  • Posts: 18
  • Country: br
Re: Which microcontroller should I learn?
« Reply #20 on: February 08, 2016, 02:53:21 am »
Good programmer can write good code even with Arduino

at least, three negative aspects
1) even if arduino is good for rapid prototyping, examples, libraries, etc, is (just to use an euphemism) usually not so good
2) arduino call the programming "sketch" instead of "code"
3) arduino doesn't have the concept of "module"

Well, since I can use .c, .cpp and .h in Arduino sketches I can do anything that is made available by the compiler. I don't use the Arduino IDE (a joke, in my opinion).

Don't dismiss a programmer just because he only ever worked with Arduino. Take a look at http://www.visualmicro.com/. Using Arduino to blink a LED is very different than creating a wireless array of sensors.
 

Offline legacy

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: Which microcontroller should I learn?
« Reply #21 on: February 08, 2016, 03:01:50 am »
1. If it works, it is good. That's my rule of FAST prototyping. I do not use Arduino in products.

yes, and forget to be employed in avionics, for example
 

Offline legacy

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: Which microcontroller should I learn?
« Reply #22 on: February 08, 2016, 03:04:32 am »
3. You can always write 100 functions in a single .c file, like sqlite3 (I know it is concatenated with a script, you can do so in Arduino as well).

oh, duck :palm: :palm: :palm:
 

Offline zapta

  • Super Contributor
  • ***
  • Posts: 6190
  • Country: us
Re: Which microcontroller should I learn?
« Reply #23 on: February 08, 2016, 03:33:38 am »
3) arduino doesn't have the concept of "module"

Can you explain?

Since Arduinos are programmed in C++ you can modularized in several ways, separate .h files,  namespaces,   classes and even use the arduino library facility.

OP, if you want to show experience that will help you get a job, I would go with ARM. Your employer will assume that you can also learn AVR, PIC and the like. It doesn't matter much which vendor you choose, just pick a popular dev board and go from there.
 

Offline Morgoroth

  • Regular Contributor
  • *
  • Posts: 123
  • Country: cl
Re: Which microcontroller should I learn?
« Reply #24 on: February 08, 2016, 04:24:06 am »
Important stuffs you must learn are things commonly used for all MCU (not only ARM), and are all, or mostly all, different for each chip, and must be managed by hand (the 'macho' way) or through IDE (ladies way).

Core is not so important, because the vendor will give you libraries with all complicated details to use the features of the chips, learn the 'basic' and then involve with more complicated details over architecture.

libraries managment : each time you select a MCU you will have an SDK (a bunch of library) and you will configure your IDE or Makefile to take that library and NO OTHER, Arduino have a 'ready to go' library and doesn't count. Btw, Arduinos chips are OLD, useless if you have demanding requirements, I mean, libraries are ok (a bit bugged), just try a serial implementation using 3 UARTS at once at just medium speed with arduino mega, let see how many packages you will loose without notice (happened to me). Once you are familiarized how libraries work you will know what to search on any IDE for any MCU, for any core architecture.

OS integration : at short time to work programming MCU you will realize that the control of schedules over different tasks could become a nightmare and the effort to integrate an OS like FreeRTOS pay the price, so don't wait to suffer and learn it asap. Atmel have a mess in this moment with his IDE and OS integration (personal opinion), Freescale is OK using kinetis design studio (free tool) but the documentation is just shit, so be away from there if you don't want to be frustrated since beginning. I suggest to use some texas instrument MCU for this, they have a bunch of examples, documentation is ok and the have a free IDE (eclipse based) pretty similar with what you could found on real work environment, if not same tool.

Programming tips: this is a matter of experience, but there are some companies that have better practices. Again, for me, texas instrument is a good start point, in their codes you found handy macros and good practices related to variables management, structures and how they use it, etc etc..., in time you will realize that is very important and save you a lot of extra work.

Protocols: Arduino have many 'ready to go' libraries for protocols that you will need to modify in real life, so I suggest to take some sensors and remake basic libraries like i2c and SPI (on any MCU), do it once and that knowledge will be useful forever. UARTS are not so easy as you could think at beginning, buffers are tricky and very related to architecture (registers and stuffs), and could be too complicated.

Asynchonic stuffs : real life is asynchronic (doesn't means multitasking), read and learn how to manage async stuffs, UARTS are a very handy async projects to start. Then jump to some DMA project.

I think I covered the basics.

http://www.ti.com/tool/msp-exp432p401r

Good luck.



----------------------------------------------------------
If works, doesn't means it is right.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf