1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
|
picp README -- version 0.4d (20 February, 2001)
for installation instructions, please read INSTALL.TXT.
for help and a list of supported devices type "picp" without any other
arguments. more complete documentation may be viewed at
http://www.cosmodog.com/pic/picpdoc.html.
your PICSTART Plus programmer must have version 2.01.00 firmware or
later; go to http://www.microchip.com to download the latest. You can
check the version number of your firmware by typing
picp /dev/ttyS0 12c508 -v
where /dev/ttyS0 is the serial device the PICSTART is attached to and
12c508 is any supported PIC device.
either Motorola S records or Intel Hex records may be used for loading
code to the PICSTART Plus (the format is auto-identified). only Intel
Hex records are currently supported for reading code from the PICSTART
Plus.
picp is free software; please read the included file LICENSE.TXT.
comments, suggestions, installation problems, successes, etc. should
be directed to apines@cosmodog.com.
the PICSTART Plus was reverse engineered without the benefit of any
documentation or help from Microchip. if you have any insights or
useful information into the meaning of the remaining processor
definition codes please pass them along (see picdev.h for the current
state of knowledge). at some point MPLAB was modified to send yet
more part-specific data at start up using a previously unused command
(0x82). picp 0.4c supports this new data but I have no idea what it
does or why it wasn't needed before. anyone with a beter understanding
of the PICSTART Plus protocol is encouraged to come forward.
-----------------------------------------------------------------------------
REMAINING DEFICIENCIES:
picp does not program or read the data space of devices which have it
(e.g., PIC16F83, PIC16F84, etc.).
writing ID locations is not supported yet.
picp cannot write to the oscillator calibration space of devices with
more than one calibration word (specifically the PIC14000) via the
command line flag '-wo'. Since the calibration space is actually in
program space you should be able to write to this region with '-wp',
but it is untested. '-ro' should work but is untested on the PIC14000.
the code protect masks in the part definitions are incomplete for most
devices. this will not affect the ability to program parts but it does
prevent picp from detecting if a device is code protected and
generating the appropriate warning.
-----------------------------------------------------------------------------
IN CASE OF DIFFICULTY:
every effort was taken to define all devices correctly, but the possibility
of errors still exists. if you have difficulty with a particular device,
type "picp <device>" to dump what picp believes are the characteristics of
the device. Please forward any errors or bugs to apines@cosmodog.com.
-----------------------------------------------------------------------------
revison history
0.2 (10 Sept. 1999) -- first real release
0.2a (11 Sept. 1999)
removed timebits.h from includes.h (wasn't actually used anywhere)
0.3 (12 Sept. 1999)
cleaned up a couple of mistakes in the usage text
added support for many more parts (everything supported by MPLAB)
0.4 (1 Oct. 1999)
cleaned up some argument handling (better, more generalized)
broke picstart.c up into smaller modules
added support for -wo flag (only works on single-word calibration spaces)
added oscillator calibration space size checking
added dump of device info if invoked without any flags
0.4a (28 Oct. 1999)
improved hex record parsing
added timeout to InitDevice() to allow the PICSTART to respond to DTR
0.4b (14 July, 2000)
added support for several additional parts (culled from MPLAB 5.00.00):
PIC16HV540, PIC16C55A, PIC16C57C, PIC16C712, PIC16C716, PIC16C773,
PIC16C774, PIC16F872, PIC16F873, PIC16F874, PIC16F876, PIC18C242,
PIC18C252
deleted parts which MPLAB no longer supports:
PIC16C554A, PIC16C556, PIC16C556A, PIC16C558A
added extended device profile (or something) to initialization -- newer
versions of MPLAB send more stuff at device init; these are now sent
by picp as well
0.4c (14 July, 2000)
added support for PIC18C442 and PIC18C452
0.4d (20 February, 2001)
changed CMD_REQUEST_ACK to CMD_REQUEST_MODEL (actually asking for programmer
model, not just an acknowledge)
dropped baud rates over 115200 from serial.c, they aren't useful here and
were limiting cross compatibility
added bool as a typedef so picp can be compiled under straight c instead of c++
changed Makefile so picp compiles using gcc instead of c++
modified OpenDevice() and CloseDevice() to save the previous serial port
settings and restore them on exit
made some improvements to ConfigureDevice() courtesy Brian Chamberlain
-----------------------------------------------------------------------------
|