PIC Application
Read, program, erase PIC chips. Originally targetted at 16-bit families (i.e., PIC24H, dsPIC33F, PIC24F, and dsPIC30F), but now moving in the 8-bit and 32-bit directions.
Clients
goodfet.pic is a decent but unstable client. You can expect its command-line arguments to change as new chip families become supported and as the PIC app evolves.
A Python class that subsumes goodfet.pic (whereby goodfet.pic will become a mere frontend to several methods of the class) is in the works. Stay tuned.
Status
ICSP likely supported families
Family | Comments |
---|---|
PIC24F | |
dsPIC33F | |
PIC24H |
Specific chips tested
Chip | Comments |
---|---|
PIC24FJ64GA002 | |
PIC24FJ128DA106 | |
dsPIC33FJ128GP708 | |
dsPIC33FJ128GP710 | |
PIC24HJ12GP201 |
Development
Coming soon!
Verbs
The following verbs are supported. Note that the standard verbs are currently not implemented in their < 0x80 address (confer the manual). The PIC app is still young and, given variations in access methods across chip families, it is not ready to commit to standard verbs.
Naming conventions:
- *33F - targets PIC24H and dsPIC33F chips.
Hex | #define | Description |
---|---|---|
0x81 | PIC_DEVID33F | Read Device ID, application ID, and hardware revision. |
0x82 | PIC_SIX33F | ICSP six command; execute instruction on target (sourcing clock from PGC). |
0x83 | PIC_REGOUT33F | Read out VISI register. |
0x84 | PIC_START33F | Start ICSP session. |
0x85 | PIC_STOP33F | Stop ICSP session (basically, drop !MCLR pin and pause briefly). |
0x86 | PIC_SIXLIST33F | Buffer list of instructions to MSP430, then execute them over ICSP session with target dsPIC33F/PIC24H chip. This reduces overhead of UART communication between client and app. |
0x87 | PIC_RESET33F | Reset attached dsPIC33F/PIC24H chip | 0x88 | PIC_CMDLIST | Same as PIC_SIXLIST33F, but with an ICSP command before each instruction. |