I'm about the embark on a new embedded project and need to choose a 32-bit microcontroller. Heading my shortlist is the PIC32 and the ARM Cortex-M3.
My choice will come down to criteria such as development systems, hardware options, etc. One thing that I'm well aware of, and don't want to consider as part of my decision, is the fact that the PIC32 is only available from Microchip, whereas the Cortex-M3 has multiple vendors (NXP, STM, Freescale, TI, etc.) I want to base my decision on usability, not commercial concerns (this is a hobby project).
My first concern is development environment. Again, there are many more development environments available for ARM, but most of them can be quite costly, which is a serious consideration for a hobby project. The Microchip MPLAB X IDE is free, as is the C compiler (though without optimizations). Many of the ARM IDEs seem to be built on Eclipse, which I've always found to be as slow as molasses in January when I used it for Java development. Is MPLAB X, which is based on Netbeans, any better in this regard? How about its debugging capabilities?
Hardware design is another criteria. Some 32-bit embedded MCUs have peculiar requirements that I'd rather not deal with. I haven't looked at all of the available Cortex-M3 parts yet, but most of them seem to have few onerous hardware design issues. How about PIC32? Anything in particular that makes these chips easy or hard to design into a board?
Documentation is also a consideration. I've read through the datasheets and user's guides for some of the Cortex-M3 parts and the PIC32, and they vary greatly in organization and quality. Some have needed information scattered to the winds, forcing you to consult half a dozen different documents to find the information you need. Others are well-organized, but are incomplete in other annoying ways. Any recommendations here?
Development boards seem to vary all over the map. Most of the Cortex-M3 boards that I've looked at are either very expensive (Keil, for example), with limited features, or limited in feature set and expandability. Digilent and MikroElectronika both offer PIC32 boards that have lots of options and expandability and are relatively inexpensive (Cerebot MX7cK is $99 and MikroElectronika EasyPIC Fusion v7 is $179).
My choice will come down to criteria such as development systems, hardware options, etc. One thing that I'm well aware of, and don't want to consider as part of my decision, is the fact that the PIC32 is only available from Microchip, whereas the Cortex-M3 has multiple vendors (NXP, STM, Freescale, TI, etc.) I want to base my decision on usability, not commercial concerns (this is a hobby project).
My first concern is development environment. Again, there are many more development environments available for ARM, but most of them can be quite costly, which is a serious consideration for a hobby project. The Microchip MPLAB X IDE is free, as is the C compiler (though without optimizations). Many of the ARM IDEs seem to be built on Eclipse, which I've always found to be as slow as molasses in January when I used it for Java development. Is MPLAB X, which is based on Netbeans, any better in this regard? How about its debugging capabilities?
Hardware design is another criteria. Some 32-bit embedded MCUs have peculiar requirements that I'd rather not deal with. I haven't looked at all of the available Cortex-M3 parts yet, but most of them seem to have few onerous hardware design issues. How about PIC32? Anything in particular that makes these chips easy or hard to design into a board?
Documentation is also a consideration. I've read through the datasheets and user's guides for some of the Cortex-M3 parts and the PIC32, and they vary greatly in organization and quality. Some have needed information scattered to the winds, forcing you to consult half a dozen different documents to find the information you need. Others are well-organized, but are incomplete in other annoying ways. Any recommendations here?
Development boards seem to vary all over the map. Most of the Cortex-M3 boards that I've looked at are either very expensive (Keil, for example), with limited features, or limited in feature set and expandability. Digilent and MikroElectronika both offer PIC32 boards that have lots of options and expandability and are relatively inexpensive (Cerebot MX7cK is $99 and MikroElectronika EasyPIC Fusion v7 is $179).