How to choose the microcontroller to use? Atmel's ATmega or the ARM ones?

Good evening,

Can anyone who has experience with various microcontrollers share your thoughts on what brand is generally good for what types of purposes?

I've heard of good things about ARM but have not used their mcus before. Am curious to find out more and see if it is worth changing from my current ATmega328 to an ARM mcu.

Thank you very much.

Honestly, they are less well documented and I would stay with the AVR series unless you have a really good reason to change.

icynjuve: Can anyone who has experience with various microcontrollers share your thoughts on what brand is generally good for what types of purposes?

Unless you want a 100-page essay, you define the purpose.

You may as well say "what food is good for what types of purpose?", or "what car is good for what types of purpose?".

Good points

ARM is powerful AVR is simple

Bad points

AVR is simple ARM is powerful

As to which is best? Which is best an apple or a spade? It depends on whether you are hungry or need to dig a hole.

They are both best in different applications. What do you want to do?


Rob

Thanks guys.

What I’m building is a hardware interface to extract data from the car’s OBDII port then send the data to perhaps a smartphone via Bluetooth. It will also store the data in a SD card. I may also want the hardware interface to convert the raw hex data from the OBDII port into useful information based on formulae specified by the regulators.

So far, the ATmega328 has mostly been able to serve this purpose except for the shortcoming of only one UART. But as I extract more data, I’m thinking that there may be a need to migrate to a more powerful microcontroller.

"the shortcoming of only one UART" So go with a '1284 family chip. Dual UARTs, lots of SRAM, plenty of memory. Available in easy to use DIP package. See my signature link for some examples.

I'm a big fan of the 1284 chip and would also recommend it as long as raw grunt it not what you need because it's no faster than a 328..

But as I extract more data, I'm thinking that there may be a need to migrate to a more powerful microcontroller.

It depends on what you are doing with this data, if your current program is doing OK but you will need more RAM to store data then the 1284 would fix that. And if you are currently bit banging one serial connection the 1284 would also fix that and free up a lot of CPU time.

But if you are performing FFTs then an ARM would be better.

From what I can gather you are not doing that so a "bigger and better 328" (AKA 1284) may just do the trick and save you form learning a whole new chip/tool chain.

Now if the Due ever comes out that may be a different story.


Rob

icynjuve: Thanks guys.

What I'm building is a hardware interface to extract data from the car's OBDII port.

Here is that much. http://code.google.com/p/opengauge/wiki/OBDuinoDiagram#ISO_Diagram

You will have to work out your own bluetooth. Elecktor (spelling?) magazine sells a kit with the bluetooth OBD2 and some other choices.

Thanks all for your feedback, very much appreciated! :slight_smile: