Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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 16:57]
darron [Tested PICMicro devices]
Line 25: Line 25:
 </wrap> </wrap>
  
-Support has been added for 8-bit PICMicros which have a new programming algorithm. Two families of PIC16F and one family of PIC18F have so far been released by Microchip and are supported.+Support has been added for 8-bit PICMicros which have a new programming algorithm. Two families of PIC16 and two families of PIC18 have so far been released by Microchip and are supported. Use the version in the pickle repository for up to date additions and fixes.
  
 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:gpio-bb|gpio-bb]] on an Orange Pi, thanks for your feedback and good luck with your many experiments.+Jim Gregory has reported great success with this program using [[projects:gpio-bb|gpio-bb]] on an Orange Pi. Jim also solved a bug with the Pi3 which by default swaps the UARTs which broke the ALT release function on this device. Thank you Jim for your help and feedbackand good luck with your many experiments. 
  
-Lastly, thank you to Microchip for creating these versatile micro-controllers and also for their sample program which has supplied a  third of the available and tested devices.+Lastly, thank you to Microchip for creating these versatile micro-controllers and also for their sample program which has supplied a number of the tested and supported devices.
  
 ~~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 driver for Linux.+    - FTDI bit-bang for Linux
 +    - MCP2221 bit-bang GPIO. 
 +    - CP2104 bit-bang GPIO.
  
 == POSIX RS-232 == == POSIX RS-232 ==
Line 117: Line 121:
 See [[:boards:bpi|BPi]] or [[:boards:opi0|OPi0]] for a direct GPIO connection to a PICMicro on a breadboard. See [[:boards:bpi|BPi]] or [[:boards:opi0|OPi0]] for a direct GPIO connection to a PICMicro on a breadboard.
  
-== FTDI bit-bang ==+== FTDI bit-bang 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 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 with CP210x_VCP_Linux_3.13.
  
 == 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 |Darron Broad |  |N |N |3V3 |Incompatible (architecture). |PE not supported. |+|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 |Darron Broad |  |N |N |3V3 |Incompatible (architecture). | 
 +|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 |PIC18F25Q10 |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://wiki.kewl.org/downloads/pickle-4.0f.tar.gz|pickle-4.0f.tar.gz]] then decompress and extract the application source code from the archive. Once you perform   `sudo make install', the application will be ready for use.+Download the latest archive file [[http://wiki.kewl.org/downloads/pickle-4.1c.tar.gz|pickle-4.1c.tar.gz]] then decompress and extract the application source code from the archive. Once you perform   `sudo make install', the application will be ready for use.
  
 This has been tested on FreeBSD 5 and 6 yet should work on all FreeBSD   variants and other BSD derived systems. It has also been test to work in   Linux 2.6 but only compiled for 2.4. This has been tested on FreeBSD 5 and 6 yet should work on all FreeBSD   variants and other BSD derived systems. It has also been test to work in   Linux 2.6 but only compiled for 2.4.
  
