RE: [PIC] Pickit 2 firmware available from the shipped C D

Chen Xiao Fan <[email protected]>
Newsgroups gmane.comp.hardware.microcontrollers.gnupic
Message-ID <3B8AEFFADD3DD4118F8100508BACEC2C0A2890B3@spex>
This is the API for the PICkit 2. It is quite the same as PICkit 1
except the bootloader function.

To get it work under Linux, there are several step.

1) Port usb_pickit (for PICKit 1 only) to PICkit 2.
2) fix the remaining problem of usb_pickit (save OSCCAL value, etc)
3) Port the bootloader to Linux 
4) extend the chip support. The 1st thing to do is to implement
"8" (Write 8 words to program memory) to support new PIC16 and PIC18 device.

dsPIC support may not be so easy. :(

Now I am trying step 1. I will report back the progress.

Regards,
Xiaofan


/*********************************************************************
 *
 *                  Microchip PICkit 2 Flash Starter Kit
 *
 *********************************************************************
 * FileName:        pickit.h
 * Dependencies:    See INCLUDES section below
 * Processor:       PIC18
 * Compiler:        C18 2.30.01+
 * Company:         Microchip Technology, Inc.
 *
 * Software License Agreement
 *
 * The software supplied herewith by Microchip Technology Incorporated
 * (the "Company") for its PICmicro® Microcontroller is intended and
 * supplied to you, the Company's customer, for use solely and
 * exclusively on Microchip PICmicro Microcontroller products. The
 * software is owned by the Company and/or its supplier, and is
 * protected under applicable copyright laws. All rights are reserved.
 * Any use in violation of the foregoing restrictions may subject the
 * user to criminal sanctions under applicable laws, as well as to
 * civil liability for the breach of the terms and conditions of this
 * license.
 *
 * THIS SOFTWARE IS PROVIDED IN AN "AS IS" CONDITION. NO WARRANTIES,
 * WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED
 * TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
 * PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. THE COMPANY SHALL NOT,
 * IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL OR
 * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
 *
 * Author               Date        Comment
 *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Steven Bible      2004-11-04     Initial Write
 * Steven Bible      2005-04-20     Version 1 Released
 ********************************************************************/

#ifndef PICKIT_H
#define PICKIT_H

/** D E F I N I T I O N S
****************************************************/
#define MAJORVERSION    1
#define MINORVERSION    0
#define DOTVERSION      1

#define BUF_SIZE        64

#define WRITECONFIG         'C'     // Set Program Counter to 0x2000 (Config
Mem)
#define CMDTABLE            'c'     // Download command table
#define WRITEDATA           'D'     // Write data memory
#define ERASEPGM            'E'     // Bulk erase program memory
#define ERASEDATA           'e'     // Bulk erase data memory
#define RECEIVE             'g'     // Get n bytes from flash device
#define INCADDRESS          'I'     // Increment address
#define ENTERPROGVDD1ST     'O'     // Enter programming mode
#define ENTERPROG           'P'     // Enter programming mode
#define EXITPROG            'p'     // Exit programming mode
#define READPGM             'R'     // Read program memory
#define READDATA            'r'     // Read EE data memory
#define CHECKSUM            'S'     // Calculate checksum
#define TRANSFER            't'     // Transfer n bytes to flash device
#define POWERCTRL           'V'     // Turn Vdd on/off; turn 5kHz square
wave on/off
#define GETVERSION          'v'     // Get firmware version number
#define WRITEPGM            'W'     // Write program memory
#define WRITEPGMEXT         'w'     // Write 1 word to program memory,
externally timed
#define WRITE4WORDS         '4'     // Write 4 words to program memory
#define BOOTMODE            'B'     // Enter bootloader mode

#define LOADCONFIG      CommandTable[0]
#define LOADPGM         CommandTable[1]
#define LOADDATA        CommandTable[2]
#define READPGMMEM      CommandTable[3]
#define READDATAMEM     CommandTable[4]
#define INCRADDRESS     CommandTable[5]
#define BEGINPROG       CommandTable[6]
#define BEGINPROGEXT    CommandTable[7]
#define ENDPROG         CommandTable[8]
#define BULKERASEPGM    CommandTable[9]
#define BULKERASEDATA   CommandTable[10]
#define UNDEFINEDCMD1   CommandTable[11]
#define UNDEFINEDCMD2   CommandTable[12]
#define UNDEFINEDCMD3   CommandTable[13]
#define UNDEFINEDCMD4   CommandTable[14]
#define UNDEFINEDCMD5   CommandTable[15]


/** P U B L I C  P R O T O T Y P E S
*****************************************/
void PICkitInit(void);
void ProcessIO(void);

#endif // PICKIT_H
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.