Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Choosing beginning MCU platform - Need Help!

Status
Not open for further replies.

ctown30

Newbie level 3
Joined
Aug 9, 2012
Messages
4
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,349
Hello everyone, I am looking to design a motor controller and I am having a hard time choosing an MCU platform (PIC, ARM, AVR, etc). I have looked at using a dsPIC33E/F, an AVR UC3B, and several mcu's based on the Cortex M3/4, as well as a couple others. I am fairly new to the MCU world and am wondering which is the best platform to choose? I do not want this to be a PIC vs ARM vs AVR thread as there are many of those out there already. The main reason I ask is because I have a couple other projects I am considering that require audio, video, and possibly embedded OS's which I feal is more suited to the ARM architecture. So I guess my main question is how easy is it to switch from a PIC/AVR/etc to the ARM architecture, or would you advise to start with an ARM mcu for the motor controller and just get real good with one platform? Thanks for your advice!
 

better go for 8051 / avr. these are easy to learn
 

Re: beginners ask for help
Tutorial (15 Chapters)
**broken link removed**

Tutorial (4 Chapters)
**broken link removed**

Tutorial (7 Chapters)
**broken link removed**

Tutorial (4 Chapters)
**broken link removed**

What is a Microcontroller?
http://www.pictutorials.com/what_is_microcontroller.htm

8051 Tutorial
**broken link removed**

AVR Tutorial
http://www.avr-tutorials.com/

You can try with this small uC PIC12F675
**broken link removed**


First try some easier circuit and smaller uC. Try to make some LED clock, termometer or voltmeter.

Because You say, you are beginner in uC world, I suggest to have at least two uC programmers, one for PIC (Microchip) and second for AVR (Atmel). Making of thise two programmers can be DIY exercise and intro in this uC area.

and for reference contact our good friend tpetar
 
Last edited by a moderator:
  • Like
Reactions: tpetar

    tpetar

    Points: 2
    Helpful Answer Positive Rating
if you are a bare beginner then go for an arduino, familiarize with that,
then go for pic and or avr,
compilers : mikro C pro for avr or pic (have to buy)/ avr studio (freeware, powerful), MPLAB for PIC

then finally to ARM keil ARM compiler.
 

I suggest you to go for PIC microcontrollers. Either go for PIC16F and PIC18F, both series are good and easy for beginners.
 

Wow thanks everyone for your quick responses! This is a great forum and being new its nice to see so many people helping out so quickly.

I see most of you are recommending that I start with an AVR/PIC type platform to learn on as they are easier to do so. I guess my question then becomes what is the transition like if I would learn the PIC/AVR platform and then later go to the ARM platform. Does a lot carry over or not? Also, if I feel like I may need to go to an ARM platform later, why not just start with it (IE no need to learn new IDE, get new programmers, etc)? Sorry if it is a dumb question.

To be more specific to the motor controller, the reason I listed dspic33, avr uc3b, and cortex m3/4 controllers is because I am going to be driving an AC induction motor/BLDC motor and need 6 pwm outputs for 3 phase H/L, and i need ADC for hall sensors, and the controller needs to be able to handle vector control algorithems such as clarke and parke. The controller is also going to need to be able to run a bootloader for in-field updates. Therefore this rules out the 8bit and lower end 16 bit mcu's. Also, there is a lot of online documentation/application notes and code online for the above mcu's.

Again, thanks for your input!
 

The ARM microcontrollers will be more powerful than the PIC/AVR alternatives and they are not expensive either but I'm not sure how easy it will be to learn an ARM based mcu as your first microcontroller, they are fairly complicated compared to PIC/AVR I think.

On the other hand maybe it will be more difficult to learn PIC/AVR and then learn another ARM based mcu (I mean that you will have to learn two different things) or maybe PIC/AVR can't cope with what you are trying to do so you have to proceed with ARM anyway.

You said that you intend to use an embedded OS and this makes me think that you will probably need to go toward the more powerful ARM

Alex

- - - Updated - - -

By the way, the majority of ARM based mcu come is small SMD packages (compared to DIP for PIC/AVR) so I don't know if this will be a problem for you too when you want to create and solder PCB (if you don't buy ready dev boards)
 


