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
projects:pickle [2020/08/05 15:14]
darron [Example configuration]
projects:pickle [2023/11/05 18:07] (current)
darron [ICSP interfaces]
Line 15: Line 15:
 Currently supported PICMicros range from the PIC10 to the PIC32. Predominantly PICMicros available in DIP packages are tested and supported. Currently supported PICMicros range from the PIC10 to the PIC32. Predominantly PICMicros available in DIP packages are tested and supported.
  
-In order to use the program in Windows you must first install and setup Cygwin including the necessary development tools for building the application. See [[:boards:cygwin|this]] page for details.+In order to use the program in Windows you must first install and setup Cygwin including the necessary development tools for building the application. See [[tools:cygwin|this]] page for details.
  
 Darron M Broad < darron at kewl dot org > Darron M Broad < darron at kewl dot org >
Line 58: Line 58:
  
 ^Device^Description^Speed^Data^ ^Device^Description^Speed^Data^
-|BPI/OPI| Linux AllWinner Banana Pi (A20) and Orange Pi (H2+/H3) GPIO.|Fast|[[:boards:bpi|BPi]] [[:boards:opi0|OPi0]]| +|[[projects:pickle#bananapi|BPI]]/[[projects:pickle#orangepi0|OPI]] (1)|Linux AllWinner Banana Pi (A20) and Orange Pi (H2+/H3) GPIO.|Fast|[[:boards:bpi|BPi]] [[:boards:opi0|OPi0]]| 
-|GPIO-BB| Linux GPIO bit-bang version 1.3.|Fast|[[projects:gpio-bb|GPIO Bit-bang]]+|[[projects:pickle#linuxcp2104|CP2104]]    |Linux CP2104 GPIO.|Slow|CP210x_VCP_Linux_3.13| 
-|CP2104| Linux CP2104 GPIO.|Slow|CP210x_VCP_Linux_3.13| +|[[projects:pickle#linuxftdi|FTDI]]        |Linux FTDI USB bit-bang.|Slow|libftdi or libftdi1| 
-|FTDI| Linux FTDI USB bit-bang.|Slow|libftdi or libftdi1| +|[[projects:pickle#linuxgpiobb|GPIO-BB]]   |Linux GPIO bit-bang version 1.3.|Fast|[[projects:gpio-bb|GPIO Bit-bang]]| 
-|MCP2221| Linux MCP2221 GPIO.|Slow|Wire as PI/O below | +|[[projects:pickle#linuxmcp2221|MCP2221]]  |Linux MCP2221 GPIO.|Slow|Wire as PI/O below | 
-|MCP23016| Linux MCP23016 I2C.|Slow|Wire as PI/O below| +|[[projects:pickle#linuxmcp23016|MCP23016]]|Linux MCP23016 I2C.|Slow|Wire as PI/O below| 
-|MCP230XX| Linux MCP23008/17 I2C.|Slow|[[:interfaces:slicepi|Slice of PI/O]]| +|[[projects:pickle#linuxmcp230xx|MCP230XX]]|Linux MCP23008/17 I2C.|Slow|[[:interfaces:slicepi|Slice of PI/O]]| 
-|MCP23SXX| Linux MCP23S08/17 SPI.|Slow|Wire as PI/O above| +|[[projects:pickle#linuxmcp23sxx|MCP23SXX]]|Linux MCP23S08/17 SPI.|Slow|Wire as PI/O above| 
-|PCF8574| Linux PCF8574 I2C.|Slow|Single data I/O| +|[[projects:pickle#linuxpcf8574|PCF8574]]  |Linux PCF8574 I2C.|Slow|Single data I/O| 
-|RPI| Linux Raspberry Pi GPIO (Pi0/Pi1/Pi2/Pi3/Pi4).|Fast|[[:boards:rpi|RPi]] [[:boards:chipkitpi|chipKITPi]]| +|SYSFSGPIO|Linux SYSFS|Slow|Single data I/O| 
-|TTY| POSIX Serial bit-bang.|Variable|8250/16550 is fast, USB is slow, Eg. [[:interfaces:cp2102|CP2102]]|+|[[projects:pickle#rpi1|RPI]] (2)          |Linux Raspberry Pi GPIO (Pi0/Pi1/Pi2/Pi3/Pi4).|Fast|[[:boards:rpi|RPi]] [[:boards:chipkitpi|chipKITPi]]| 
 +|[[projects:pickle#k8048tty|TTY]]          |POSIX Serial bit-bang.|Variable|8250/16550 is fast, USB is slow, Eg. [[:interfaces:cp2102|CP2102]]| 
 + 
 +(1) Memory mapped I/O on BPI can cause a lock-up on latest kernels. Use GPIO-BB instead.\\ 
 +(2) Board auto-detect does not work with newer Kernels.
  
 <wrap right>[[projects:pickle#pickle_microchip_pic_icsp|TOC]]</wrap>\\ <wrap right>[[projects:pickle#pickle_microchip_pic_icsp|TOC]]</wrap>\\
Line 265: Line 269:
 === Installation === === Installation ===
  
-Download the latest archive file [[http://wiki.kewl.org/downloads/pickle-5.0.tgz|pickle-5.0.tgz]] or check out the latest development version here [[http://hg.kewl.org/pub/pickle/archive/tip.tar.gz|tip.tar.gz]].+Download the latest archive file [[https://wiki.kewl.org/downloads/pickle-5.01.tgz|pickle-5.01.tgz]] or check out the latest development version here [[http://hg.kewl.org/pub/pickle/archive/tip.tar.gz|tip.tar.gz]].
  
 Decompress and extract the application source code from the archive. Perform `sudo make && sudo make install', the application will be ready for use. Decompress and extract the application source code from the archive. Perform `sudo make && sudo make install', the application will be ready for use.
Line 271: Line 275:
 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 available for the RPi [[http://wiki.kewl.org/downloads/pickle-pi-5.0.tgz|pickle-pi-5.0.tgz]]. This pre-built binary must be extracted as root into /opt/pickle.+A binary build is available for the RPi [[https://wiki.kewl.org/downloads/pickle-5.02-pi.tgz|pickle-5.02-pi.tgz]]. This pre-built binary must be extracted as root into / as /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 285: Line 289:
 rehash rehash
 cd /root cd /root
-fetch "http://wiki.kewl.org/downloads/pickle-5.0.tgz" +fetch "https://wiki.kewl.org/downloads/pickle-5.01.tgz" 
-tar zxf pickle-5.0.tgz+tar zxf pickle-5.01.tgz
 cd pickle cd pickle
 gmake k8048 gmake k8048
Line 295: Line 299:
  
 <code> <code>
-wget "http://wiki.kewl.org/downloads/pickle-5.0.tgz" +wget "https://wiki.kewl.org/downloads/pickle-5.01.tgz" 
-tar zxf pickle-5.0.tgz+tar zxf pickle-5.01.tgz
 cd pickle cd pickle
 make linux make linux
Line 305: Line 309:
  
 <code> <code>
-wget "http://wiki.kewl.org/downloads/pickle-5.0.tgz" +wget "https://wiki.kewl.org/downloads/pickle-5.01.tgz" 
-tar zxf pickle-5.0.tgz+tar zxf pickle-5.01.tgz
 cd pickle cd pickle
-make k8048 +make cygwin 
-make k8048-install+make cygwin-install
 cd ~ cd ~
 vi .pickle vi .pickle
Line 336: Line 340:
  
 === Configuration === === Configuration ===
 +
 +<wrap right>
 +{{:projects:pickle:k8048-rpi.jpg?200|Velleman K8048 RPi}}
 +</wrap>
  
 There are two ways to configure pickle; either use a dot file named `.pickle' in your home directory, else create a directory named `.pickle' and store the configuration in a file there named `config'. There are two ways to configure pickle; either use a dot file named `.pickle' in your home directory, else create a directory named `.pickle' and store the configuration in a file there named `config'.
Line 442: Line 450:
 #BUSY=0 #BUSY=0
  
-# RPI VELLEMAN K8048 (https://wiki.kewl.org/dokuwiki/boards:rpi:k8048)+# RPI VELLEMAN K8048 (https://wiki.kewl.org/dokuwiki/projects:k8048-rpi)
 # #
 # TX/!MCLR/VPP     - DSUB9(3) # TX/!MCLR/VPP     - DSUB9(3)
Line 526: Line 534:
 === Example configuration === === Example configuration ===
  
-== Banana Pi ==+<BOOKMARK:bananapi> 
 +== Linux AllWinner Banana Pi (A20) ==
  
 <code> <code>
Line 538: Line 547:
 </code> </code>
  
-== Linux CP2104 ==+<BOOKMARK:orangepi0> 
 +== Linux AllWinner Orange Pi 0 (H2+) == 
 + 
 +<code> 
 +DEVICE=OPI0 
 +BITRULES=0x1000 
 +SLEEP=1 
 +VPP=12 
 +PGC=11 
 +PGD=6 
 +PGM=-1 
 +</code> 
 + 
 +<BOOKMARK:linuxcp2104> 
 +== Linux CP2104 GPIO ==
  
 <code> <code>
Line 558: Line 581:
 </code> </code>
  
-== Linux GPIO bit-bang == +<BOOKMARK:linuxftdi
- +== Linux FTDI USB bit-bang ==
-<code> +
-DEVICE=GPIO-BB +
-IFACE=/dev/gpio-bb +
-SLEEP=1 +
-BITRULES=0x1000 +
-VPP=9 +
-PGM=22 +
-PGC=10 +
-PGD=11 +
-</code> +
- +
-== Linux FTDI USB ==+
  
 <code> <code>
Line 593: Line 604:
 </code> </code>
  
-== Linux MCP2221 USB ==+<BOOKMARK:linuxgpiobb> 
 +== Linux GPIO bit-bang == 
 + 
 +<code> 
 +DEVICE=GPIO-BB 
 +IFACE=/dev/gpio-bb 
 +SLEEP=1 
 +BITRULES=0x1000 
 +VPP=9 
 +PGM=22 
 +PGC=10 
 +PGD=11 
 +</code> 
 + 
 +<BOOKMARK:linuxmcp2221> 
 +== Linux MCP2221 GPIO ==
  
 <code> <code>
Line 612: Line 638:
 </code> </code>
  
 +<BOOKMARK:linuxmcp23016>
 == Linux MCP23016 I2C == == Linux MCP23016 I2C ==
  
Line 628: Line 655:
 </code> </code>
  
 +<BOOKMARK:linuxmcp230xx>
 == Linux MCP23008/17 I2C == == Linux MCP23008/17 I2C ==
  
Line 644: Line 672:
 </code> </code>
  
 +<BOOKMARK:linuxmcp23sxx>
 == Linux MCP23S08/17 SPI == == Linux MCP23S08/17 SPI ==
  
Line 661: Line 690:
 </code> </code>
  
 +<BOOKMARK:linuxpcf8574>
 == Linux PCF8574 I2C == == Linux PCF8574 I2C ==
  
Line 677: Line 707:
 </code> </code>
  
-== RPi version 1 ==+<BOOKMARK:rpi1> 
 +== Linux RPi 1 GPIO ==
  
 <code> <code>
-DEVICE=RPI+DEVICE=RPI1
 SLEEP=1 SLEEP=1
 BITRULES=0x1000 BITRULES=0x1000
Line 689: Line 720:
 </code> </code>
  
-== RPi version 4 ==+<BOOKMARK:rpi4> 
 +== Linux RPi 4 GPIO ==
  
 <code> <code>
-DEVICE=RPI4+DEVICE=RPI # AUTO-DETECT
 SLEEP=1 SLEEP=1
 BITRULES=0x1000 BITRULES=0x1000
Line 701: Line 733:
 </code> </code>
  
-== Velleman K8048 TTY ==+<BOOKMARK:k8048tty> 
 +== POSIX Serial bit-bang ==
 + 
 +Velleman K8048
  
 <code> <code>
Line 810: Line 845:
  BPI/OPI  BPI/OPI
                 Linux AllWinner Banana Pi (A20) and Orange Pi (H2+/H3) GPIO.                 Linux AllWinner Banana Pi (A20) and Orange Pi (H2+/H3) GPIO.
- GPIO-BB 
-                Linux GPIO bit-bang version 1.3. 
  CP2104  CP2104
                 Linux CP2104 GPIO.                 Linux CP2104 GPIO.
  FTDI  FTDI
                 Linux FTDI USB bit-bang.                 Linux FTDI USB bit-bang.
 + GPIO-BB
 +                Linux GPIO bit-bang version 1.3.
  MCP2221  MCP2221
                 Linux MCP2221 GPIO.                 Linux MCP2221 GPIO.
Line 856: Line 891:
  
 VERSION: VERSION:
- 5.0+ 5.01
 </code> </code>
  
Line 1370: Line 1405:
  ptest VPP|PGC|PGD|PGM 5  ptest VPP|PGC|PGD|PGM 5
                 VPP, PGC, PGD or PGM LOW->HIGH->LOW output test with 5 seconds mark time.                 VPP, PGC, PGD or PGM LOW->HIGH->LOW output test with 5 seconds mark time.
- ptest 10+ ptest INPUT 10
                 PGD input test with 10 iterations of 1 second per step.                 PGD input test with 10 iterations of 1 second per step.
- ptest 10+ ptest DSUB9 10
                 D-SUB-9 test with 10 seconds per step.                 D-SUB-9 test with 10 seconds per step.
- ptest 10+ ptest ICSP 10
                 ICSP test with 10 seconds per step.                 ICSP test with 10 seconds per step.
- ptest + ptest CLOCK 
-                D-SUB-9 RTS 7 (PGC) DTR 4 (PGD) test with no mark time. +                PGC/RTS(7) clock test with no mark time. 
- ptest 3 1 + ptest CLOCK 10 
-                D-SUB-9 RTS (PGC) DTR 4 (PGD) test with SLEEP mark time. +                PGC/RTS(7) clock test with 10us mark time. 
- ptest 3 100 + ptest 16F627 100 
-                D-SUB-9 RTS (PGC) DTR 4 (PGD) test with 100 microseconds mark time. +                PIC16F627 debug test with 100us clock mark time. 
- ptest 100 + ptest ICSPIO 100 
-                16F627 debug test with 100 microseconds clock mark time. +                ICSPIO test with 100us clock mark time. 
- ptest 100 + ptest RPI 10
-                ICSPIO test with 100 microseconds clock mark time. +
- ptest 10+
                 RPI GPIO test with 10 seconds mark time.                 RPI GPIO test with 10 seconds mark time.
 + ptest ALLWINNER 10
 +                BPI/OPI GPIO test with 10 seconds mark time.
  
 VERSION: VERSION:
- 5.0+ 5.01
 </code> </code>
  
Line 1429: Line 1464:
 == PIC16F627 debug assembly test mode == == PIC16F627 debug assembly test mode ==
 <code> <code>
-ptest 100+ptest 16f627 100
  
-TEST MODE 4 [16F627 debug.asmCTRL-C TO STOP+TEST 16F627 debug.asm [CTRL-C TO STOP]
  
 io_test4: read byte: 02 . io_test4: read byte: 02 .