POCKET PROGRAMMER

Introduction

Specifications

PC Based Programmer

Navigation

Programming the PIC16F876

Setup

Chip Information File

Message File

Powerup Keypress

Main Menu Items

Pocket.exe


Introduction

The Pocket programmer is designed to program some families of the PICmicro®MCU range of microcontrollers.

It is an independant device that can program these devices without using a PC for control, and in remote locations, it can be powered by batteries.

The programmer functions are controlled by 4 push buttons and there is an LCD display for visual feedback.

The devices can be programmed locally when they are inserted into an on board ZIF socket, or externally via an In Circuit Serial Programming (ICSP) port.

Program verification can be performed with a standard fixed voltage, or it can be performed with a user defined lower and an upper voltage as well.

A bootloader function is provided via the ICSP port, and can program devices that have resident bootloader programs installed.

When a HEX file is resident in the Pocket’s memory, it can be dissassembled into mnemonics and modified.

The source code is open and can be modified for specific requirements.

PICmicroMCU is a registered trademark of Microchip Technology Inc. in the USA.


Specifications

Stand alone programmer.

Also has a PC based programmer interface

Supports 14 and 16 bit cores - 12Cxxx - 16Cxxx - 18Cxxx

64K of program storage

32 HEX files can be stored

32K of chip data storage

Menu driven via 4 keys and LCD display

Power requirements

18VDC via socket

2 X 9V batteries

50 ~100mA

Verification voltage 2V - 6V in approx 25mV steps

25mA source/sink on ISCP data and clock pins

100mA power on ICSP


Navigation

The programmer functions are controlled by 4 press buttons located on the lower left of the circuit board.

The keys usually have the same general functions throughout all of the menu trees. Sometimes, due to the nature of a particular menu item, a key may have a different function to perform, or in some cases none at all.

These are the general functions for each key.

Key 1

Move to higher root menu item

Increment a value

Select an option

Select function Line1 or Line 2

Key2

Reverse back through a menu tree

Change cursor position to left

Key3

Proceed forward through a menu tree

Change cursor position to right

Key4

Move to a lower root menu item

Decrement a value

Exit a menu tree back to root


Programming the PIC16F876

If you have built your own project or if you have had problems with the system PIC16F876 chip then you may need to program it with the Pocket HEX code.

There are 3 HEX files supplied with the project.

pocket.hex	boot code

Tpocket.hex	system code

pockets.hex	merged code

The system has an inbuilt bootloader installed which is compatable with ROMzap and is available free from - http://www.bubblesoftonline.com

This bootloader file is pocket.hex and allows you to make quick updates if they become necessary.

Tpocket.hex is the actual program that controls the Pocket. This is the HEX file that the bootloader would program into the PIC to make it functional.

At some stage you may wish to program the code into the PIC yourself by using your own programmer. If this is the case then you must program both the pocket.hex and the Tpocket.hex files into the PIC.

To do this your programmer must be able to merge the two hex files together before programming takes place.

If your programmer cannot merge the files, then use the file called pockets.hex which contains the complete HEX code in one file.


Setup

There is a file in the Pocket installation directory called pocket.dat. This file has only one text line and is the number of the COM port that the Pocket will communicate with to the PC. The default value is 1.

If the default value is not the number of the serial port that you will be using for the Pocket communications, then please change the value and save the file.

Make sure the Pocket is connected to the serial port via a suitable cable and start Pocket.exe. On startup, it will read the data in pocket.dat and select the listed serial port and try to connect at 19200 baud. This port must be free for use or an error will be displayed.

When the Pocket is first started there will be no operational data available in the internal memory.

There are two things that must be completed to make the system operational.

Load the operational data.

Calibrate the Multi V programming voltages.

Operational Data

This information is created by the pocket.exe program from some of it’s own internal information and the chip data created by the user.

The internal information is made up of the text messages shown on the LCD display, the dissassembly instruction text and a listing of special data addresses.

