which new type of the Microcontrollers to learn?

194 posts / 0 new
Last post
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

which one of the new Microcontroller types would be your preferred to upgrade from the "getting old" AVR ATmegas?

ok after creating quite a couple of project with the AVR Codevision i am getting quite annoyed with it, the CV compiler comes with lots of software bugs, for example at my latest job i put the real time clock reading function (Ds107 IC) at one of the timer's interrupt service, the interrupt would occur every 10ms for the execution of the disk_timerproc(); needed for the SD-MMC memory, also a counter parameter would got increase up to 500 so every 5 seconds once the time should be read from the clock Ic and put on the LCD.

now at another part of the program there was a sub function to set the time, at its beginning i put the sentence to stop the timer from operating in order to the obvious reason.

now guess just what happened, one of the 4x4 matrix keyboard's rows stopped functioning, it took me two days to realize that its the side effect of the interrupt routine's stop causing one of the pins at another port to cease reading!!! as soon as i removed the part which would ban the interrupt sub routine event every thing came back to normal! Now very seriously such a NS compiler bug would be quite a reason to get really mad.

Another much annoying problem with the CV occurs when writing the text at the LCD displays, I once made a project with the SIM900 GPRS module, a graphic keyboard would appear on the LCD and the user could type his SMS with its touch, entering the number and pressing the send button and after the sending procedure finishes the program would return to the beginning line (lcd_clear). And there goes the problem. Some random texts from the previous run orders appear on the screen with no reasons or commands to be shown. So I have to press the hardware restart button.
Exampling only two of the faced problems, now its clear for me that the Codevision sucks.

Also the Atmega series are getting old, there is an increasing interest at the new Microcontrollers around me. It seems that I also need to move on to one of the more recent ones.

Now there are several candidates to be assumed, the atXmega, DsPIC, ARM7, ARM9, ARM11, Cortex-A15 and its similar. Also all of these have come with several Compilers. While all are based on C or C++ yet again they have some differences.

I already reclined to begin working with the Xmega series for several reasons:
1- these are not user friendly. At no applications I would ever need to utilize the various functionalities of the 24 port control registers, they have extended the capabilities beyond the needs. It will take quite a long to study all of its hardware design.
2- the AVRs are all very sensitive to the environmental noise and power supply distortions.
3- the ATMEL does not seem to be very interested on supporting the users with technical support. Its even hard to find most of the header files.

Right now my best candidate to begin work with is the DSpic30f4013 with the Mikro C compiler. The DSpic series are designed considering the utilizers desire to have a easy to learn chip, these are actually simpler than the Atmegas. Also with a small internal DSP engine makes them ideal for simple mechatronics applications. Also the PIC architecture is almost immune to noise and the microchip company supports the users with hundreds of forums.
Disadvantage: the clock frequency is only up to 40Mhz which is very low with respect to the ARMs.

There are also others, the companies here show great interest at the ATSAM7s256 IC, apparently with the IAR compiler but I am not sure if it fits my applications the best. Also I am afraid to put a whole year to learn a new one and then see that the situations are changing to another one's favor. I need to begin studying one which would not become out of date any time soon. And which compiler with no annoying insane bugs like the explained above.

So after this long story here is what I ask for:
Which microcontroller to move on to? With which compiler?
Presumed conditions:
1- Easy to learn, a user friendly architecture with no unnecessary expansions.
2- Wont get out of date any time soon.
3- A compiler as similar to the CV as possible, of course with no such malfunctionings.
4- Made for Robotics applications (mechanism analysis, machine vision operations).

And sorry for the long story. I talked a lot but I needed to speak up myself!

Thanks for any helpful replies.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

yet the DSpics look to be the top choice but they are 16bitters, also the clock frequency is not very high.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

i cant stop thinking about the ARM11 and Cortexs.... but its insane.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
which new type of the Microcontrollers to learn?
The one you think fills YOUR needs for YOUR projects.

No point asking someone which does not have the same needs as you.

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

