Electronics > Microcontrollers

MPLAB vs Arm Toolchains

(1/3) > >>

Background: Many years ago I worked with 8051's and more recently done some projects with the avrs, mainly the atmega328 because of arduino.  I'm looking to branch out into some 32bit micro's for my next project either PIC32 or ARM.  For the next project i'm looking at needing about 20-30 GPIO, some uarts, i2c, and ethernet.  I think I'll be able to build it up much quicker by going with a 32 bit micro.  I've also looked at separate cihp ethernet solutions, the enc28j60 and the wiznet.  But, from what i can tell it's going to be more work and cost about the same as just getting it built into the micro.  I can get a PIC32MX664F064H-I/PT-ND from digikey for $7.6 with built in ethernet.  And there are some ARM chips from ST and NXP that are just slightly more than that.

I've read all the arguments about PIC32 and ARM and feel like it's a pretty close comparison and there isn't a real clear winner.  But, when I compare toolchains it pushes me in the direction of Microchip.  However, it's hard to really evaluate a tool chain just by reading their marketing materials.

My question: What are people's thoughts about how easy it is to develop application in MPLAB X vs Mbed vs LPCXpresso vs ST Visual Develop 9 or any other one i've missed.  I wasn't able to find much info on ST Visual Develop 9.  Currently i'm leaning towards MPLAB, but Mbed and LPCXpresso seem like good options as well.

Mplab doesn't optimize code size as well as the commercial version... but I can just get a 512KB chip if i need more code space.  Where as LPCXpress limits at 128KB, although U can jump to 256KB by giving code red $256.  Mbed seems like a good option as well.  It's main strength I think are the libraries built up around it.  Although, that can also be a problem if you decide to switch from mbed to lpcxpress.  Mbed does allow u to export your projects to other toolchains including OSS ones, but the libaries are not built with the same amount of optimizations or guaranteed to be 100% working...

Libraries is a big question as well.  From what I've been able to read, I think microchip does a pretty good job providing libraries as well.

Here is a table I put together when trying to compare them:

CompanyProductSoftware CostDebuggerHobby Only?Ease of use (1hard-5easy)Dev BoardProgrammerLimitsNotesMicrochipMPLabfreeyn4$40Pickit3  $50Code size not fully optomizedNXPLPCXpresso (Powered by code_red)free with dev boardyn4$30Included with Dev BoardMax 128KB code sizeMbedMbedfreenn5$50no programmer$60Exports to Code Red / Keil / GCCSTMircoelectonricsST9+ Visual Develop
freeyn4Code RedRed Suite NXP 256k$256yn4Max 256KB code sizeRowleyCrossworks$150 lite, $1500 for professionalyy4$60 J-Link EDU version$150Leaf LabsCode Sourceryfreeny3$50 Maple boardAny JTAG compatibleArduino likeOpen Sourcegcc, openocd, gdb, Eclipsefreey1Any JTAG compatibleOpen SourceGCC ARM Embedded?2Any JTAG compatibleKeil, IAR,too expensivey4

I have never worked with ARM so am not able to comment as to which is the best, however, I recently migrated a project from AVR to PIC32.

We began by using the PIC32 Ethernet Starter Kit with the PICTail expansion board, its built in debugger and a PICKIT 3 Programmer. Shortly into the project Digilent announced the CHIPKIT boards so I orderd one to look at.

Long Story short, if you are interested in moving to or starting with PIC32 grab a CHIPKIT.
Most of the core ARDUNO library's have been ported so you can be up and running quickly when testing a concept without having to create your own Serial comm's, SPI etc functions until you are ready to migrate the project to your own board. You can use the bootloader and the MPIDE to get your test code into it so no need to hook up your PICKIT3 or IDC3 (and no need to buy either until you are ready to port to target hardware).

You are not locked into the ARDUINO Style MPIDE, however, as the boards are fully supported by MPLAB and the ICSP header pads are available on the boards.

Just about every feature of the PIC32 is brought out to convenient header pins so prototyping with it is much easier than the Microchip propitiatory PICTAIL interface.

Best of all it only costs US$27 for the CHIPKIT UNO32.

I still do all my prototyping with it, then move my test code from MPIDE into MPLAB and merg it with the project, send it to the target board and debug the integrated result with the ICD3.

It has saved a fortune in time and hardware costs and it allows you to very eayly evaluate or move an AVR based design to a 32bit platform with the ability to quickly evaluate both the hardware and software portions.

disclaimer - I am not in any way connected with Digilent or MicroChip. Just a satisfied customer, long time PIC fan, part time Arduino fan and now fully converted PIC32 fan (thought I have only scratched the surface).


Not sure how useful this will be, but I've had some good experiences with the free MikroC on 8bit PICs. I haven't tried the 32bit version so can't comment on its quality but it may be worth a look.

The limit for the lite version is 8k program size which doesn't sound suitable for you, but the full unlimited version is $US299.


--- Quote from: sile on February 18, 2012, 09:44:57 pm ---...from what i can tell it's going to be more work and cost about the same as just getting it built into the micro.  I can get a PIC32MX664F064H-I/PT-ND from digikey for $7.6 with built in ethernet.
--- End quote ---

Just a word of caution, the PIC32 has Ethernet support not fully built in Ethernet. You still require a lot of Ethernet physical components external to the PIC32, in our case we added the DP83848C, assorted passives, hearer and a 50 meg oscillator.
The Microchip Ethernet stack  also  has licencing issues and is a bit difficult to work with, we ended up creating a new IP Stack rather than debug the library version, so you may not save as much as you think by using built in Ethernet.

Thanks for the heads up.  I didn't yet realize the PHY wasn't included.....   hmmm.  probably going to head back to the enc28j60.  What are the licensing issues with the microchip ethernet stack?  Is the stack the same on the enc28j60 as the built in eithenet in the PIC32?


[0] Message Index

[#] Next page

There was an error while thanking
Go to full version