These addresses are determined by the size of the information created for each chip definition by the user. They are there to help the Pocket quickly locate each chip information block during the dissassembly process.

When turned on without operational data available, the Pocket will display this message.

     RUN POCKET.EXE

     PRESS ANY KEY

Start the pocket.exe program and press any of the keys.

If all is well, the program will generate the operational data file and upload it to the Pocket’s internal memory. While it is doing this, you will see the progress of the transfer and an indicator showing how much of the Pocket’s 32K of data storage memory will be used.

After the upload has completed, the pocket can begin to use the system messages and should be displaying this.

     IMPORT COMPLETE

     PRESS ANY KEY

Press any key.

Calibrate

At this point, the Pocket will be asking to calibrate the voltages used for the Multi V verify option.

     CALIBRATE VccP

     PRESS ANY KEY

To do the calibration procedure you will need a digital voltmeter connected to the calibrate pins on the circuit board.

Voltmeter + connects to pin TM1 (VccP)

Voltmeter - connects to pin TM2 (GND)

Press any key to start the calibrate process.

These two pins are located near Key 4 on the circuit board.

The display should be showing this message.

     KEY  1U 2X 3A 4D

     2.00

The Active LED (L2) should be lit and the voltmeter should be reading about 1.7 volts.

The key functions are listed on the display.

The voltage reading on the lower LCD line indicates the verify voltage match the voltmeter reading to.

Press Key 1 to increment the voltage until it gets as close to 2 volts as possible. If it gets too high, press Key 4 to lower it. When you are satisfied that the voltage is as close as you can get to 2 volts, then press Key 3 to accept the voltage.

The display will now show this message.

     KEY  1U 2X 3A 4D

     2.25

Now repeat the procedure until the voltmeter reads 2.5 volts.

Keep repeating this procedure until 6.00 volts is calibrated. After that, the procedure is complete and the display will show this message after turning off the VccP voltage.

     CALIBRATE OK

     PRESS ANY KEY

Press any key and the system should now be ready for use.

     FUNCTION:

     FILE MANAGER


Chip Information File

This file is used to allow the Pocket to program different chips and also show mnemonics of the dissassembled code files stored in it’s program storage memory. The filename is called chipdat.txt and can be found in the installation directory.

Initially it will have a few chips listed but you can add or delete chip information at any time. If the information stored in this file, plus the system information is greater than the 32K of storage space provided then an error message will be displayed.

The Edit button shown on the pocket.exe screen allows you to edit the contents of this file. Alternately, you can edit it with any text editor program.

Please follow the format exactly as shown. The program will try to trap errors, but some may not be noticed and it may cause the Pocket to produce unexpected results. Some unnoticed errors may include such things as ROM size too large.

File Format

This is the default format for a PIC16F83 chip.

[16F83]

02 0040 2 2 L 1 N M N 1 1 3FFF 0000 FFFF 0000 FFFF 0000 FFFF 0000

#0,INDF;00,TMR0;01,PCL;02,STATUS;03,FSR;04,PORTA;05,PORTB;06,EEDATA;08,EEADR;09,PCLATH;0A

#1,OPT_REG;01,TRISA;05,TRISB;06,EECON1;08,EECON2;09

%003,C,DC,Z,PD,TO,RP0,RP1,IRP

%00B,RBIF,INTF,T0IF,RBIE,INTE,T0IE,EEIE,GIE

%101,PS0,PS1,PS2,PSA,T0SE,T0CS,INTEDG,RBPU

%108,RD,WR,WREN,WRERR,EEIF,?,?,?

@0OSC,0003+0000LP+0001XT+0002HS+0003RC

@0WDT,0004+0000OFF+0004ON

@0PWRTE,0008+0000ON+0008OFF

/0CODE PROTECT,3FF0+3FF0OFF+0000ON

Chip Name

Chip Information