js wrote:
Quote:
which new type of the Microcontrollers to learn?
The one you think fills YOUR needs for YOUR projects.

No point asking someone which does not have the same needs as you.

maybe right but please put an advise with respect to your own needs and experiences then.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Tiny13

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

good general purpose is the Mega48.88/168/328 series. It is pretty complete except that is only has 2 full 8-bit ports and one 7 bit port.

Only one UART, but it is a standard one, not a crippled "USI". TWI and SPI I/O. ADC, comparator,2 8-bit & 1 16-bit timer, all with at least one PWM output. Input capture, generally all the standard Good Stuff.

Really nice range of FLASH and SRAM sizes so you can almost always go up one step if you run out of space, and with very little code change.

But, will it do for your project? Only you can say.

Jim

Jim Wagner Oregon Research Electronics, Consulting Div. Tangent, OR, USA There are some answers that have no questions.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I betcha there aint nuthin buggy about the cv compiler. If your program don't work, its because you told it to do something impossible. Non atomic variable access scrambled something. You need to instrument the program to run just the keypad, then just the lcd, then just the clock stuff. One of those is messing with the other ones.

Imagecraft compiler user

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Whiteman, you've made a number of statements that range from the ill informed to plain wrong. With Codevision, was it a compiler bug , library bug or you didn't use it correctly?now, i might be ill informed, but Mikro C doesn't enjoy the best reputation. I'd be thinking the Brand X compiler would be used and debugged a lot more. Realise that one size does not fit all - the cortex a15, arm9 and 11 you normally run linux on them - raspberry pi is one example of a board. As for user friendliness, most of the evil is hidden by linux. The downside is that it insulates you from the low level control and timeliness you get with bare metal like you have with the AVR. For the Cortex M3/4 parts, i can recommend the nxp lpcxpresso boards and tools. The forum is excellent and the tools are good. I'm also having a good experience with the TI lm4f launchpad and the codecomposer tools. They have a nice app where you tick what peripherals you want to use and it gives you a nice view of what pins are doing what then generates the init code for you. I've yet to sample the Atmel AS6 and SAM3/4 yet. Maybe Atmel might like to send me an explained board? Initial experience with BrandX's mplabx tools is they're nice, but the xc32 compiler with no optimisation is a big negative - i quickly ported a C++ project across from the TI stuff i'm using - TI code size was around 47k, xc32 code size was over 200k. This is a reflection on the free tools not the actual chip itself. Bang for buck, the TI board was $4.95 delivered (now 12.95) coupled with decent free, unlimited tools and the nifty config program and extensive libraries it is hard to beat. The timers in the chip suck though. Once you're up to speed in one toolset, its not too hard to figure out the others. Atollic, lpcxpresso( codered) and ti code composer are all eclipse based whereas mplabx is netbeans based - going from eclipse to netbeans was not too much drama as they both do much the same thing so it is just a matter of a look at the help file to fibd out what key to press. Pretty much my design solutions consist of the 'little' micros doing the low level, time critical work connected to the bigger micros running linux to do the heavy lifting of webserving, data storage, networking etc. then , maybe, PC hardware for when you need outright processing grunt.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Let's raise some funds for new keyboards for people without CRLF functions. :wink:

See Bob you are not the only one.

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Whiteman777, your OP reasons #1 would mean you shouldn't even be looking at ARM MCU, which are more powerful than an Xmega. IOW you can't really mean what you wrote in those points. Your reason #2 applies to ANY kind of circuit.

The Mikroe C compiler isn't ANSI compliant, so odd behaviour's waitin' for you there. I agree with whoever brought it up, that it's most likely your logical bugs that has your code doing bad things, not a buggy compiler. If CV couldn't deal with such basic code apps, it would've been found out a long time ago.

1) Studio 4.18 build 716 (SP3)
2) WinAvr 20100110
3) PN, all on Doze XP... For Now
A) Avr Dragon ver. 1
B) Avr MKII ISP, 2009 model
C) MKII JTAGICE ver. 1

Pages