Author Topic: Which microcontroller to start?( for beginner with my needs)?  (Read 20242 times)

0 Members and 1 Guest are viewing this topic.

Offline elissaios

  • Newbie
  • Posts: 4
Which microcontroller to start?( for beginner with my needs)?
« on: November 09, 2012, 03:09:11 pm »
Hallo,

i am new here,I am seaching for a 8 bit mC to start  and a kit .i have been searching for 5 days and i have spent many hours searching in forums,youtube and kits.

i want to buy a uC because i like it and i think it will help me understand how a computer works in low to high level and how it co-opperate with the peripherals.So i want to learn both assembly and c.

I know about avr,pics,it .i dont care so much which of them i will learn.The most important feature that i want to have is a great tutorial with step by step what to do,how to start,sample code in assembly and c,exaples.I know both avr and pic have many examples but i didnt find any excelent tutorial how to start step by step.So i will buy the uC which can find how to study and learn because in my university we learn only theoritical things.So if you can suggest me any kit or tell me how you start to learn.

i dont like arduino because its so abstract and all tutorials is about "wiring" and not in c and assembly
I study in university computer enginiring and i have basic knowledge in c programming,electronics,pc architecture and logic design but i have never use any microcontroller.

If you help me to find a solution i would be very grateful

« Last Edit: November 09, 2012, 05:58:25 pm by elissaios »
 

Offline firewalker

  • Super Contributor
  • ***
  • Posts: 2355
  • Country: gr
Re: Which microcontroller to start?( for beginner with my needs)?
« Reply #1 on: November 09, 2012, 03:23:40 pm »
You want a development board or just a plain mcu+programmer+breadboard? Do you use Windows or Linux? What is your target price?

It doesn't really matter witch one you choose to start with. Once you get used to code C on a micro you can interchange between families and vendors.

I would say that PIC and Atmel is the way to go if you need a big amount of tutorials. Personally I started with Atmels's AVR family just because it was more easy (for me) to use it under GNU/Linux (my OS) than PIC.

If you weren't able to find something that cover your needs in five days maybe you should consider buying a book for the subject.

Someone had mentioned that http://www.mikroe.com/ is a good place to begin. It offers tutorials, book, kits, etc.

Alexander.
« Last Edit: November 09, 2012, 03:31:50 pm by firewalker »
Become a realist, stay a dreamer.

 

Offline elissaios

  • Newbie
  • Posts: 4
Re: Which microcontroller to start?( for beginner with my needs)?
« Reply #2 on: November 09, 2012, 04:06:46 pm »
i have dual boot linux and windows.(i use both of them).

i would prefer  mcu+programmer+breadboard but if there is a very good development board with a nice guide how to start out i could buy.

IF i want to buy book first i have to find what uC i will use.
The most money i can give is 90 euros if i am sure it would be ok.
ANy ideas of how could i start or how you started with uC's?



« Last Edit: November 09, 2012, 04:51:04 pm by elissaios »
 

Offline Ferroto

  • Frequent Contributor
  • **
  • Posts: 289
  • Country: ca