RAM Name Mnemonics

RAM Bit Mnemonics

Fuse

File End


Chip Name

[16F83]

The chip name is displayed between the brackets and can be up to 8 characters long.


Chip Information

The next line gives the Pocket information about the chip.

02 0040 2 2 L 1 N M N 1 1 3FFF 0000 FFFF 0000 FFFF 0000 FFFF 0000

RR EEEE M V D C W T B I F 3FFF 0000 FFFF 0000 FFFF 0000 FFFF 0000

RR      ROM PAGE COUNT

        2 HEX characters [0 - F]

        Page size = 256 words

        Example - 16F83 = 512 words of ROM = 2 pages

        Value = 02

        Reason - programming info

EEEE    EEPROM BYTE COUNT

        4 HEX characters [0 - F]

        Example - 16F83 = 64 bytes = 40h bytes

        Value = 0040

        Reason - programming info

        This value must be listed as 0000 if the

        device is not an EEPROM type.

M       RAM PAGE COUNT

        1 HEX character [0 - F]

        Example - 16F83 = 2 pages

        Value = 2

        Reason - dissassembly info

V       VPP PROGRAMMING VOLTAGE SELECT

        1 character [1 or 2]

        1 = VPP on programming socket pin 1

        2 = VPP on programming socket pins 5 and 14

        Example - 16F83 = VPP 2

        Value = 2

        Reason - programming info

D       EEPROM TYPE CHIP PROGRAMMING DELAY

        1 character [L or S]

        L = long  = 20mS

        S = short = 5mS

        Not used for non EEPROM types

        Value - 16F83 = L

        Value - 16F877 = S (can program with a shorter time)

        Reason - programming info

C       CHIP PIN COUNT

        1 character [0 - 1 - 2 or 3]

        0 = 8 pins

        1 = 18 pins

        2 = 28 pins

        3 = 40 pins

        Example - 16F83 = 18 pins

        Value = 1

        Reason - programming LCD display info

W       CODE PROTECT FUSE WARNING

        1 character [Y or N]

        Example - 16F83 = not needed

        Example - 18C242 = needed

        16F83 value = N, 18C242 value = Y

        Reason - programming fuse confirmation

T       CHIP AND FILE TYPE

        1 character [M or 2]

        Example - 16F83 = M = 14 bit - INHX8M files

        Example - 18C242 = 2 = 16 bit - INHX32 files

        16F83 value = M, 18C242 value = 2

        Reason - programming and file match info

B       BOOT PROGRAMMING ALLOWED

        1 character [Y or N]

        Example - 16F83 = can’t internally reprogram

        Example - 16F877 = can internally reprogram

        16F83 value = N, 16F877 value = Y

        Reason - program mode info

I       ID WORD COUNT

        1 character [1 or 2]

        Example - 16F83 = 4 ID locations

                - 1 nibble per ID = 1 word

        Example - 18C242 = 8 ID locations

                - 1 nibble per ID = 2 words

        16F83 value = 1, 18C242 value = 2

        Reason - programming info

F       FUSE WORD COUNT

        1 character [1 or 4]

        Example - 16F83 = 1 fuse word

        Example - 18C242 = 4 fuse words

        16F83 value = 1, 18C242 value = 4

        Reason - programming info

FUSE AND OR VALUES

VALUE    3FFF 0000 FFFF 0000 FFFF 0000 FFFF 0000

BYTE     HHLL HHLL HHLL HHLL HHLL HHLL HHLL HHLL

TYPE     AND0 OR0  AND1 OR1  AND2 OR2  AND3 OR3

These values are used to provide masks for the configuration fuses and set the erased state for each fuse word. Some fuse bits are always set to 1 and some are always set to 0 as is outlined in the data sheet for the respective devices.

Example 16C74

     3FBF 3F80 FFFF 0000 FFFF 0000 FFFF 0000

