ChipInfo File

This file holds the data required by MicroPro to determine the chip parameters to use when programming.

You can modify this file at any time to add or delete chips or modify the fuse labels to make them more readable to you.

Do not alter the format as listed or it will create errors and MicroPro will not use it.

File Format

CHIPname=12C508

This item is the text name of the chip and will be listed in the Chip Selector.

Include=Y

This item enables you to include or not include this chip in the Chip Selector.

Include=N Chip will not be listed

Include=Y Chip will be listed

See Edit Chip List

SocketImage=8pin

This item specifies the chip graphic that will be displayed on the PC when a chip is selected.

Allowable types:

8pin

14pin

18pin

28Npin

28Wpin

40pin

EraseMode=0

This item specifies which erase algorithm to use for a selected chip.

Allowable Types and examples:

0; 16C8x, 16F8x, 16F87x

1; 16F7x

2; 12F67x

3; 16F7x7

4; 18Fxxxx

5; 16F87xA, F818, F87

Non FLASH chips ignore this parameter, set it as “EraseMode=0”

FlashChip=N

This item specifies whether the chip is FLASH or not.

Flash=N; not flash chip

Flash=Y; is flash chip

PowerSequence=VccVpp2

This item specifies the chip powerup sequence when programming.

Vpp1 is usually used for 28 and 40 pin devices.

Vpp2 is usually used for 8 and 18 pin devices

Vcc is the 5V programming supply

Example:

Turn Vpp1 on before Vcc

PowerSequence=Vpp1Vcc

Allowable Types and examples:

Vcc; no use yet

VccVpp1; 16C62A, 16C76, 16F870

VccVpp2; 16F84, 16F819, 12C508

Vpp1Vcc; not used

Vpp2Vcc; 12F679

VccFastVPP1; 16F7x7

VccFastVPP2; no use yet

ProgramDelay=1

This item specifies the program delay for FLASH chips and is in multiples of 100uS.

Max value is 255.

Examples:

12C508ProgramDelay=1; 100uS

18F4320ProgramDelay=10; 1mS

ProgramTries=8

This item specifies how many times the software will try to program a memory location before reporting an error.

Max value is 255.

Example:

16C765ProgramTries=25

FLASH chips ignore this parameter, set it as “ProgramTries=1”

OverProgram=12

This item specifies how many over program pulses are programmed into each location. This value is multiplied by the ProgramTries total that occurred while programming.

Max value is 255.

Example:

16C765OverProgram=3

CoreType=bit12_A

This item specifies the core type of the chip. This is used by the programmer to determine what programming algorithm to use.

Example:

16F88CoreType=bit14_G

Allowable types and examples:

bit12_A12C50x

bit14_A12C67x, 16C50x, 16Cxxx,

bit14_B16C8x 16F8x, 16F87x 16F62x

bit14_C16F7x, 16F7x7

bit14_D12F67x

bit14_E16F87x-A

bit14_F16F818

bit14_G16F87, 88

bit16_A18Fx230x330

bit16_B18Fxx2xx8

ROMsize=000200

This item specifies the ROM size of the chip in a HEX value.

Example:

16F630000400

This chip has a ROM size of 1K which is 400h.

EEPROMsize=00000040

This item specifies the EEPROM size of the chip in a HEX value.

Example:

16C8300000040

This chip has a EEPROM size of 64 bytes which is 40h.

Non FLASH chips ignore this parameter, set it as “EEPROMsize=00000000”

FUSEblank=0FFF

This item specifies the blank (erased) value of each FUSE.

FUSE value counts currently supported are: 1, 2 and 7.

Fuse Blank values start at FUSE 1 and finish at FUSE 7.

Examples:

16F4320FUSEblank=CF00 1F0F 8300 0085 C00F E00F 400F

16F84FUSEblank=3FFF

16F87FUSEblank=3FFF 3FFF

CPwarn=N

This item specifies whether an information dialog will appear before programming commences that informs the user that the selected device may not be able to be erased if the code protect fuses are set.

Examples:

CPwarn=N; no warning message is displayed

CPwarn=Y; warning message is displayed

CALword=Y

This item specifies whether the chip has a Oscillator calibration value.

Examples:

CALword=N; chip has no calibration value

CALword=Y; chip has a calibration value

12C508CALword=Y

16F84CALword=N

BandGap=N

This item specifies whether the chip has a Bandgap calibration value.

Examples:

BandGap=N; chip has no bandgap value

Bandgap=Y; chip has a bandgap value

12F675BandGap=Y

12C508BandGap=N

ICSPonly=N

This item specifies whether the selected chip can only be programmed in ICSP Mode.

Some chips, due to the pin layout, cannot be programmed using the ZIF socket.