Re: Which microcontroller to start?( for beginner with my needs)?
« Reply #3 on: November 09, 2012, 05:44:25 pm »
You may want to start off with the Arduino UNO. It's the most user friendly MCU platform I've used with a huge userbase and tonnes of free code avaiable on the net. Just remember to get the one with a socketed DIP MCU (some have surface mount MCU's). This will give you alot of flexability if you want to take the chip off board and use it in a finished product.
 

Offline AndyC_772

  • Super Contributor
  • ***
  • Posts: 3543
  • Country: gb
  • Professional design engineer
    • Cawte Engineering | Reliable Electronics
Re: Which microcontroller to start?( for beginner with my needs)?
« Reply #4 on: November 09, 2012, 05:55:50 pm »
Grab yourself a PICKIT 3, or perhaps the PICKIT 3 "debug express" kit which includes a target board to play with, and head on over to Gooligum Electronics. Their tutorials are excellent.

They also now have their own development board:
http://www.gooligum.com.au/devboards/base-mid/base-mid.html

Offline AndreasF

  • Frequent Contributor
  • **
  • Posts: 251
  • Country: gb
    • mind-dump.net
Re: Which microcontroller to start?( for beginner with my needs)?
« Reply #5 on: November 09, 2012, 07:00:24 pm »
The TI Launchpads (the original MSP430 variants) are also very good for beginners who want to dive a little deeper than the Arduino. You have the programmer and debugger directly on board, can program a variety of different microcontrollers with it, which are all socketed in case you want to use them stand-alone later, and the development environment it comes with is decent as well.
my random ramblings mind-dump.net
 

Offline mrflibble

  • Super Contributor
  • ***
  • Posts: 1971
  • Country: nl
Re: Which microcontroller to start?( for beginner with my needs)?
« Reply #6 on: November 09, 2012, 09:50:48 pm »
Yeah, them MSP430 launchpad is a nice start. Code Composer Studio is easy to use, and when just getting used to things the Grail configuration plugin is nice. No substitute for actually reading datasheets and such, but to I found it useful to get started quickly. So if you want cheap and easy enough, MSP430 would be a good one.
 

Offline Simon

  • Global Moderator
  • *****
  • Posts: 14426
  • Country: gb
  • Did that just blow up? No? might work after all !!
    • Simon's Electronics
Re: Which microcontroller to start?( for beginner with my needs)?
« Reply #7 on: November 10, 2012, 01:03:03 pm »
I'm not well up on the support for AVR/atmel, I started with pics and mikroBasic but then went microC and now I have managed to use mplabx from microchip to program in C using the Hi-TECH compiler.I use a pickit2 still trying to work out why my pickit3 won't work.

I started with 12F615's and 16F88, now I'm using 16F883 and 16F887 that mickroE use as a base.

I always prefered a breadboard and programmer, I tried the arduino but didn't even bother (it's up for sale now)
 

Offline madires

  • Super Contributor
  • ***
  • Posts: 4950
  • Country: de
  • A qualified hobbyist ;)
Re: Which microcontroller to start?( for beginner with my needs)?
« Reply #8 on: November 10, 2012, 01:51:27 pm »
Get inexpensive kits for both worlds: ATmega and PIC. Since you already got some basics of CPU/MCU architecture you should be able to understand the datasheets, guides and notes provided by Atmel and Microchip. Check your local book store specialized in technical literature for books matching your needs. Start with assembler and you'll understand the differences between ATmega and PIC.

PS: I've started with the venerable 68HC11 and still got my first dev kit.
 

Offline mrflibble

  • Super Contributor
  • ***
  • Posts: 1971
  • Country: nl
Re: Which microcontroller to start?( for beginner with my needs)?
« Reply #9 on: November 10, 2012, 02:33:32 pm »
Start with assembler and you'll understand the differences between ATmega and PIC.

Or skip assembler altogether and enjoy the faster time to completion for a first project. ;-) Just get a decent C compiler and use that, IMO that will get you going faster than the asm route. Then again, you didn't advocate using asm. You pointed out that (and I am paraphrasing here) assembler on PIC sucks donkeybawls and on AVR it's fairly doable. I concur.
 

Offline Simon

  • Global Moderator
  • *****
  • Posts: 14426
  • Country: gb
  • Did that just blow up? No? might work after all !!
    • Simon's Electronics
Re: Which microcontroller to start?( for beginner with my needs)?
« Reply #10 on: November 10, 2012, 02:40:59 pm »
assembler is a waste of time unless you have a specific need. I wasrted 2 years not doing MCU's and nearly abandoned electronics all together because I dared not sin. Then I used a bit of mickrobasic and finally ended up on hitech C

I am actually wondering, what should I do if i wanted to look at AVR/atmel ? the website is as clear as mud and don't even cover the ground !
 

Offline madires

  • Super Contributor
  • ***
  • Posts: 4950
  • Country: de
  • A qualified hobbyist ;)