Before the fuse value is stored in memory, it is ANDed with 3FBF which clears bit 6 to zero. The value is then Ored with 3F80 to make sure these bits are set to one.

The AND OR word values 1 to 3 are not used for the 16C74 because it only has 1 fuse word.

Example 18C242 which has 4 fuse words

The 4 fuse words are each ANDed and Ored with each of these values to make sure the fuse bits are set or cleared.

     E7FF C000 0F0F 0000 0100 0000 0003 0002

Do not place extra spaces in the line of text.


RAM Name Mnemonics

These lines tell the pocket the name and address located in RAM and are used for the dissassembly function. The names shown here are just the standard ones used for the special function registers, but you can define your own if you wish.

The hatch character designates a RAM address definition - (#)

Commas separate definitions

Semicolons separate names and address values

Address values are 2 digit HEX

This tells the Pocket to display the name INDF when it dissassembles a RAM address value 00h in RAM page 0.

#0,INDF;00

This tells the Pocket to display the particular name if an instruction refers to any of these addresses listed in RAM page 0.

#0,INDF;00,TMR0;01,PCL;02,STATUS;03,FSR;04,..... upto end of data

This tells the Pocket to display the particular name if an instruction refers to any of these addresses listed in RAM page 1.

#1,OPT_REG;01,TRISA;05,TRISB;06,EECON1;08,EECON2;09

Do not place a comma after the last definition and all definitions must appear on the same line.

Do not place spaces in the line of text except in name fields.


RAM Bit Mnemonics

These lines tell the pocket the name of a bit located in a RAM address and are used for the dissassembly function. These ones are just the standard names used for the special function registers for each chip, but you can define your own if you wish.

The percent character designates a RAM bit definition - (%)

The RAM page is listed as 1 digit HEX values

The RAM addresses are listed as 2 digit HEX values.

Commas seperate RAM address value and definitions - (,)

Bit definitions are listed starting from bit 0 and end with bit 7.

This tells the Pocket that these are the bit names for RAM address 03h which is in RAM page 0. (STATUS)

%003,C,DC,Z,PD,TO,RP0,RP1,IRP

This tells the Pocket that these are the bit names for RAM address 01h which is in RAM page 1. (OPTION)

%101,PS0,PS1,PS2,PSA,T0SE,T0CS,INTEDG,RBPU

This tells the Pocket that these are the bit names for RAM address 08h which is in RAM page 1, (EECON1) and some names are not defined.

%108,RD,WR,WREN,WRERR,EEIF,?,?,?

All 8 bit positions must be listed, so if a bit does not have a defined name, then place a question mark (?) in the corresponding bit position.

Do not place a comma after the last definition and all definitions for a single register address must appear on the same line.

The length of the RAM name definition and the RAM bit definition should not exceed 16 characters or it will not be displayed correctly.

OK

STATUS,RP0

NOT OK

OPTIONREGISTER,INTEDG

Do not place spaces in the line of text except in name fields.


Fuse Mnemonics

These lines tell the pocket the name of Fuses and are used for the dissassembly function. These ones are just the standard names used for the selected chip, but you can define your own if you wish.

@0OSC,0003+0000LP+0001XT+0002HS+0003RC

This tells the Pocket that these are fuse definitions. [@]

The 0 following the @ character designates the fuse number. [0]

Following this is the fuse name. [OSC]

This is seperated with a comma.

Next is a HEX value of the bit locations that make up this fuse definition. [0003]

This means that bit positions 0 and 1 are used for the OSC fuse.

Following that are the binary patterns for each combination of that particular fuse seperated by [+] characters.

The OSC fuse has 4 options available.

LP, XT, HS and RC

Each of these options has a corresponding fuse value.

LP	0000

XT	0001

HS	0010

RC	0011

These are the values that will be used when these options are changed when dissassembling and modifying this fuse.

This tells the pocket that it is a fuse definition, but the “/” character means that it is also the last fuse definition for fuse number 0.

/0CODE PROTECT,3FF0+3FF0OFF+0000ON

The following gives another example of a chip that has 4 fuse words as in the PIC18C242.

@0CODE PROTECT,00FF+00FFOFF+0000ON

/0OSCEN,2000+2000OFF+0000ON

@1PWRTEN,0001+0001OFF+0000ON

@1WDTEN,0100+0000OFF+0100ON

/1WDTPS,0E00+00001:128+02001:64+04001:32+06001:16+08001:8+0A001:4

/2CCP2MX,0100+0000OFF+0100ON

/3STVREN,0001+0000OFF+0001ON

This is the same but the fuse option names are highlighted in red. These will be displayed when dissassembling the fuse.

@0CODE PROTECT,00FF+00FFOFF+0000ON

/0OSCEN,2000+2000OFF+0000ON

@1PWRTEN,0001+0001OFF+0000ON

@1WDTEN,0100+0000OFF+0100ON

/1WDTPS,0E00+00001:128+02001:64+04001:32+06001:16+08001:8+0A001:4

/2CCP2MX,0100+0000OFF+0100ON

/3STVREN,0001+0000OFF+0001ON

Each fuse value must be 4 HEX digits.

@0CODE PROTECT,00FF+00FFOFF+0000ON

/0OSCEN,2000+2000OFF+0000ON

Do not put spaces any where except in name fields.

OK

@0CODE PROTECT,00FF+00FFOFF+0000ON

Not OK

@ 0 CODE PROTECT,00FF + 00FF OFF + 0000 ON


File End

This line must be at the end of the data file.

!!!end


MessageFile

This file called pocket.msg is used by pocket.exe to build up a system information file and is appended to the Chip Data File before it is uploaded to the Pocket programmer.

It is a simple text file with this format.

02,FUNCTION:

02 is the 2 digit HEX message number and can be anywhere from 02 to FF.

FUNCTION: is the message text and cannot be greater than 16 characters.

It is not advisable to alter these messages, but you can if you want to make them more appropriate to your needs or if you add more functions to the programmer.

The message number is passed to the MessProc(x) subroutine in the Tpocket.asm source file. X is either 1 or 2 for the LCD line to display the message on.


Powerup Keypress

There are extra functions available if you hold down one of the keys when the Pocket is powered up.

MicroPro Programmer

This button allows you to use the Windows® based programmer called MicroPro. See the help file for MicroPro to find out how it functions.

This interface will not support all PICmicro®MCU chips. Messages on the PC will advise which ones can’t be used.

Calibrate

This button will clear the calibration data. If you do not proceed and recalibrate the verification voltages, the Pocket will not function.

Clear All

This button will clear the internal PIC16F873 EEPROM. This means that no operation data will be found and the chip will have to be initialised again.

Reload Data

This button asks you to start pocket.exe and reload the Chip Information File.


Pocket.exe

The pocket.exe program is a tool kit for the Pocket programmer. It’s purpose is to help transfer HEX files to and from the Pocket to the PC.

It also provides a simple editor so that the Chip Data File can be edited. This will load a file called chipdat.txt from the installation directory and display it. After editing the file, you will have the option to save it.

At times, the Pocket will need access to this program so that it can perform certain functions, and when it needs to, it will display this message.

     RUN POCKET.EXE

     PRESS ANY KEY

When you see this message, run the pocket.exe program and then press any key. Do not press a key before running the program because commands are interchanged directly after the keypress.

The storage indicator will not be visible unless transferring a new Chip Data File.


Main Menu Items

File Manager

Select Chip

Dissassemble

Fuse

Program

Read

Verify

Blank

Bootloader

Program Mode


Function: File Manager

Menu tree

The file manager allows you to manipulate the files stored in the Pocket’s on board memory. There is 64K of memory space available that can be used to store up to 32 HEX files.

Import

This requires pocket.exe to transfer the file data.

The import routine checks the file size of the currently selected chip and only requests that much data. If the file size that is selected and loaded by pocket.exe is greater than the requested file size, then it will be truncated to match. If the file size is smaller, then it will be padded with blank data.

When the import function has completed, the PC will display a memory usage map.

Export

This requires pocket.exe to transfer the file data.

The export data is transferred to the PC along with the filename details. The filename will be displayed with the option to change the name when it is ready to save. If the filename is changed when saving, you will be asked if you want to change the filename in the Pocket’s memory as well.

Delete

This item allows you to delete single files or all files from the Pocket’s memory.

File Info

This item displays information about the currently selected file and has the following format.

     P16F83_2B

     BLOCKS  5 INHX8M

The first line is the filename.

The second line shows how many memory blocks are used to store this file followed by the file type.

There are 256 blocks available for use and each block holds 256 bytes.

Usage

This item requires pocket.exe and asks the PC to graphically show a block usage report.


Function: Select Chip

Menu tree

This item allows you to select a chip.

The information supplied from the chip data file will be used for programming and dissassembly.


Function: Dissassemble

Menu tree

This item allows you to dissassemble a HEX file. The information for dissassembly comes from the chip data file for the selected chip.

If the file size does not match the size of the selected chip then an error message will be displayed.

ROM Dissassembly

     0000 0000 BTFSC

     STATUS,RP0

The first line shows the current ROM address in 4 digit HEX format with the cursor under the units digit. You can shift the cursor back and forward and increment or decrement this address to display the contents of different ROM addresses.

The next 4 digits are the HEX contents of the current ROM address. You can shift the cursor back and forward and increment or decrement this data to change the contents of different ROM addresses.

The Mnemonic data will be changed each time the address or the data is changed. If the ROM data is changed and it cannot be dissassembled correctly then the Mnemonic will show an instruction error.

     ?????

Moving the cursor past the ROM data digits displays a RAM page selector so that you can view Mnemonics for different RAM pages.

     RAM PAGE = 0

Moving the cursor again will display an Exit or Save menu.

     K1 = MAIN MENU

     K4 = SAVE CHANGE

The SAVE CHANGE item will not appear if no changes were made to the data.

You cannot modify multiple ROM locations. You must modify each location and save the data before modifying other locations. If you modify a ROM location and change the address before saving the data, the changes will not take effect.

If the chip has EEPROM storage available, then the dissassembly display will give you the option to display the ROM or the EEPROM memory.

     K1 = VIEW ROM

     K4 = VIEW EEPROM

EEPROM Dissassembly

     00: 50 ‘P’

The first 2 digits are the HEX EEPROM address and can be modified to view different EEPROM addresses. The next two digits show the HEX contents of the current EEPROM address. This data can be modified and saved in the same way as the ROM section. The letter ‘P’ shows the ASCII representation of the current HEX value.


Function: Fuse

Menu tree

This item allows you to view and modify the value of a Fuse. You will be prompted for a filename and then whether you want to view the Config Fuse or the ID value.

     CONFIG        <

     ID

Config Fuse

The Mnemonic data for the fuse display comes from the Chip Data File.

     OSC              <

     LP          0000

While the top line is selected, you can move through each fuse item.

     WDT              <

     OFF          0000

     PWRTE            <

     ON          0000

While the bottom line is selected, you can move through each option in each fuse item.

     OSC

     LP          0000 <

     OSC

     XT          0001 <

     OSC

     HS          0002 <

     OSC

     RC          0003 <

The 4 digits display the current HEX value of the fuse. This value changes according to the information in the Chip Data File.

After changing the data, you have the option to save it.

If the selected chip has more than 1 fuse register, then you will be asked to select a fuse number for dissassembly.

     FUSE NUMBER

     0

ID

The ID value can be modified by shifting the cursor back and forth and incrementing or decrementing each location.

Single ID

     ID

     0000

Dual ID

     ID

     0000 0000


Function: Program

Menu tree

This item allows you to program a device after selecting a filename.

The chip will be checked to see if it is erased first, or if the chip is an EEPROM type, then it will be erased.

Some chips do not get placed so that pin #1 of the chip mates with pin #1 of the socket. Some chips mate pin #1 with pin #2 of the socket. A message will appear on screen that tells you where to place the chip in relation to the programming socket. This determined by the pin count of the chip.

This means pin #1 of the chip mates with pin #1 of the socket.

     INSERT CHIP 1-1

     K1 = START

This means pin #1 of the chip mates with pin #2 of the socket.

     INSERT CHIP 1-2

     K1 = START

After the chip has been successfully programmed, the chip will be verified at the upper and lower verify voltages if the option is selected.

Programming will cease if an error occurs.


Function: Read

Menu tree

This item allows you to read a device and the data is stored in the program storage space.

Before the read function takes place, the required storage space is determined and if there is not enough available, an error message will be displayed.

If there is room available then the file will be stored and it will be given a filename which has the following format.

P + ChipName + _ + HH

ChipName is the type of chip currently selected.

HH is a random 2 digit HEX value.

Example with 16F83 selected.

    P16F83_8D

Some chips do not get placed so that pin #1 of the chip mates with pin #1 of the socket. Some chips mate pin #1 with pin #2 of the socket. A message will appear on screen that tells you where to place the chip in relation to the programming socket. This determined by the pin count of the chip.

This means pin #1 of the chip mates with pin #1 of the socket.

     INSERT CHIP 1-1

     K1 = START


Function: Verify

Menu tree

This item allows you to verify a chip with a HEX file in memory.

It will be verified at the upper and lower verify voltages if the option is selected.

     VERIFY START   <

     VERIFY SETUP

The MultiV verify option can be turned on or off and the verify voltages can be set.

     MULTY V ON-OFF <

     MULTI V VOLTS

On and Off

     MULTY V = OFF  <

     MULTY V = ON

Set Upper V or Lower V

     SET UPPER V    <

     SET LOWER V

The display will show the voltage being set and you can set the voltage from 2.00 volts to 6.00 volts in 0.25 volt steps.

     SET V UPPER

     2.00


Function: Blank

Menu tree

This item allows you to blank check a device.

     VERIFY       <

     ERASE CHIP

If the device is listed as EEPROM type then you will also have the option to erase the chip.


Function: Bootloader

Menu tree

This item allows you to use the Pocket as a bootloader. The target chip must have a resident bootloader program that is compatable with this program.

ROMzap is such a program and can be found at

http://www.bubblesoftonline.com

This option is not available for a particular chip unless the option is enabled in the Chip Data File.

When the Boot Mode is enabled, the Pocket will attempt to communicate with the bootloader program on the target chip.

     PINGING...

If it cannot make contact, then the bootloader goes into idle mode and waits for the bootloader to make contact.

     BOOTLOADER

     IDLE

When contact is made, the type of the bootloader chip is displayed.

     ONLINE

     16F873

After a short time the boot menu will be displayed where you can either program the chip or run the program that is in the target chip.

Program

     BOOT FUNCTION:

     PROGRAM

This will alow you to select a file for programming. If there is a file missmath then an error  will be displayed.

Run

     BOOT FUNCTION:

     RUN

This will allow you to run the program on the target chip. You will be prompted with A confirmation message.

     ROM PROGRAMMED?

     K1 = START

Press Key 1 if you know the chip can run a program.

If the bootloader supports breakpoints, then do not enable them as the Pocket has no code to deal with them.


Function: Program Mode

Menu tree

This item allows you to set the programmer for Internal or ICSP mode.

     INTERNAL    <

     ICSP

The only difference is that the programmer will override the VPP selection and VPP1 will be the source of the VPP supply. This is the supply that is fed out of the ICSP programming port.