Wednesday, February 22, 2012

PIC32 Awesomeness

I've been head-down in tinkering mode for a while now and recently made the decision to upgrade my PIC from the 18F series to the PIC32MX series and I have not been disappointed. I'm doing development on the PIC32MX795F512L with the USB 32-Bit Whacker board from Sparkfun. I currently have the Microchip TCP/IP stack running with WiFi (MRF24WB0MB), USB serial terminal emulator, real time clock and calendar with alarm functionality and this thing doesn't skip a beat. As part of my WiFi implementation I'm sending/receiving JSON using the cJSON library and I still have plenty of code and data memory left. One of the major upsides to the PIC32MX family coming from the 18F series is that I no longer have to do weird data/program memory switching when dealing with strings. On the 18F series, for example, if you wanted to do a strcpy you had to use different functions depending on whether you were copying a string from RAM to RAM, RAM to ROM, ROM to RAM, etc. With the PIC32 it's like you're writing a C program that runs on you're local machine; you just use strcpy. Some of the other things I love about development on this chip:
  • RAM code execution
  • PIC32 Peripheral Library (great abstraction of many chip features)
  • Built in exception-handling
  • 128K of RAM
  • Blazing fast at 80MHz