Re: Which microcontroller to start?( for beginner with my needs)?
« Reply #11 on: November 10, 2012, 02:54:47 pm »
assembler is a waste of time unless you have a specific need. I wasrted 2 years not doing MCU's and nearly abandoned electronics all together because I dared not sin. Then I used a bit of mickrobasic and finally ended up on hitech C

If you just want to get the job done, that's fine. But if you try to understand how MCUs work assembler is the best way to start. One doesn't need to become an assembler guru :-) You'll do C anyway later on.

Quote
I am actually wondering, what should I do if i wanted to look at AVR/atmel ? the website is as clear as mud and don't even cover the ground !

Really? I got no problems to find docs and stuff. There are websites much worse :-)
 

Offline Simon

  • Global Moderator
  • *****
  • Posts: 14426
  • Country: gb
  • Did that just blow up? No? might work after all !!
    • Simon's Electronics
Re: Which microcontroller to start?( for beginner with my needs)?
« Reply #12 on: November 10, 2012, 02:57:31 pm »
well I finally figured out where to find their software for which I had to register. I'll have a look.

Are AVR simpler register wise, that is the bit that bugs me on pics, I generally take so long getting all the correct registers setup
 

Offline madires

  • Super Contributor
  • ***
  • Posts: 4950
  • Country: de
  • A qualified hobbyist ;)
Re: Which microcontroller to start?( for beginner with my needs)?
« Reply #13 on: November 10, 2012, 03:28:46 pm »
Are AVR simpler register wise, that is the bit that bugs me on pics, I generally take so long getting all the correct registers setup

Yep, that's one of the main differences with a major impact on the MCU performance and the way of coding. Besides the datasheets and family overviews Atmel provides nice application notes about using all the different parts/functions of each MCU family. You might also have a look at an open hardware project as a starting point (hint for ATmega: http://www.mikrocontroller.net/svnbrowser/transistortester/ :-)
 

Offline Simon

  • Global Moderator
  • *****
  • Posts: 14426
  • Country: gb
  • Did that just blow up? No? might work after all !!
    • Simon's Electronics
Re: Which microcontroller to start?( for beginner with my needs)?
« Reply #14 on: November 10, 2012, 04:36:06 pm »
well providing I can code them in C without too much havoc I'd be happy. At the time i was told that PIC had more support, maybe atmel caught up.
 

Offline RCMR

  • Frequent Contributor
  • **
  • Posts: 405
Re: Which microcontroller to start?( for beginner with my needs)?
« Reply #15 on: November 10, 2012, 08:38:17 pm »
As others have said -- use C as your language.

By doing that, the individual architecture of each MCU becomes far less relevant.

You'll still have to fart around setting the right configuration bits to ensure you've got an I/O line operating as a digital connection rather than an ADC or an SPI port -- but other than that, using C will allow you to ignore the time-wasting details as to how many registers there are, whether memory is banked, etc, etc.  Ultimately, most of today's C compliers will produce pretty damned good code and if you plan to program MCUs for money then C is way more productive.

By going the C route, the choice between AVR or PIC becomes far less of an issue -- you can just select the best horse for the particular course you're trying to negotiate.

It'll also make the transition to more advanced MCUs such as the ARM-based families easier as well.
 

Offline Kremmen

  • Super Contributor
  • ***
  • Posts: 1283
  • Country: fi
