PICSTART Plus these are my somewhat disorganized notes from reverse-engineering the PICSTART. this file may safely be ignored. 1) Device is DCE. Use 9-pin, DB-9, male to female, straight-through cable. 2) Uses RTS/CTS hardware handshaking 3) 19.2 kBaud, 8 bit, no parity, 1 stop bit Host-to-PICSTART communications messages to PICSTART are preceeded by > messages from PICSTART are preceeded by < 0x88: response: 0xab action: doesn't do anything else (appears to be asking for the programmer type, 0xab says 'PICSTART Plus') 0x8d: response: 0x8d 0xaa 0xbb 0xcc action: return version number 0x8e: 0xaa 0xbb 0xcc 0xdd response: echo everything action: set address range 0xaa/0xbb = start address 0xcc/0xdd = number of words included in range 0x80: response: 0x80 0x2c action: doesn't do anything (some kind of sub code?) 0x81: response: 0x81 0xaa action: load processor info 0xaa = 0 if okay, 0xff if checksum error 0x42: ('B') response: 0x42 0xbb (0xbb indicates what isn't blank) action: blank check device things which can be blank: program memory configuration bits IDs data memory b7: b6: b5: b4: ? this bit is set on 16C505 even when it reports blank b3: 0 = EEPROM data blank b2: 0 = ID locations blank b1: 0 = configuration bits blank b0: 0 = program memory blank 0x51: ('Q') action: write program memory data is written two bytes (high/low) at a time, wait for echo 0x54: ('T') action: read program memory echo command, range is read as one big blob, with an extra 0 at the end 0x63: ('c') 0x94: ??? seems to be redundant action: read calibration memory response: 0x63 0xaa 0xbb 0x00 where 0xaa 0xbb is the calibration 0x64: ('d') response: 0x64, then all the data then a 0x00 action: read EEPROM data 0x65: ('e') response: 0x65 + eight bytes +0x00 at the end action: read ID locations configuration bits: 0x66: ('f') response: 0x66 0xaa 0xbb 0xcc action: read configuration bits 0x67: ('g') 0xaa 0xbb response: 0x67 0xaa 0xbb action: write configuration bits 0x68: ('h') + 16 bytes (8 words) response: echo everything, then 0 if all okay action: write ID locations write a word, wait for reply, etc. 0x69: ('i') + data bytes response: echo everything, then 0 if all okay action: write EEPROM data 0x71: ('q') 0xaa 0xbb response: 0x71 0xaa 0xbb 0x00 action: write calibration data Enable Programmer: > 88 set pc present < ab (code shows aa) > 8d request firmware version < 8d 02 01 00 reply firmware version (version 2.01.00) > 80 < 80 2c > 81 < 81 PIC12C508/PIC12C508A/PIC12CE518 (osc ext. RC, wd on, master clear external, code protect off): > 01 ff 0f ff 0f ff 00 0f 00 0f 00 1f 00 1f 00 00 00 00 0f > ff 0f ff 00 00 00 01 02 00 04 0f ff 01 00 00 00 00 01 ff 00 > 01 0b 08 0a 16 de < 00 PIC12C509/PIC12C509A/PIC12CE519: (osc ext. RC, wd on, master clear external, code protect off): > 03 ff 0f ff 0f ff 00 0f 00 0f 00 1f 00 1f 00 00 00 00 0f > ff 0f ff 00 00 00 01 04 00 04 0f ff 01 00 00 00 00 03 ff 00 > 01 0b 08 0a 16 e4 < 00 PIC12C671/PIC12CE673: (osc ext. RC clkout, wd on, pwr up timer off, master clear external, code protect off): > 03 ff 3f ff 3f ff 00 7f 00 7f 3f ff 3f ff 00 00 00 00 3f > ff 3f ff 00 00 00 01 20 00 04 20 07 01 00 00 00 00 03 ff 00 > 01 03 19 09 16 ff < 00 PIC12C672/PIC12CE674: (osc ext. RC clkout, wd on, pwr up timer off, master clear external, code protect off): > 07 ff 3f ff 3f ff 00 7f 00 7f 3f ff 3f ff 00 00 00 00 3f > ff 3f ff 00 00 00 01 20 00 04 20 07 01 00 00 00 00 07 ff 00 > 01 03 19 09 16 07 PIC14000: (osc int. RC, wd on, pwr up timer off, code protect off): > 0f c0 3f ff 3f ff 00 7f 00 7f 3f bd 3f bd 00 00 00 00 3f > ff 3f ff 00 00 00 01 20 00 04 20 07 01 00 00 00 00 0f c0 00 > 40 03 19 01 16 4c PIC16C505: (osc ext. RC clkout, wd on, master clear external, code protect off): > 03 ff 0f ff 0f ff 00 0f 00 0f 0f ff 0f ff 00 00 00 00 0f > ff 0f ff 00 00 00 01 04 00 04 0f ff 01 00 00 00 00 03 ff 00 > 01 0b 08 0a 16 c2 PIC16C52: (osc RC, code protect off) > 01 80 0f ff 0f ff 00 0f 00 0f 00 0b 00 0b 00 00 00 00 00 > 00 00 00 00 00 00 01 02 00 00 0f ff 01 00 00 00 00 00 00 00 > 00 0b 08 05 04 ff PIC16C54/PIC16C54A: (osc RC, wd on, code protect off) > 02 00 0f ff 0f ff 00 0f 00 0f 00 0f 00 0f 00 00 00 00 00 > 00 00 00 00 00 00 01 02 00 04 0f ff 01 00 00 00 00 00 00 00 > 00 0b 08 05 06 8e PIC16C54B/PIC16C54C: > 02 00 0f ff 0f ff 00 0f 00 0f 0f ff 0f ff 00 00 00 00 00 > 00 00 00 00 00 00 01 02 00 04 0f ff 01 00 00 00 00 00 00 00 > 00 0b 08 05 06 8c PIC16C55: > 02 00 0f ff 0f ff 00 0f 00 0f 00 0f 00 0f 00 00 00 00 00 > 00 00 00 00 00 00 01 02 00 04 0f ff 01 00 00 00 00 00 00 00 > 00 0b 08 06 06 8f PIC16C554/PIC16C554A: > 02 00 3f ff 3f ff 00 7f 00 7f 3f 3f 3f 3f 00 00 00 00 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 00 00 00 00 > 00 03 19 02 06 e9 PIC16C556/PIC16C556A: > 04 00 3f ff 3f ff 00 7f 00 7f 3f 3f 3f 3f 00 00 00 00 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 00 00 00 00 > 00 03 19 02 06 eb PIC16C558/PIC16C558A: > 08 00 3f ff 3f ff 00 7f 00 7f 3f 3f 3f 3f 00 00 00 00 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 00 00 00 00 > 00 03 19 02 06 ef PIC16C56: > 04 00 0f ff 0f ff 00 0f 00 0f 00 0f 00 0f 00 00 00 00 00 > 00 00 00 00 00 00 01 04 00 04 0f ff 01 00 00 00 00 00 00 00 > 00 0b 08 05 06 92 PIC16C56A: > 04 00 0f ff 0f ff 00 0f 00 0f 0f ff 0f ff 00 00 00 00 00 > 00 00 00 00 00 00 01 04 00 04 0f ff 01 00 00 00 00 00 00 00 > 00 0b 08 05 06 90 PIC16C57: > 08 00 0f ff 0f ff 00 0f 00 0f 00 0f 00 0f 00 00 00 00 00 > 00 00 00 00 00 00 01 08 00 04 0f ff 01 00 00 00 00 00 00 00 > 00 0b 08 06 06 9b PIC16C58A: > 08 00 0f ff 0f ff 00 0f 00 0f 00 0f 00 0f 00 00 00 00 00 > 00 00 00 00 00 00 01 08 00 04 0f ff 01 00 00 00 00 00 00 00 > 00 0b 08 05 06 9a PIC16C58B: > 08 00 0f ff 0f ff 00 0f 00 0f 0f ff 0f ff 00 00 00 00 00 > 00 00 00 00 00 00 01 08 00 04 0f ff 01 00 00 00 00 00 00 00 > 00 0b 08 05 06 98 PIC16C61: > 04 00 3f ff 3f ff 00 7f 00 7f 00 1f 00 1f 00 00 00 00 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 00 00 00 00 > 00 03 19 02 06 2d PIC16C62: > 08 00 3f ff 3f ff 00 7f 00 7f 00 3f 00 3f 00 00 00 00 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 00 00 00 00 > 00 03 19 03 06 72 PIC16C62A/PIC16C62B: > 08 00 3f ff 3f ff 00 7f 00 7f 3f 7f 3f 7f 00 00 00 00 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 00 00 00 00 > 00 03 19 03 06 70 PIC16C620/PIC16C620A/PIC16CE623: > 02 00 3f ff 3f ff 00 7f 00 7f 3f 7f 3f 7f 00 00 00 00 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 00 00 00 00 > 00 03 19 02 06 69 PIC16C621/PIC16C621A/PIC16CE624: > 04 00 3f ff 3f ff 00 7f 00 7f 3f 7f 3f 7f 00 00 00 00 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 00 00 00 00 > 00 03 19 02 06 6b PIC16C622/PIC16C622A/PIC16CE625: > 08 00 3f ff 3f ff 00 7f 00 7f 3f 7f 3f 7f 00 00 00 00 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 00 00 00 00 > 00 03 19 02 06 6f PIC16C63/PIC16C63A: > 10 00 3f ff 3f ff 00 7f 00 7f 3f 7f 3f 7f 00 00 00 00 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 00 00 00 00 > 00 03 19 03 06 78 PIC16C64: > 08 00 3f ff 3f ff 00 7f 00 7f 00 3f 00 3f 00 00 00 00 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 00 00 00 00 > 00 03 19 04 06 73 PIC16C64A: > 08 00 3f ff 3f ff 00 7f 00 7f 3f 7f 3f 7f 00 00 00 00 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 00 00 00 00 > 00 03 19 04 06 71 PIC16C642: > 10 00 3f ff 3f ff 00 7f 00 7f 3f ff 3f ff 00 00 00 00 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 00 00 00 00 > 00 03 19 03 26 98 PIC16C65: > 10 00 3f ff 3f ff 00 7f 00 7f 00 3f 00 3f 00 00 00 00 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 00 00 00 00 > 00 03 19 04 06 7b PIC16C65A/PIC16C65B: > 10 00 3f ff 3f ff 00 7f 00 7f 3f 7f 3f 7f 00 00 00 00 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 00 00 00 00 > 00 03 19 04 06 79 PIC16C66: > 20 00 3f ff 3f ff 00 7f 00 7f 3f 7f 3f 7f 00 00 00 00 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 00 00 00 00 > 00 03 19 03 06 88 PIC16C662: > 10 00 3f ff 3f ff 00 7f 00 7f 3f ff 3f ff 00 00 00 00 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 00 00 00 00 > 00 03 19 04 26 99 PIC16C67: > 20 00 3f ff 3f ff 00 7f 00 7f 3f 7f 3f 7f 00 00 00 00 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 00 00 00 00 > 00 03 19 04 06 89 PIC16C71: > 04 00 3f ff 3f ff 00 7f 00 7f 00 1f 00 1f 00 00 00 00 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 00 00 00 00 > 00 03 19 02 06 2d PIC16C710: > 02 00 3f ff 3f ff 00 7f 00 7f 3f ff 3f ff 00 00 00 00 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 00 00 00 00 > 00 03 19 02 06 69 PIC16C711: > 04 00 3f ff 3f ff 00 7f 00 7f 3f ff 3f ff 00 00 00 00 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 00 00 00 00 > 00 03 19 02 06 6b PIC16C715: > 08 00 3f ff 3f ff 00 7f 00 7f 3f ff 3f ff 00 00 00 00 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 00 00 00 00 > 00 03 19 02 26 8f PIC16C72/PIC16C72A: > 08 00 3f ff 3f ff 00 7f 00 7f 3f 7f 3f 7f 00 00 00 00 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 00 00 00 00 > 00 03 19 03 06 70 PIC16C73: > 10 00 3f ff 3f ff 00 7f 00 7f 00 3f 00 3f 00 00 00 00 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 00 00 00 00 > 00 03 19 03 06 7a PIC16C73A/PIC16C73B: > 10 00 3f ff 3f ff 00 7f 00 7f 3f 7f 3f 7f 00 00 00 00 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 00 00 00 00 > 00 03 19 03 06 78 PIC16C74: > 10 00 3f ff 3f ff 00 7f 00 7f 00 3f 00 3f 00 00 00 00 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 00 00 00 00 > 00 03 19 04 06 7b PIC16C74A/PIC16C74B: > 10 00 3f ff 3f ff 00 7f 00 7f 3f 7f 3f 7f 00 00 00 00 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 00 00 00 00 > 00 03 19 04 06 79 PIC16C76: > 20 00 3f ff 3f ff 00 7f 00 7f 3f 7f 3f 7f 00 00 00 00 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 00 00 00 00 > 00 03 19 03 06 88 PIC16C77: > 20 00 3f ff 3f ff 00 7f 00 7f 3f 7f 3f 7f 00 00 00 00 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 00 00 00 00 > 00 03 19 04 06 89 PIC16F83: > 02 00 3f ff 3f ff 00 7f 00 7f 3f ff 3f ff 00 ff 00 ff 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 40 00 00 00 > 00 03 01 02 0f 98 PIC16C84: > 04 00 3f ff 3f ff 00 7f 00 7f 00 1f 00 1f 00 ff 00 ff 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 40 00 00 00 > 00 03 01 02 0f 5c PIC16F84: (osc RC, wd on, power up timer off, code protect off) > 04 00 3f ff 3f ff 00 7f 00 7f 3f ff 3f ff 00 ff 00 ff 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 40 00 00 00 > 00 03 01 02 0f 9a PIC16F84A: > 04 00 3f ff 3f ff 00 7f 00 7f 3f ff 3f ff 00 ff 00 ff 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 40 00 00 00 > 00 00 01 02 0f 97 PIC16F877: > 20 00 3f ff 3f ff 00 7f 00 7f 3b ff 3b ff 00 ff 00 ff 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 01 00 00 00 00 > 00 00 01 04 0f 6e PIC16C923: > 10 00 3f ff 3f ff 00 7f 00 7f 3f 3f 3f 3f 00 00 00 00 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 00 00 00 00 > 00 03 19 04 06 f9 PIC16C924: > 10 00 3f ff 3f ff 00 7f 00 7f 3f 3f 3f 3f 00 00 00 00 00 > 00 00 00 00 00 00 01 20 00 04 20 07 01 00 00 00 00 00 00 00 > 00 03 19 04 06 f9 PIC17C42: > 08 00 ff ff ff ff 00 00 00 00 00 5f 00 5f 00 00 00 00 00 > 00 00 00 00 00 00 01 00 00 00 fe 00 01 00 00 00 00 00 00 00 > 00 03 19 07 04 e9 PIC17C42A: > 08 00 ff ff ff ff 00 00 00 00 80 5f 80 5f 00 00 00 00 00 > 00 00 00 00 00 00 01 00 00 00 fe 00 01 00 00 00 00 00 00 00 > 00 03 19 07 04 e9 PIC17C43: > 10 00 ff ff ff ff 00 00 00 00 80 5f 80 5f 00 00 00 00 00 > 00 00 00 00 00 00 01 00 00 00 fe 00 01 00 00 00 00 00 00 00 > 00 03 19 07 04 f1 PIC17C44: > 20 00 ff ff ff ff 00 00 00 00 80 5f 80 5f 00 00 00 00 00 > 00 00 00 00 00 00 01 00 00 00 fe 00 01 00 00 00 00 00 00 00 > 00 03 19 07 04 01 PIC17C752/PIC17C762: > 20 00 ff ff ff ff 00 00 00 00 c0 5f c0 5f 00 00 00 00 00 > 00 00 00 00 00 00 01 00 00 00 fe 00 01 00 00 00 00 00 00 00 > 00 03 19 07 04 81 PIC17C756/PIC17C756A: > 40 00 ff ff ff ff 00 00 00 00 c0 5f c0 5f 00 00 00 00 00 > 00 00 00 00 00 00 01 00 00 00 fe 00 01 00 00 00 00 00 00 00 > 00 03 19 07 04 a1 PIC17C766: > 40 00 ff ff ff ff 00 00 00 00 c0 5f c0 5f 00 00 00 00 00 > 00 00 00 00 00 00 01 00 00 00 fe 00 01 00 00 00 00 00 00 00 > 00 03 19 07 04 a1