-A binary build is now available only for RPi with Raspbian Jessie [[http://wiki.kewl.org/downloads/pickle-4.0f-raspbian-jessie.tgz|pickle-4.0f-raspbian-jessie.tgz]]. This pre-built binary must be extracted as root into /opt/pickle.+A binary build is now available only for RPi with Raspbian Jessie [[http://wiki.kewl.org/downloads/pickle-4.1c-raspbian-jessie.tgz|pickle-4.1c-raspbian-jessie.tgz]]. This pre-built binary must be extracted as root into /opt/pickle.
  
 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 "http://wiki.kewl.org/downloads/pickle-4.0f.tar.gz" +fetch "http://wiki.kewl.org/downloads/pickle-4.1c.tar.gz" 
-tar zxf pickle-4.0f.tar.gz+tar zxf pickle-4.1c.tar.gz
 cd pickle cd pickle
 gmake gmake
Line 337: Line 365:
  
 <code> <code>
-wget "http://wiki.kewl.org/downloads/pickle-4.0f.tar.gz" +wget "http://wiki.kewl.org/downloads/pickle-4.1c.tar.gz" 
-tar zxf pickle-4.0f.tar.gz+tar zxf pickle-4.1c.tar.gz
 cd pickle cd pickle
 gnumake gnumake
Line 347: Line 375:
  
 <code> <code>
-wget "http://wiki.kewl.org/downloads/pickle-4.0f.tar.gz" +wget "http://wiki.kewl.org/downloads/pickle-4.1c.tar.gz" 
-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 DEVICE] [LVP|HVP] OPERATION [ARG]
                 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
 </code> </code>
  
Line 798: Line 826:
 EXAMPLES: EXAMPLES:
  p12 select  p12 select
-                Dump supported devices.+                Show supported devices.
  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 /dev/ttyUSB0 | 8048  p12 select PIC1XFXXX /dev/ttyUSB0 | 8048
Line 825: Line 853:
  
 VERSION: VERSION:
- 4.0+ 4.0g
 </code> </code>
  
Line 847: Line 875:
 EXAMPLES: EXAMPLES:
  p14 select  p14 select
-                Dump supported devices.+                Show supported devices.
  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 /dev/ttyUSB0 | 8048  p14 /dev/ttyUSB0 | 8048
Line 882: Line 910:
  
 VERSION: VERSION:
- 4.0+ 4.0g
 </code> </code>
  
Line 904: Line 932:
 EXAMPLES: EXAMPLES:
  n14 select  n14 select
-                Dump supported devices.+                Show supported devices.
  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 /dev/ttyUSB0 | 8048  n14 /dev/ttyUSB0 | 8048
Line 929: Line 957:
  
 VERSION: VERSION:
- 4.0f+ 4.0g
 </code> </code>
  
Line 951: Line 979:
 EXAMPLES: EXAMPLES:
  p16 select  p16 select
-                Dump supported devices.+                Show supported devices.
  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 /dev/ttyUSB0 | 8048  p16 /dev/ttyUSB0 | 8048
Line 982: Line 1010:
  
 VERSION: VERSION:
- 4.0+ 4.0g
 </code> </code>
  
Line 1004: Line 1032:
 EXAMPLES: EXAMPLES:
  n16 select  n16 select
-                Dump supported devices.+                Show supported devices.
  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 /dev/ttyUSB0 | 8048  n16 /dev/ttyUSB0 | 8048
Line 1029: Line 1057:
  
 VERSION: VERSION:
- 4.0f+ 4.0g
 </code> </code>
  
Line 1036: Line 1064:
 <code> <code>
 $ p24 $ p24
-USAGE: p24 [SELECT DEVICE] [LVP|HVP] OPERATION [ARG]+USAGE: p24 [SELECT|PARTITION DEVICE] [LVP|HVP] OPERATION [ARG]
 24-bit word PIC24/dsPIC operations. 24-bit word PIC24/dsPIC operations.
  
Line 1051: Line 1079:
 EXAMPLES: EXAMPLES:
  p24 select  p24 select
-                Dump supported devices.+                Show supported devices.
  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 /dev/ttyUSB0 | 8048  p24 /dev/ttyUSB0 | 8048
Line 1084: Line 1114:
  
 VERSION: VERSION:
- 4.0+ 4.0g
 </code> </code>
  
Line 1106: Line 1136:
 EXAMPLES: EXAMPLES:
  p32 select  p32 select
-                Dump supported devices.+                Show supported devices.
  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 /dev/ttyUSB0 | 8048  p32 /dev/ttyUSB0 | 8048
Line 1129: Line 1159:
  
 VERSION: VERSION:
- 4.0+ 4.0g
 </code> </code>
  
Line 1172: Line 1202:
  
 VERSION: VERSION:
- 4.0f+ 4.0g
 </code> </code>
  
Line 1201: Line 1231:
  
 VERSION: VERSION:
- 4.0+ 4.0g
 </code> </code>
  
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 /dev/ttyAMA0 led.hex 24  pload program /dev/ttyAMA0 led.hex 24
-                Program led.hex (INHX32 format) on /dev/ttyAMA0 using 24-bit boot loader addressing.+                Program led.hex (INHX32 format) on /dev/ttyAMA0 using 24-bit addressing.
  
 VERSION: VERSION:
- 4.0+ 4.0g
 </code> </code>