Alex, what you described is really my question, you just did a better job of explaining it I believe. I feel like I will need to learn the ARM platform for another project that I will be working on later down the road, so I don't know if it would be best to learn two different platforms or just take on the steeper learning curve of the ARM family. There is a lot of information on using the dsPIC30/33 in a motor controller which would make the learning curve/development fairly easy (plus an ARM mcu might be a little overkill anyways). However, I am hoping to use a bootloader for in-field updating as well as vector control of the motor, which makes low end ARM processors decent contendors as well (some good online documentation as well but not as much as the dsPIC family). So I am hoping to get some input from you guys with experience on what is the better route (IE learn 2 platforms and start with AVR/PIC, or try to learn ARM right away)? And if you feel like learning the two platforms is the best method, how is the transition from one toolchain to another and how much do they relate?

As far as packaging is concerned, I am fine with the small SMD packages as I am hoping to make a DIY reflow soldering oven out of a convection toaster oven (a lot of instructions/tutorials online). Also to begin with, I will probably buy premade development boards to ease the learing/developmet process.

Horace, I have read A LOT (several days worth lol) of online motor control design applications for each platform (PIC/AVR/ARM). I understand what mcu's/dsp's would be best suited for my application on the different platforms. I just don't know if it is best to start with one platform (ex. PIC) when I'm almost certain that I will have to go to a more advanced platform such as ARM later on. I appreciate the help and the links though.
 

I'm not sure what to suggest.
My first contact with programming was with basic in very old Spectrum and Amstrad machines and then gw-basic in the first PCs.
Then I entered more serious programming with Dephi (pascal) and I only learned C to use it with AVRs but I was already familiar with the programming logic so this made it easier to learn and use (embeded) C and learn the AVRs too.
I have only moved to ARMs recently after using AVR for a few years, they take some getting used to and some of the peripherals are fairly complicated but if you give it time you will get familiar with using them.

Are you currently familiar with C or other programming languages?
If not I'm not sure how easy it will be to learn a programming language and a complicated mcu at the same time.
In either case I would suggest you stay away from Arduino, it is a fairly easy tool (easier than low level C but with some limitations too) but it will make it hard for you to move in any other platform.

I'm not sure if I had to choose now if I would start directly with ARM or AVR as I did, this is a matter of circumstances when you make that decision or project needs etc.
The ARM based mcu, especially the M3 cores are very hot at the moment and used in many projects.

Alex
 

Alex, Thanks for sharing your experiences and insight. I currently have a pretty entry level knowledge of C/C++ but have always wanted to learn the language a lot more.

At this point I am leaning more towards the dsPIC33 if i go the PIC/AVR route first which is more assembly language oriented (although I know there are C compilers out there for the dsPIC). I feel like trying to learn assembly for the PIC and then later going to C for ARM would prove to be a more difficult path than just going to ARM right away and continuing to develop my C language knowledge. Also, ARM is beginning to provide a very wide range of MCU's now with the M0's all the way up to the A15's. So I feel like ARM mcus are the most versitle and scaleable among the others, and therefore may be the best platform to learn first even though the learning curve is steeper. Also, TI's Stellaris MCU's are very appealling for my motor controller application. They have a built in boot loader which I was hoping to incorporate, specific motor control features, as well as a host of other options. Again though this may be a bit of overkill and I may be best suited going the dsPIC33 route first.

Sorry if alot of these questions are just personal preferance; I know at some point I'm just going to have to make a decision and run with it. I was just hoping to figure out what was my best option before I dive in head first. So let me know what you guys think. Thanks!
 

I don't think there is a reason to complicate things by using asm even if you decide to use pic/avr, you can achieve equally good results with C with less effort.

Alex
 

I think you need to draw up a specification of the system so you can determine suitable MCUs with sufficient memory, peripherals, etc
make sure you leave some extra capacity - applications tend to expand their requirements!
also libraries to support your application

are you intending to design a PCB yourself? unless you a going to make a number of systems it is usually simpler and much cheaper to adapt development boards, particularly as many have expansion sockets to enable prototype boards to be attached.

I agree with alexan_e, I would not use ASM unless particular sections of code was time critical and then I would go for a faster MCU
 
  • Like
Reactions: tpetar

    tpetar

    Points: 2
    Helpful Answer Positive Rating
At this point I am leaning more towards the dsPIC33 if i go the PIC/AVR route first which is more assembly language oriented (although I know there are C compilers out there for the dsPIC).
You can download MPLAB or MPLAB X from Microchip's web site plus a free version of the dsPIC C compiler (no time or memory limitations but most code optimizations are restricted)
**broken link removed**


have you had a look at Microchip's "CE003 - Driving a BLDC with Sinusoidal Voltages Using dsPIC30F"
https://www.microchip.com/downloads/en/DeviceDoc/CE003_Sinusoidal_BLDC_010908.zip
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top