Examples

16F877ICSPonly=N; chip can be programmed in the socket

18F1220ICSPonly=Y; chip cannot be programmed in the socket

ChipID=FFFF

This item specifies the identification value of the chip.

The format of this value from the data sheets is as follows.

I I I I I I I I I I I R R R R R

I is the ID bit, R is a revision bit.

The revision bits are ignored by MicroPro.

Examples:

18F452ChipID=0420

16F871ChipID=0D20

Some chips do not have a chip ID, so leave the value blank.

Example:

12C508ChipID=FFFF

Fuses

This section of the record holds the information on the fuses.

Each fuse has a name and a number of items associated with that name. Each item has a value that specifies a status.

The format is:

LISTnumber[spc]FUSEnumber[spc]FUSEname[spc]FUSEitem_n[spc] FUSEitem_n1[spc]…FUSEitem_nX

[spc] = Space

Do not allow word wrapping to occur on any line as you enter it. MicroPro will only scan the chipinfo file 1 line at a time and considers all data to be in it.

LISTnumber

This item specifies the drop down list that will be shown on the FUSE Edit screen. These numbers must be listed in single incrementing numbers. The maximum number allowed per chip is 33.

Examples:

LIST1

LIST20

FUSEnumber

This item specifies the FUSE number from the chip. The 16F84 only has 1 fuse, so this value can only be FUSE1. The 18F4320 has 7 fuses, so this number can range from FUSE1..FUSE7. These should be in ascending order throughout the record.

Examples:

FUSE1

FUSE7

FUSEname

This item specifies the name of the FUSE and will be displayed next to it’s drop down list on the FUSE edit window. It must be enclosed in double quotes.

Examples:

“WDT”

“Oscillator”

FUSEitem

This item specifies the name(s) and value(s) that will be included in the associated drop down list. It is made up of two parts – NAME and VALUE. The name must be enclosed in double quotes and the value must be in 4 digit HEX.

Examples:

“Enabled”=3FFF

“Disabled”=3FFB

FUSE Examples:

16F84Only has 1 FUSE register.

LIST1 FUSE1 "WDT" "Enabled"=3FFF "Disabled"=3FFB

LIST2 FUSE1 "PWRTE" "Disabled"=3FFF "Enabled"=3FF7

LIST3 FUSE1 "Oscillator" "RC"=3FFF "HS"=3FFE "XT"=3FFD "LP"=3FFC

LIST4 FUSE1 "Code Protect" "Disabled"=3FFF "Enabled"=000F

This will cause 4 drop down lists to be displayed in the FUSE edit window, all associated with FUSE 1.

The FUSE names are WDT, PWRTE, Oscillator and Code Protect.

The WDT has 2 state names: Enabled and Disabled.

The HEX enabled value = 3FFF

The HEX disabled value = 3FFB.

MicroPro starts of with the FUSE blank value and will logically AND the selected FUSE value. Therefore, if you have [WDT Disabled] selected in the drop down list, the blank value [3FFF] will be ANDed with [3FFB] which gives a value of [3FFB] which will be used to program the FUSE.

LIST3 FUSE1 has 4 FUSE items that will be listed in drop down list 3.

RC, HS, XT, LP

NOTE: State names cannot have the ampersand character (&) in them.

18F4320Has 7 FUSE registers

LIST12 FUSE4 "Background Debug" "Disabled"=FFFF "Enabled"=FF7F

LIST13 FUSE4 "Low Voltage Program" "Enabled"=FFFF "Disabled"=FFFB

LIST14 FUSE4 "Stack Overflow Reset" "Enabled"=FFFF "Disabled"=FFFE

This part of the FUSE listing adds 3 more drop down lists – 12, 13, and 14 to the FUSE edit window. These are all associated with FUSE 4.

The names are Background Debug, Low Voltage Program and Stack Overflow Reset.

Each has a Disabled and Enabled item and the associated selection value.

Dual FUSE Values.

Some new PICmicros© have fuse functions split over two fuse registers. You can specify this by adding an extra HEX value.

Example:

BOR uses bit 0 in FUSE 1 and bit 0 in FUSE 2 which will generate 4 states.

FUSE1FUSE2

11ON

01EXT

10INT

00OFF

LIST1 FUSE1 "BOR" "ON"=3FFF&3FFF "EXT"=3FFE&3FFF "INT"=3FFF&3FFE "OFF"=3FFE&3FFE

The data will be interpreted by MicroPro as FUSE1&FUSE2. Each value will be ANDed with the FUSE1 and FUSE2 values respectively.

The dual FUSE function will only work with PICmicros© with 2 FUSE registers.

Do not duplicate the dual function in both FUSE1 and FUSE2 listings.