Repository navigation
pickit2_commands
- summary Pickit2 commands.
http://www.voti.nl/pickit2faq/files/pickit2.jpg
The PICkit 2 is an USB in-circuit programmer manufactured by [Microchip].
|| *Command* || *Encoding* || *Response* || *Action* || || No Operation || 0x5A || -- || Do nothing || || Get Version || 0x76 || {major} {minor} {dot} || Get firmware version || || Boot Mode || 0x42 || -- || Enter Bootloader mode || || Set VDD || 0xA0 {CCPL} {CCPH} {VDDLim} || -- || || || Set VPP || 0xA1 {CCPR2L} {VPPADC} {VPPLim} || -- || || || Read Status || 0xA2 || {StsL} {StsH} || || || Read Voltages || 0xA3 || {VddL} {VddH} {VppL} {VppH} || || || Download Script || 0xA4 {Script#} {ScriptLengthN} {Script1} {Script2} ... {ScriptN} || -- || Store a script in the Script Buffer || || Run Script || 0xA5 {Script#} {iterations} || -- || Run a script from the script buffer || || Execute Script || 0xA6 {ScriptLengthN} {Script1} {Script2} ... {ScriptN} || Immediately execute the included script || || Clear Download Buffer || 0xA7 || -- || Empty the download buffer || || Download Data || 0xA8 {DataLength} {Data1} {Data2} ... {DataN} || -- || Add data to download buffer || || Clear Upload Buffer || 0xA9 || -- || Empty the upload buffer || || Upload Data || 0xAA || {DataLengthN} {data1} {data2} ... {dataN} || Read data from upload buffer || || Clear Script Buffer || 0xAB || -- || || || Upload Data Nolen || 0xAC || {Data1} {Data2} ... {DataN} || Read data from upload buffer || || End Of Buffer || 0xAD || -- || Skip the rest of commands || || Reset || 0xAE || -- || Reset || || Script Buffer Checksum || 0xAF || {LenSumL} {LenSumH} {BufSumL} {BufSumH} || Calculate checksums of the Script Buffer || || Set Voltage Calibrations || 0xB0 {adc_calfactorL} {adc_calfactorH} {vdd_offset} {calfactor} || -- || || || Write Internal EEPROM || 0xB1 {address} {datalength} {data1} {data2} ... {dataN} || -- || Write data to PIC18F2550 EEPROM || || Read Internal EEPROM || 0xB2 {address} {datalength} || {data1} {data2} ... {dataN} || Read bytes from PIC18F2550 EEPROM || || Enter UART Mode || 0xB3 || -- || || || Exit UART Mode || 0xB4 || -- || Exits the firmware from UART Mode || || Enter Learn Mode || 0xB5 {0x50} {0x4B} {0x32} {EEsize} || -- || Puts the firmware in PK2GO Learn Mode || || Exit Learn Mode || 0xB6 || -- || Ignore || || Enable Pk2go Mode || 0xB7 {0x50} {0x4B} {0x32} {EEsize} || -- || Puts the firmware in PK2GO Mode || || Logic Analyzer Go || 0xB8 {EdgeRising} {TrigMask} {TrigStates} {EdgeMask} {TrigCount} {PostTrigCountL} {PostTrigCountH} {SampleRateFactor} || {TrigLocL}{TrigLocH} || || || Copy RAM Upload || 0xB9 {StartAddrL} {StartAddrH} || -- || ||
where Vdd is desired voltage.
where Vdd < VFault is error.
CCPR2L = duty cycle. Generally = 0x40.
where Vpp is desired voltage.
where Vdd < VFault is error.
|| *Bit* || *Mask* || *Description* || || 0 || 0x0001 || Vdd GND On || || 1 || 0x0002 || Vdd On || || 2 || 0x0004 || Vpp GND On || || 3 || 0x0008 || Vpp On || || 4 || 0x0010 || Vdd Error || || 5 || 0x0020 || Vpp Error || || 6 || 0x0040 || Button Pressed || || 7 || 0x0080 || || || 8 || 0x0100 || Reset || || 9 || 0x0200 || UART Mode || || 10 || 0x0400 || ICD TimeOut || || 11 || 0x0800 || Upload Full || || 12 || 0x1000 || Download Empty || || 13 || 0x2000 || Empty Script || || 14 || 0x4000 || Script Buffer Overflow || || 15 || 0x8000 || Download Overflow ||
Enter programming mode, 39 bytes. || fa || VPP_OFF || || f7 || MCLR_GND_ON || || f9 || VPP_PWM_ON || || f5 || BUSY_LED_ON || || f3 00 || SET_ICSP_PINS || || e8 14 || DELAY_LONG || || f6 || MCLR_GND_OFF || || fb || VPP_ON || || e7 17 || DELAY_SHORT || || fa || VPP_OFF || || f7 || MCLR_GND_ON || || e7 2f || DELAY_SHORT || || f2 b2 || WRITE_BYTE_LITERAL || || f2 c2 || WRITE_BYTE_LITERAL || || f2 12 || WRITE_BYTE_LITERAL || || f2 0a || WRITE_BYTE_LITERAL || || f6 || MCLR_GND_OFF || || fb || VPP_ON || || e7 eb || DELAY_SHORT || || f3 02 || SET_ICSP_PINS || || bc 06 1f || JT2_SETMODE || || bb 04 || JT2_SENDCMD || || bb 07 || JT2_SENDCMD || || ba 00 || JT2_XFERDATA8_LIT ||
Exit programming mode, 15 bytes. || bc 05 1f || JT2_SETMODE || || fa || VPP_OFF || || f7 || MCLR_GND_ON || || f8 || VPP_PWM_OFF || || f3 06 || SET_ICSP_PINS || || f3 02 || SET_ICSP_PINS || || f3 03 || SET_ICSP_PINS || || e8 0a || DELAY_LONG || || f4 || BUSY_LED_OFF ||
Read device id, 9 bytes. || bb 04 || JT2_SENDCMD || || bb 01 || JT2_SENDCMD || || b9 00 00 00 00 || JT2_XFERDATA32_LIT ||
Read program memory, 13 bytes. || bb 0e || JT2_SENDCMD || || b8 20 00 01 00 || JT2_XFRFASTDAT_LIT || || b7 || JT2_XFRFASTDAT_BUF || || b4 || JT2_WAIT_PE_RESP || || b5 || JT2_GET_PE_RESP || || e9 01 1f || LOOP ||
Prepare writing program memory, 6 bytes. || bb 0e || JT2_SENDCMD || || b7 || JT2_XFRFASTDAT_BUF || || e9 01 3f || LOOP ||
Write program memory, 5 bytes. || b7 || JT2_XFRFASTDAT_BUF || || e9 01 3f || LOOP || || b3 || JT2_PE_PROG_RESP ||
Erase chip, 6 bytes. || bb 07 || JT2_SENDCMD || || ba fc || JT2_XFERDATA8_LIT || || e8 4a || DELAY_LONG ||
||*Code*||*Used*||*Params*||*Name*|| || 0xB3 || + || || JT2_PE_PROG_RESP || || 0xB4 || + || || JT2_WAIT_PE_RESP || || 0xB5 || + || || JT2_GET_PE_RESP || || 0xB6 || || || JT2_XFERINST_BUF || || 0xB7 || + || || JT2_XFRFASTDAT_BUF || || 0xB8 || + || 4 || JT2_XFRFASTDAT_LIT || || 0xB9 || + || 4 || JT2_XFERDATA32_LIT || || 0xBA || + || 1 || JT2_XFERDATA8_LIT || || 0xBB || + || 1 || JT2_SENDCMD || || 0xBC || + || 2 || JT2_SETMODE || || 0xBD || || || UNIO_TX_RX || || 0xBE || || || UNIO_TX || || 0xBF || || || MEASURE_PULSE || || 0xC0 || || || ICDSLAVE_TX_BUF_BL || || 0xC1 || || || ICDSLAVE_TX_LIT_BL || || 0xC2 || || || ICDSLAVE_RX_BL || || 0xC3 || || || SPI_RDWR_BYTE_BUF || || 0xC4 || || || SPI_RDWR_BYTE_LIT || || 0xC5 || || || SPI_RD_BYTE_BUF || || 0xC6 || || || SPI_WR_BYTE_BUF || || 0xC7 || || || SPI_WR_BYTE_LIT || || 0xC8 || || || I2C_RD_BYTE_NACK || || 0xC9 || || || I2C_RD_BYTE_ACK || || 0xCA || || || I2C_WR_BYTE_BUF || || 0xCB || || || I2C_WR_BYTE_LIT || || 0xCC || || || I2C_STOP || || 0xCD || || || I2C_START || || 0xCE || || || AUX_STATE_BUFFER || || 0xCF || || || SET_AUX || || 0xD0 || || || WRITE_BITS_BUF_HLD || || 0xD1 || || || WRITE_BITS_LIT_HLD || || 0xD2 || || || CONST_WRITE_DL || || 0xD3 || || || WRITE_BUFBYTE_W || || 0xD4 || || || WRITE_BUFWORD_W || || 0xD5 || || || RD2_BITS_BUFFER || || 0xD6 || || || RD2_BYTE_BUFFER || || 0xD7 || || || VISI24 || || 0xD8 || || || NOP24 || || 0xD9 || || || COREINST24 || || 0xDA || || || COREINST18 || || 0xDB || || || POP_DOWNLOAD || || 0xDC || || || ICSP_STATES_BUFFER || || 0xDD || || || LOOPBUFFER || || 0xDE || || || ICDSLAVE_TX_BUF || || 0xDF || || || ICDSLAVE_TX_LIT || || 0xE0 || || || ICDSLAVE_RX || || 0xE1 || || || POKE_SFR || || 0xE2 || || || PEEK_SFR || || 0xE3 || || || EXIT_SCRIPT || || 0xE4 || || || GOTO_INDEX || || 0xE5 || || || IF_GT_GOTO || || 0xE6 || || || IF_EQ_GOTO || || 0xE7 || + || 1 || DELAY_SHORT || || 0xE8 || + || 1 || DELAY_LONG || || 0xE9 || + || 2 || LOOP || || 0xEA || + || 1 || SET_ICSP_SPEED || || 0xEB || || || READ_BITS || || 0xEC || || || READ_BITS_BUFFER || || 0xED || || || WRITE_BITS_BUFFER || || 0xEE || || || WRITE_BITS_LITERAL || || 0xEF || || || READ_BYTE || || 0xF0 || || || READ_BYTE_BUFFER || || 0xF1 || || || WRITE_BYTE_BUFFER || || 0xF2 || + || 1 || WRITE_BYTE_LITERAL || || 0xF3 || + || 1 || SET_ICSP_PINS || || 0xF4 || + || || BUSY_LED_OFF || || 0xF5 || + || || BUSY_LED_ON || || 0xF6 || + || || MCLR_GND_OFF || || 0xF7 || + || || MCLR_GND_ON || || 0xF8 || + || || VPP_PWM_OFF || || 0xF9 || + || || VPP_PWM_ON || || 0xFA || + || || VPP_OFF || || 0xFB || + || || VPP_ON || || 0xFC || + || || VDD_GND_OFF || || 0xFD || + || || VDD_GND_ON || || 0xFE || + || || VDD_OFF || || 0xFF || + || || VDD_ON ||