Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
projects:pickle [2017/01/18 06:40] darron [Supported PICMicro devices] |
projects:pickle [2019/01/09 13:46] darron [Tested PICMicro devices] |
||
---|---|---|---|
Line 25: | Line 25: | ||
</ | </ | ||
- | Support has been added for 8-bit PICMicros which have a new programming algorithm. Two families of PIC16F | + | Support has been added for 8-bit PICMicros which have a new programming algorithm. Two families of PIC16 and two families |
There is also support for programming the new PIC32MM 32-bit PICMicros. Currently the programming method used is slow and high speed programming with the programming executive is not available at this time. | There is also support for programming the new PIC32MM 32-bit PICMicros. Currently the programming method used is slow and high speed programming with the programming executive is not available at this time. | ||
+ | |||
+ | Support has also been added for dual-partition mode on dsPIC/PIC24 devices. The dsPIC33EP64GS502 and dsPIC33EP128GS702 have been tested and PIC24 devices await testing. A boot swap LED demo exists in the pickles (pickle support) repository to demonstrate this feature on both the dsPIC33EP64GS502 and dsPIC33EP128GS702. | ||
~~UP~~ | ~~UP~~ | ||
Line 67: | Line 69: | ||
Special thanks go to Steve Marchant who made a contribution which has been used to acquire an Orange Pi computer. Evaluation of the Orange Pi has proven its full support in pickle. Good luck Steve. | Special thanks go to Steve Marchant who made a contribution which has been used to acquire an Orange Pi computer. Evaluation of the Orange Pi has proven its full support in pickle. Good luck Steve. | ||
- | Jim Gregory has reported great success with this program using [[projects: | + | Jim Gregory has reported great success with this program using [[projects: |
- | Lastly, thank you to Microchip for creating these versatile micro-controllers and also for their sample program which has supplied a | + | Lastly, thank you to Microchip for creating these versatile micro-controllers and also for their sample program which has supplied a number |
~~UP~~ | ~~UP~~ | ||
Line 85: | Line 87: | ||
- GPIO bit-bang driver for Linux direct to breadboard. | - GPIO bit-bang driver for Linux direct to breadboard. | ||
- The AllWinner A20/H2+/H3 GPIO interface direct to breadboard for Banana and Orange Pi. | - The AllWinner A20/H2+/H3 GPIO interface direct to breadboard for Banana and Orange Pi. | ||
- | - FTDI bit-bang | + | - FTDI bit-bang for Linux. |
+ | - MCP2221 bit-bang GPIO. | ||
+ | - CP2104 bit-bang GPIO. | ||
== POSIX RS-232 == | == POSIX RS-232 == | ||
Line 117: | Line 121: | ||
See [[: | See [[: | ||
- | == FTDI bit-bang == | + | == FTDI bit-bang |
+ | |||
+ | This utilises the FTDI library in Linux to bit bang the pins on a FTDI break out board. This uses an accelerated I/O mode and has been tested to work with PICMicros in the LVP mode of operation. | ||
+ | |||
+ | == MCP2221 bit-bang GPIO for Linux == | ||
+ | |||
+ | Using the Linux USB HID the MCP2221 can program LVP PICMicros via bit-banging its GPIOs. | ||
+ | |||
+ | == CP2101 bit-bang GPIO for Linux == | ||
- | This utilises the FTDI library in Linux to bit bang the pins on a FTDI break out board. This uses an accelerated I/O mode and has only been tested to work with 8-bit PICMicros such as the PIC16 and PIC18 in LVP mode of operation. | + | Tested |
== Interface status == | == Interface status == | ||
Line 231: | Line 243: | ||
|Y |PIC16F1936 |Darron Broad | |9 |N |5 |VPP 9V. | | | |Y |PIC16F1936 |Darron Broad | |9 |N |5 |VPP 9V. | | | ||
|Y |PIC16F1847 |Darron Broad | |9 |N |5 |VPP 9V. | | | |Y |PIC16F1847 |Darron Broad | |9 |N |5 |VPP 9V. | | | ||
- | |Y |PIC18F25K50 |Darron Broad | |9 |N |5 |VPP 9V. | | | + | |Y |PIC18F25K50 |Darron Broad | |9 |N |5 | | | |
|Y |PIC18F14K50 |Darron Broad | |9 |5 |N |Incompatible (PGC/PGD 3V3 limit). | | | |Y |PIC18F14K50 |Darron Broad | |9 |5 |N |Incompatible (PGC/PGD 3V3 limit). | | | ||
|Y |PIC18LF27J53 |Darron Broad | |N |N |3V3 |Incompatible (architecture). | | | |Y |PIC18LF27J53 |Darron Broad | |N |N |3V3 |Incompatible (architecture). | | | ||
Line 291: | Line 303: | ||
|Y |dsPIC33EV256GM102 |Darron Broad | |N |N |5 |VPP 5V. ICSP only. | | | |Y |dsPIC33EV256GM102 |Darron Broad | |N |N |5 |VPP 5V. ICSP only. | | | ||
|Y |PIC16F18346 |Darron Broad | |9 |N |5 |VPP 9V. not tested. | | | |Y |PIC16F18346 |Darron Broad | |9 |N |5 |VPP 9V. not tested. | | | ||
- | |Y |PIC16F15355 |Darron Broad | |9 |N |5 |VPP 9V. not tested. |New algorithm.| | + | |Y |PIC16F15355 |Darron Broad | |9 |N |5 |VPP 9V. |New algorithm.| |
- | |Y |PIC18F26K40 |Darron Broad | |9 |N |5 |VPP 9V. not tested. |New algorithm.| | + | |Y |PIC18F26K40 |Darron Broad | |9 |N |5 |VPP 9V. |New algorithm.| |
|Y |PIC16F18875 |Darron Broad | |9 |N |5 |VPP 9V. not tested. |New algorithm.| | |Y |PIC16F18875 |Darron Broad | |9 |N |5 |VPP 9V. not tested. |New algorithm.| | ||
+ | |Y |dsPIC33EP64GS502 |Darron Broad | |N |N |3V3 |Incompatible (architecture). | | | ||
+ | |Y |PIC24FJ256GA702 |Darron Broad | |N |N |3V3 |Incompatible (architecture). | | | ||
+ | |Y |PIC32MM0032GPL028 |Darron Broad | |N |N |3V3 |Incompatible (architecture). |PE not supported. | | ||
+ | |Y |dsPIC33EP512MC502 |Darron Broad | |N |N |3V3 |Incompatible (architecture). | | | ||
+ | |Y |dsPIC33EP128GS702 |Darron Broad | |N |N |3V3 |Incompatible (architecture). | | | ||
|N |PIC16F873A |Chris Williams | |13 |5 |N | | | | |N |PIC16F873A |Chris Williams | |13 |5 |N | | | | ||
|N |PIC16F1503 |Darron Broad |Dustin Hoffman |9 |N |5 |VPP 9V. | | | |N |PIC16F1503 |Darron Broad |Dustin Hoffman |9 |N |5 |VPP 9V. | | | ||
Line 304: | Line 321: | ||
|N |PIC24FJ1024GB610 |Simon Casey | |N |N |3V3 |Incompatible (architecture). | | | |N |PIC24FJ1024GB610 |Simon Casey | |N |N |3V3 |Incompatible (architecture). | | | ||
|N |PIC24FJ128GA410 |Simon Casey | |N |N |3V3 |Incompatible (architecture). | | | |N |PIC24FJ128GA410 |Simon Casey | |N |N |3V3 |Incompatible (architecture). | | | ||
- | |N |PIC32MM0032GPL028 | + | |N |PIC16F18313 |Darron Broad | |9 |N |5V |VPP 9V. not tested. | | |
+ | |N |PIC16F1822 |Darron Broad | |9 |N |5V |VPP 9V. not tested. | | | ||
+ | |N |PIC16F1840 |Darron Broad | |9 |N |5V |VPP 9V. not tested. | | | ||
+ | |N |PIC16F1501 |Darron Broad | |9 |N |5V |VPP 9V. not tested. | | | ||
+ | |N |PIC16F1571 |Darron Broad | |9 |N |5V |VPP 9V. not tested. | | | ||
+ | |N |PIC16F1572 |Darron Broad | |9 |N |5V |VPP 9V. not tested. | | | ||
+ | |N |PIC18F25K42 |Darron Broad | |9 |N |5V |VPP 9V.|New algorithm.| | ||
+ | |N |PIC18F26J50 | ||
+ | |N |PIC16F19156 |Darron Broad | |9 |N |5 |VPP 9V. |New algorithm.| | ||
+ | |N |PIC18F26K42 |Darron Broad | |9 |N |5 |VPP 9V. |New algorithm.| | ||
+ | |N |PIC16F18446 |Darron Broad | |9 |N |5 |VPP 9V. Use 14P socket. |New algorithm.| | ||
+ | |N |PIC16F25Q10 |Darron Broad | |9 |N |5 |VPP 9V. |New algorithm.| | ||
^Test code ^Device name ^Added by ^Tested by ^HVP ^LVP(PGM) ^LVP(KEY) ^Velleman K8048 ^Comments | | ^Test code ^Device name ^Added by ^Tested by ^HVP ^LVP(PGM) ^LVP(KEY) ^Velleman K8048 ^Comments | | ||
Line 311: | Line 339: | ||
=== Installation === | === Installation === | ||
- | Download the latest archive file [[http:// | + | Download the latest archive file [[http:// |
This has been tested on FreeBSD 5 and 6 yet should work on all FreeBSD | This has been tested on FreeBSD 5 and 6 yet should work on all FreeBSD | ||
- | A binary build is now available only for RPi with Raspbian Jessie [[http:// | + | A binary build is now available only for RPi with Raspbian Jessie [[http:// |
Here are some sample sessions obtaining the source of the application and then compiling and installing it. | Here are some sample sessions obtaining the source of the application and then compiling and installing it. | ||
Line 327: | Line 355: | ||
rehash | rehash | ||
cd /root | cd /root | ||
- | fetch " | + | fetch " |
- | tar zxf pickle-4.0f.tar.gz | + | tar zxf pickle-4.1c.tar.gz |
cd pickle | cd pickle | ||
gmake | gmake | ||
Line 337: | Line 365: | ||
< | < | ||
- | wget " | + | wget " |
- | tar zxf pickle-4.0f.tar.gz | + | tar zxf pickle-4.1c.tar.gz |
cd pickle | cd pickle | ||
gnumake | gnumake | ||
Line 347: | Line 375: | ||
< | < | ||
- | wget " | + | wget " |
- | tar zxf pickle-4.0f.tar.gz | + | tar zxf pickle-4.1c.tar.gz |
cd pickle | cd pickle | ||
make | make | ||
Line 764: | Line 792: | ||
n16 [LVP] OPERATION [ARG] | n16 [LVP] OPERATION [ARG] | ||
16-bit word PIC18F operations. | 16-bit word PIC18F operations. | ||
- | p24 [SELECT DEVICE] [LVP|HVP] OPERATION [ARG] | + | p24 [SELECT|PARTITION |
24-bit word PIC24/dsPIC operations. | 24-bit word PIC24/dsPIC operations. | ||
p32 OPERATION [ARG] | p32 OPERATION [ARG] | ||
Line 770: | Line 798: | ||
pctrl RUN|STOP|RESTORE | pctrl RUN|STOP|RESTORE | ||
Control master clear. | Control master clear. | ||
- | pload PROGRAM|VERIFY TTY|IP FILE [16] | + | pload PROGRAM|VERIFY TTY|IP FILE [16|24|32] |
Program or verify file on TTY or network. | Program or verify file on TTY or network. | ||
ptest TEST [ARG] | ptest TEST [ARG] | ||
Line 776: | Line 804: | ||
VERSION: | VERSION: | ||
- | 4.0f | + | 4.0g |
</ | </ | ||
Line 798: | Line 826: | ||
EXAMPLES: | EXAMPLES: | ||
p12 select | p12 select | ||
- | | + | |
p12 select PIC1XFXXX blank | p12 select PIC1XFXXX blank | ||
Blank device (disable protection and bulk erase). | Blank device (disable protection and bulk erase). | ||
Line 819: | Line 847: | ||
p12 select PIC1XFXXX verify [file.hex] | p12 select PIC1XFXXX verify [file.hex] | ||
Verify file.hex or stdin in flash (INHX32 format). | Verify file.hex or stdin in flash (INHX32 format). | ||
- | p12 select PIC1XFXXX view [file.hex] | + | p12 select PIC1XFXXX view [file.hex] [raw] |
View file.hex or stdin (INHX32 format). | View file.hex or stdin (INHX32 format). | ||
p12 select PIC1XFXXX / | p12 select PIC1XFXXX / | ||
Line 825: | Line 853: | ||
VERSION: | VERSION: | ||
- | 4.0 | + | 4.0g |
</ | </ | ||
Line 847: | Line 875: | ||
EXAMPLES: | EXAMPLES: | ||
p14 select | p14 select | ||
- | | + | |
p14 select 16F84 OPERATION [ARG] | p14 select 16F84 OPERATION [ARG] | ||
Select device PIC16F84. | Select device PIC16F84. | ||
Line 876: | Line 904: | ||
p14 verify [file.hex] | p14 verify [file.hex] | ||
Verify file.hex or stdin in flash (INHX32 format). | Verify file.hex or stdin in flash (INHX32 format). | ||
- | p14 view [file.hex] | + | p14 view [file.hex] [raw] |
View file.hex or stdin (INHX32 format). | View file.hex or stdin (INHX32 format). | ||
p14 / | p14 / | ||
Line 882: | Line 910: | ||
VERSION: | VERSION: | ||
- | 4.0 | + | 4.0g |
</ | </ | ||
Line 904: | Line 932: | ||
EXAMPLES: | EXAMPLES: | ||
n14 select | n14 select | ||
- | | + | |
n14 lvp OPERATION [ARG] | n14 lvp OPERATION [ARG] | ||
LVP 32-bit key entry. | LVP 32-bit key entry. | ||
Line 923: | Line 951: | ||
n14 verify [file.hex] | n14 verify [file.hex] | ||
Verify file.hex or stdin in flash (INHX32 format). | Verify file.hex or stdin in flash (INHX32 format). | ||
- | n14 view [file.hex] | + | n14 view [file.hex] [raw] |
View file.hex or stdin (INHX32 format). | View file.hex or stdin (INHX32 format). | ||
n14 / | n14 / | ||
Line 929: | Line 957: | ||
VERSION: | VERSION: | ||
- | 4.0f | + | 4.0g |
</ | </ | ||
Line 951: | Line 979: | ||
EXAMPLES: | EXAMPLES: | ||
p16 select | p16 select | ||
- | | + | |
p16 select 18LF2539 OPERATION [ARG] | p16 select 18LF2539 OPERATION [ARG] | ||
Select device PIC18LF2539. | Select device PIC18LF2539. | ||
Line 976: | Line 1004: | ||
p16 verify [file.hex] | p16 verify [file.hex] | ||
Verify file.hex or stdin in flash (INHX32 format). | Verify file.hex or stdin in flash (INHX32 format). | ||
- | p16 view [file.hex] | + | p16 view [file.hex] [raw] |
View file.hex or stdin (INHX32 format). | View file.hex or stdin (INHX32 format). | ||
p16 / | p16 / | ||
Line 982: | Line 1010: | ||
VERSION: | VERSION: | ||
- | 4.0 | + | 4.0g |
</ | </ | ||
Line 1004: | Line 1032: | ||
EXAMPLES: | EXAMPLES: | ||
n16 select | n16 select | ||
- | | + | |
n16 lvp OPERATION [ARG] | n16 lvp OPERATION [ARG] | ||
LVP 32-bit key entry. | LVP 32-bit key entry. | ||
Line 1023: | Line 1051: | ||
n16 verify [file.hex] | n16 verify [file.hex] | ||
Verify file.hex or stdin in flash (INHX32 format). | Verify file.hex or stdin in flash (INHX32 format). | ||
- | n16 view [file.hex] | + | n16 view [file.hex] [raw] |
View file.hex or stdin (INHX32 format). | View file.hex or stdin (INHX32 format). | ||
n16 / | n16 / | ||
Line 1029: | Line 1057: | ||
VERSION: | VERSION: | ||
- | 4.0f | + | 4.0g |
</ | </ | ||
Line 1036: | Line 1064: | ||
< | < | ||
$ p24 | $ p24 | ||
- | USAGE: p24 [SELECT DEVICE] [LVP|HVP] OPERATION [ARG] | + | USAGE: p24 [SELECT|PARTITION |
24-bit word PIC24/dsPIC operations. | 24-bit word PIC24/dsPIC operations. | ||
Line 1051: | Line 1079: | ||
EXAMPLES: | EXAMPLES: | ||
p24 select | p24 select | ||
- | | + | |
p24 select 33EP128GP502 OPERATION [ARG] | p24 select 33EP128GP502 OPERATION [ARG] | ||
Select device dsPIC33EP128GP502. | Select device dsPIC33EP128GP502. | ||
p24 select 24FJ128GB202 OPERATION [ARG] | p24 select 24FJ128GB202 OPERATION [ARG] | ||
Select device PIC24FJ128GB202. | Select device PIC24FJ128GB202. | ||
+ | p24 partition 33EP64GS502 OPERATION [ARG] | ||
+ | Select and partition device dsPIC33EP64GS502. | ||
p24 lvp OPERATION [ARG] | p24 lvp OPERATION [ARG] | ||
LVP 32-bit key entry. | LVP 32-bit key entry. | ||
Line 1078: | Line 1108: | ||
p24 verify [file.hex] | p24 verify [file.hex] | ||
Verify file.hex or stdin in flash (INHX32 format). | Verify file.hex or stdin in flash (INHX32 format). | ||
- | p24 view [file.hex] | + | p24 view [file.hex] [raw] |
View file.hex or stdin (INHX32 format). | View file.hex or stdin (INHX32 format). | ||
p24 / | p24 / | ||
Line 1084: | Line 1114: | ||
VERSION: | VERSION: | ||
- | 4.0 | + | 4.0g |
</ | </ | ||
Line 1106: | Line 1136: | ||
EXAMPLES: | EXAMPLES: | ||
p32 select | p32 select | ||
- | | + | |
p32 boot [n] [address] | p32 boot [n] [address] | ||
Display all or n words of boot flash content from address. | Display all or n words of boot flash content from address. | ||
Line 1123: | Line 1153: | ||
p32 verify [file.hex] | p32 verify [file.hex] | ||
Verify file.hex or stdin in flash (INHX32 format). | Verify file.hex or stdin in flash (INHX32 format). | ||
- | p32 view [file.hex] | + | p32 view [file.hex] [raw] |
View file.hex or stdin (INHX32 format). | View file.hex or stdin (INHX32 format). | ||
p32 / | p32 / | ||
Line 1129: | Line 1159: | ||
VERSION: | VERSION: | ||
- | 4.0 | + | 4.0g |
</ | </ | ||
Line 1172: | Line 1202: | ||
VERSION: | VERSION: | ||
- | 4.0f | + | 4.0g |
</ | </ | ||
Line 1201: | Line 1231: | ||
VERSION: | VERSION: | ||
- | 4.0 | + | 4.0g |
</ | </ | ||
Line 1229: | Line 1259: | ||
Program stdin (INHX32 format) on 192.168.1.100 port 8048. | Program stdin (INHX32 format) on 192.168.1.100 port 8048. | ||
pload program / | pload program / | ||
- | Program led.hex (INHX32 format) on / | + | Program led.hex (INHX32 format) on / |
VERSION: | VERSION: | ||
- | 4.0 | + | 4.0g |
</ | </ | ||