Re: Which microcontroller to start?( for beginner with my needs)?
« Reply #16 on: November 10, 2012, 08:42:45 pm »
well providing I can code them in C without too much havoc I'd be happy. At the time i was told that PIC had more support, maybe atmel caught up.
Havoc? Assembler is the one causing havoc, not C or higher level languages. Forget the registers and assembler already  :P. Too much is made of assy and knowing every last bit of the HW architecture of a controller. Sure, knowing it all won't hurt, but almost always it is useless knowledge that you don't need for anything. What you do need to understand are the embedded peripherals and how to control them from C or C++ source level. Not a big deal as it is just a bunch of registers or memory addresses, IMO reasonably well documented in Atmel datasheets for each processor.
My recommendation: leave assembler and migrate over to C++ as fast as possible. That lets you design the program much closer to the problem space instead of wading in the spurious detailology of the particular processor implementation. What little assy you may need (so far, i haven't needed any) you can pick up quickly. At least with AVR-gcc there is no reason not to write in C++. One caution though - it looks like Atmel Studio 6 + JTAGICE3 does not support C++ yet. For some strange reason... No problems with Studio 5 and JTAGICE2 though.
Nothing sings like a kilovolt.
Dr W. Bishop
 

Offline Simon

  • Global Moderator
  • *****
  • Posts: 14426
  • Country: gb
  • Did that just blow up? No? might work after all !!
    • Simon's Electronics
Re: Which microcontroller to start?( for beginner with my needs)?
« Reply #17 on: November 10, 2012, 08:46:44 pm »
well providing I can code them in C without too much havoc I'd be happy. At the time i was told that PIC had more support, maybe atmel caught up.
Havoc? Assembler is the one causing havoc, not C or higher level languages. Forget the registers and assembler already  :P. Too much is made of assy and knowing every last bit of the HW architecture of a controller. Sure, knowing it all won't hurt, but almost always it is useless knowledge that you don't need for anything. What you do need to understand are the embedded peripherals and how to control them from C or C++ source level. Not a big deal as it is just a bunch of registers or memory addresses, IMO reasonably well documented in Atmel datasheets for each processor.
My recommendation: leave assembler and migrate over to C++ as fast as possible. That lets you design the program much closer to the problem space instead of wading in the spurious detailology of the particular processor implementation. What little assy you may need (so far, i haven't needed any) you can pick up quickly. At least with AVR-gcc there is no reason not to write in C++. One caution though - it looks like Atmel Studio 6 + JTAGICE3 does not support C++ yet. For some strange reason... No problems with Studio 5 and JTAGICE2 though.

you didn't read my posts correctly, I am using C, I have used mikroC and hitech C. But I have to dissagree on the registers, you still have to mess with them and in the case of hitech C they couldn't be assed to write libraries to handle PWM and ADC modules which are probably the most popular periferals. So I still have to play with registers, and as for code interchangeability you have to hope they gave registers the same names or your buggared.

I'm just installing the AVR software and will have a poke at it. Anyone car to recommend a programmer ?
 

Offline mrflibble

  • Super Contributor
  • ***
  • Posts: 1971
  • Country: nl
Re: Which microcontroller to start?( for beginner with my needs)?
« Reply #18 on: November 10, 2012, 09:23:25 pm »
I suspect Kremmen meant the cpu registers as opposed to peripheral registers. So yes for pwm and such you still need to play with peripheral registers, but no you do not need to mess with the cpu registers. The latter is taken care of by your favorite C compiler.
 

Offline Simon

  • Global Moderator
  • *****
  • Posts: 14426
  • Country: gb
  • Did that just blow up? No? might work after all !!
    • Simon's Electronics
Re: Which microcontroller to start?( for beginner with my needs)?
« Reply #19 on: November 10, 2012, 09:26:39 pm »
so why do i have to write the configurations word(s), but they have more use than peripheral registers, if in mikroC I do an ADC read with the library I still have to tell the stupid compiler that yea, actually, that input was meant to be an input AND an analogue one! pointless.

But I would like to be able to tell it the speed I want.
 

Offline mrflibble

  • Super Contributor
  • ***
  • Posts: 1971
  • Country: nl
Re: Which microcontroller to start?( for beginner with my needs)?
« Reply #20 on: November 10, 2012, 10:07:47 pm »
Quote
so why do i have to write the configurations word(s), but they have more use than peripheral registers,

I dunno, you tell me. :P Lack of decent libraries?
 

Offline Simon

  • Global Moderator
  • *****
  • Posts: 14426
  • Country: gb
  • Did that just blow up? No? might work after all !!
    • Simon's Electronics
Re: Which microcontroller to start?( for beginner with my needs)?
« Reply #21 on: November 10, 2012, 10:08:38 pm »
are the copy cat avr programmers any good ? ebay is flooded with them
 

Offline elissaios

  • Newbie
  • Posts: 4
Re: Which microcontroller to start?( for beginner with my needs)?
« Reply #22 on: November 11, 2012, 12:50:10 am »
Thanks for all the answers.

FInally ,
Finally,I found a guy at university and he will help me.He has an arduino but he dont use the language "wiring".He programs it in c.So its the same like he use atmega 328p.He is using bootloader to program it.

but I want to buy a avr programmer/debugger because i will buy more that one ?C's.?lso i want to buy an lcd 16x2.
Could you suggest me any good,cheap and popular programmer/debugger and a lcd 16x2?

Not a special lcd but a common because i want to find tutorials :)
 

Offline PuterGeek

  • Regular Contributor
  • *
  • Posts: 88
  • Country: us
    • SolutionsPLUS engineering
Re: Which microcontroller to start?( for beginner with my needs)?
« Reply #23 on: November 11, 2012, 01:59:53 am »
I would vote for an ARM Cortex processor. ARM MPUs are available from lots of different companies and are found in almost all cell phones and tablets. They are also available as embedded hard processors or as soft processors in FPGAs.

Very inexpensive boards with full IDEs are available include the TI Stellaris LaunchPad and NXP LPCXpresso series. The LaunchPad has particularly good learning support and the LPCXpresso is pretty good also.

The LaunchPad is $12.99 direct from TI (http://www.ti.com/ww/en/launchpad/stellaris_head.html) and is a little like Arduino with the BoosterPack (like Arduino shields).

There are several different LPCXpresso boards that start about $30 and can be bought from various distributors such as Digi-Key (http://www.digikey.com/product-search/en/programmers-development-systems/general-embedded-dev-boards-and-kits-mcu-dsp-fpga-cpld/2621773?k=lpcxpresso).

More of a leap from a learning standpoint, but you can also find inexpensive ful featured development boards like the Land Rover (http://www.ebay.com/itm/ARM-NXP-LPC1768-Cortex-M3-KIT-JLINK-On-board-AVR-DSP-MSP-C80h51-FPGA-STM32-/110924495694?pt=Art_Prints&hash=item19d39d7b4e) which has USB, Ethernet, color LCD, serial ports and CANbus. It is also available with a larger touchscreen LCD.

If you use the ARM CMSIS (Cortex Microcontroller Software Interface Standard) your code should be portable to any of the various Cortex processors (Actel, Atmel, EnergyMicro, Freescale, TI, etc.). A full list of ARM MPUs is here (http://www.keil.com/dd/search_parm.asp).

Open source tools are available in addition to the vendor supported tools. The Eclipse CDT IDE (http://www.eclipse.org/cdt/) is the basis of vendor tools like TI's CodeStudio as well as major commercial IDEs like CodeSourcery, CodeRed, IAR and many more. GCC (GNU Compiler Collection) is the basis for the tools I listed plus many more and ARM supports a free distribution (https://launchpad.net/gcc-arm-embedded) that is updated regularly.

Anyway, my 5 cents (inflation).
 

Offline RCMR

  • Frequent Contributor
  • **
  • Posts: 405
Re: Which microcontroller to start?( for beginner with my needs)?
« Reply #24 on: November 11, 2012, 05:52:37 am »
I'm still waiting for my STM32 Discovery board to arrive so haven't looked but how do the range of useful libraries for the ARM chips compare to those which are readily available (and built in to compliers such as the Hitech C) for PIC and the like?

ie: if you want to read an ADC,  do some simple processing on the numbers and then write them to a QVGA LCD -- how much of the code will simply be library calls and how much will be stuff you have to write (reinvent) yourself for the ADC/LCD routines?
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf