In the early '90s a co-worker turned me onto Microchip's PIC devices. The PIC12C508 instantly became my favorite IC in the whole wide world.
Over the years I've used several different PIC variants for projects, but the 12F508 remains my favorite. Especially in the SO8 package - it's just so cool that an entire standalone processor can fit in 4mm x 6mm!
The migration of Flash parts (in 2004 for the '508) was huge step forward... my UV eraser now collects dust.
Chips
I've used the following parts:
- PIC12F508/9
The 12F508 is cool because of it's ultra-small footprint - 6 I/O lines at 4MHz with no additional parts. Perfect for embedding in tiny peripherals. No debugger support, but with a program space of 512 instructions, they're not too bad to get right with a simulator plus trial-and-error.
- PIC16F505
- PIC16F54/7/9
These have high pin counts at low cost, but lack debugger support which I found problematic. If Microchip were to add ICD support to the PIC16F5x it'd be a killer chip.
- PIC18F84
A basic starter chip - decent mix of I/O count, memory size, and cost.
- PIC18F1320
I've taken to using the 'F1320 instead of the 'F54 because it (a) is supported by the ICD and (b) is supported by MPLAB C18.
- PIC18F2450/2550/4550
These chips are cool in that they have on-board USB, though the Windows demo code sucks (causing me to rewrite it for human consumption)
I started using the '4550 because its what the FSUSB is based on. After writing my firmware and better knowing my needs, I've migrated to the '2550 and '2450 to reduce cost and footprint as I've discovered what my needs are. The 'F4550 is a monster, with capacity for 16k program instructions; I've found that the 2450's 8k capacity is plenty. Regardless, the 'F4550 is the place to start for PIC-based USB development.
Tools
In addition to the custom tools that I've created, I use:
- MPLAB IDE
Microchip's development environment. Though the UI is clunky (looks like something from Windows 3.0) and the editor is somewhat lacking, the fact that it's FREE and that it seamlessly integrates dev/debug/program makes it my main tool.
- MPLAB C18
Microchip's ANSI C compiler for PIC18 devices. At some point ASM becomes tedious :) and writing in C is much easier. I use the "Student" (free) Edition of MCC18; as a hobbyist I can't justify paying $500 for the full version. The only limitation is that after 60 days some optimizations are disabled, but I've not yet found that I even use these optimizations, so it's a non-issue.
- PICC Lite
A C compiler from HI-TECH software that supports the 12F family of PICs. The UI looks a lot nicer than MPLAB (as in, it's been updated this century), but the poor documentation and lack of sample code makes it hard to get into, and complete lack of debugger/simulator support makes it pretty useless.
- PICStart Plus
Microchip's basic device programmer.
- ICD2
Microchip's In-Circuit-Debugger, a low-cost ($160) alternative to an ICE (at least $1500). Though the ICD2 doesn't support all parts and requires 2 dedicated I/O pins, its low cost makes it a really great tool.
Wishlist
- ICD support for the PIC16F5x
- Microchip C compiler for the 12F and 16F families.
Questions? Comments? email me!