PIC16F7X FLASH Memory Programming Specification

M
PIC16F7X
FLASH Memory Programming Specification
This document includes the programming
specifications for the following devices:
• PIC16F74
• PIC16F77
1.0
PROGRAMMING THE PIC16F7X
The PIC16F7X is programmed using a serial method.
The Serial mode allows the PIC16F7X to be programmed while in the users’ system, allowing for
increased design flexibility. This programming specification applies to PIC16F7X devices in all packages.
1.1
Hardware Requirements
The PIC16F7X requires two programmable power supplies, one for VDD (2.0V to 5.5V) and the other for VPP
of 12.75V to 13.25V. Both supplies should have a minimum resolution of 0.25V.
1.2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
MCLR/VPP
RA0/AN0
RA1/AN1
RA2/AN2
RA3/AN3/VREF
RA4/T0CKI
RA5/AN4/SS
VSS
OSC1/CLKIN
OSC2/CLKOUT
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RC2/CCP1
RC3/SCK/SCL
40
2
39
RA1/AN1
RA2/AN2
3
4
38
37
RA3/AN3/VREF
RA4/T0CKI
5
36
6
35
RB5
RB4
RB3
RB2
RA5/AN4/SS
7
8
34
33
RB1
RB0/INT
32
31
VDD
30
RD7/PSP7
29
28
RD6/PSP6
RD5/PSP5
9
10
11
12
OSC1/CLKIN
13
14
OSC2/CLKOUT
RB7PGD
RB6/PGC
VSS
27
RD4/PSP4
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
15
26
16
25
RC7/RX/DT
RC6/TX/CK
RC2/CCP1
17
18
24
23
19
20
22
21
RC3/SCK/SCL
RD0/PSP0
RD1/PSP1
TABLE 1-1:
RB7/PGD
RB6/PGC
RB5
RB4
RB3
RB2
RB1
RB0/INT
VDD
VSS
RC7/RX/DT
RC6/TX/CK
RC5/SDO
RC4/SDI/SDA
1
RE2/CS/AN7
VDD
VSS
The Programming mode for the PIC16F7X allows programming of user program memory, special locations
used for ID, and the configuration word.
28
27
26
25
24
23
22
21
20
19
18
17
16
15
MCLR/VPP
RA0/AN0
RE0/RD/AN5
RE1/WR/AN6
Programming Mode
PIC16F73/76
• PIC16F76
PDIP, SOIC
PIC16F74/77
• PIC16F73
Pin Diagram
RC5/SDO
RC4/SDI/SDA
RD3/PSP3
RD2/PSP2
PIN DESCRIPTIONS (DURING PROGRAMMING): PIC16F7X
During Programming
Pin Name
RB6/PGC
Function
Pin Type
CLOCK
I
Pin Description
Clock Input
RB7/PGD
DATA
I/O
MCLR/VPP
MODE CONTROL
P
Data Input/Output
VDD
VDD
P
Power Supply
VSS
VSS
P
Ground
Program Mode Select
Legend: I = Input, O = Output, P = Power
 2002 Microchip Technology Inc.
DS30324B-page 1
PIC16F7X
2.0
PROGRAM MODE ENTRY
2.2
2.1
User Program Memory Map
A user may store identification information (ID) in four
ID locations mapped to [0x2000:0x2003]. It is recommended that each ID location word is written as
‘11 1111 1000 bbbb’, where ‘bbbb’ is ID information. The ID locations can be read after code protection
is enabled.
The user memory space extends from 0x0000 to
0x1FFF (8K), or 0x0000 to 0x0FFF (4K). Table 2-1
shows the actual implementation of program memory
in the PIC16F7X family. Configuration memory begins
at 0x2000, and continues to 0x3FFF. The PC will increment from 0x0000 to 0x1FFF and wrap to 0x0000,
0x2000 to 0x3FFF and wrap around to 0x2000 (not to
0x0000).
ID Locations
To understand the program memory read mechanism
after code protection is enabled, refer to Section 4.0.
Table 4-1 shows specific calculations and behavior for
each of the PIC16F7X devices.
Once in configuration memory, the highest bit of the PC
stays a ‘1’, thus always pointing to the configuration
memory. The only way to point to program memory is
to reset the part and re-enter Program/Verify mode, as
described in Section 2.3.
Configuration memory is selected when the PC points
to any address in the range of 0x2000-0x201F; however, only locations 0x2000 through 0x2007 are implemented. Addressing locations beyond 0x201F will
access program memory (see Figure 2-1).
TABLE 2-1:
IMPLEMENTATION OF
PROGRAM MEMORY IN THE
PIC16F7X FAMILY
Device
Program Memory Size
PIC16F73
0x0000 – 0x0FFF (4K)
PIC16F74
0x0000 – 0x0FFF (4K)
PIC16F76
0x0000 – 0x1FFF (8K)
PIC16F77
0x0000 – 0x1FFF (8K)
DS30324B-page 2
 2002 Microchip Technology Inc.
PIC16F7X
FIGURE 2-1:
PROGRAM MEMORY MAPPING
4K words
8K words
Implemented
Implemented
0h
1FFh
3FFh
Implemented
Implemented
400h
7FFh
Implemented
Implemented
Implemented
Implemented
800h
BFFh
C00h
FFFh
Implemented
1000h
13FFh
1400h
Implemented
Reserved
Implemented
17FFh
1800h
1BFFh
2000h
ID Location
2001h
ID Location
Implemented
Reserved
2002h
1C00h
1FFFh
Reserved
2008h
201Fh
ID Location
2020h
2003h
ID Location
2004h
Reserved
2005h
Reserved
2006h
Device ID
2007h
Configuration Word
Accesses
0x0020
to
0X0FFF
Accesses
0x0020
to
0X1FFF
3FFFh
 2002 Microchip Technology Inc.
DS30324B-page 3
PIC16F7X
2.3
Program/Verify Mode
The address and program counter is reset to 0x0000 by
resetting the device (taking MCLR below VIL) and reentering Programming mode. Program and configuration memory may then be read or verified using the
Read Data and Increment Address commands.
The Program/Verify mode is entered by holding pins
RB6 and RB7 low, while raising MCLR pin from VIL to
VPP. Once in this mode, the user program memory and
the configuration memory can be accessed and programmed in serial fashion. (RB6 and RB7 are Schmitt
Trigger Inputs in this mode.)
2.3.1
The sequence that enters the device into the Programming/Verify mode, places all other logic into the RESET
state. All I/O pins are in the RESET state (high impedance inputs).
RB6 is used as a clock input pin, and RB7 is used for
entering command bits and data input/output. To enter
a command, the clock pin (RB6) is pulsed six times.
Each command bit is latched on the falling edge of the
clock (RB6), with the Least Significant bit (LSb) of the
command being input first. The data on pin RB7 needs
a minimum setup (tset1) and hold time (thold1) with
respect to the falling edge of the clock. The read and
load commands are specified to have a minimum delay
(tdly1) between the command and data. After this delay,
the clock pin is cycled 16 times, with the first cycle being
a START bit (0) and the last cycle being a STOP bit (0).
Data is transferred LSb first (see Figure 5-1).
A device RESET will clear the PC and point to address
0x0000. The ‘Increment Address’ command will increment the PC. The ‘Load Configuration’ command will
set the PC to 0x2000. The available commands are
shown in Table 2-2.
The normal sequence for programming two program
memory words at a time is as follows:
1.
2.
3.
4.
5.
6.
7.
8.
Issue the ‘Load Data’ command to load a word
at the current (even) program memory address.
Issue an ‘Increment Address’ command.
Load a word at the current (odd) program memory address using the ‘Load Data’ command.
Issue a ‘Begin Programming’ command to begin
programming.
Wait tprog (about 1 ms).
Issue an ‘End Programming’ command.
Increment to the next address.
Repeat this sequence as required to write program and configuration memory.
During a read operation, the LSb will be output on pin
RB7 on the rising edge of the second clock pulse and
during a load operation, the LSb will be latched on the
falling edge of the second clock pulse. A minimum
delay (tdly2) is required between consecutive
commands (see Figure 5-2).
To allow for decoding of commands and reversal of
data pin configuration, a time separation of at least
(tdly1) is required between a command and a data
word, or another command (see Figure 5-3).
The available commands are listed below:
The alternative sequence for programming one program memory word at a time is as follows:
1.
2.
3.
4.
5.
6.
•
•
•
•
•
•
•
Set a word for the current memory location using
the ‘Load Data’ command.
Issue a ‘Begin Programming’ command to begin
programming.
Wait tprog.
Issue an ‘End Programming’ command.
Increment to the next address.
Repeat this alternative sequence as required to
write program and configuration memory.
TABLE 2-2:
SERIAL PROGRAM/VERIFY
OPERATION
Load Configuration
Load Data for Memory
Read Data from Memory
Increment Address
Begin Programming
Bulk Erase Program Memory
End Programming
COMMAND MAPPING FOR PIC16F7X
Command
Mapping (LSb … MSb)
Data (LSb first)
Load Configuration (Set PC = 2000h)
0
0
0
0
X
X
0, data (14), 0
Load Data for Memory
0
1
0
0
X
X
0, data (14), 0
Read Data from Memory
0
0
1
0
X
X
0, data (14), 0
Increment Address
0
1
1
0
X
X
Begin Programming
0
0
0
1
X
X
Bulk Erase Program Memory (Chip Erase)
1
0
0
1
X
X
End Programming
0
1
1
1
X
X
DS30324B-page 4
 2002 Microchip Technology Inc.
PIC16F7X
2.3.1.1
Load Configuration
After receiving the Load Configuration command, the
PC will be set to 0x2000 and the data sent with the
command is discarded. The four ID locations and the
configuration word can then be programmed using the
normal programming sequence, as described in
Section 2.3. A description of the memory mapping
schemes of the program memory for normal operation
and Configuration mode operation is shown in
Figure 2-1. After the configuration memory is entered,
the only way to get back to the user program memory
is to exit the Program/Verify Test mode by taking MCLR
low.
2.3.1.6
Erasure of configuration and program memory begins
after this command is received and decoded. The
erase sequence is self-timed and it is not necessary to
issue an ‘End Programming’ command, only to wait for
the appropriate time interval (tera) for the entire erase
sequence, before issuing another command.
This procedure will disable code protection (code protect bit = 1); however, all data within the program memory will be erased when this command is executed and
thus, the security of the data or code is not
compromised.
Note:
2.3.1.2
Chip Erase (Program Memory)
Load Data for Memory
All CHIP ERASE operations must take
place with VDD between 4.75V and 5.25V
(i.e., VDDP).
The device will load in a 14-bit “data word” (LSb first)
when 16 cycles are applied, as described previously. A
timing diagram for the load data command is shown in
Figure 5-1.
2.4
2.3.1.3
The PIC16F7X uses an intelligent algorithm. The algorithm calls for program verification at VDDAPP.
Read Data from Memory
The device will transmit data bits out of the memory
(program or configuration) currently addressed by the
PC, starting with the second rising edge of the clock
input. RB7 will go into Output mode on the second rising clock edge and will revert back to Input mode (hiimpedance) after the 16th rising edge. Data is sent out
LSb first. A timing diagram for this command is shown
in Figure 5-2.
If the device is code protected, user program memory
will read all ‘0’s. Configuration memory can still be read.
The actual chip erase and programming must be done
with VDD in the VDDP range (See Table 5-1).
VDDP
Increment Address
The PC is incremented by one. A timing diagram for
this command is shown in Figure 5-3.
2.3.1.5
= VDD range required during programming
VDDAPP = VDD in the target application
Programmers must verify the PIC16F7X at VDDAPP.
Since Microchip may introduce future versions of the
PIC16F7X with a broader VDD range, it is best that
these levels are user selectable (defaults are OK).
Note:
2.3.1.4
Programming Algorithm Requires
Variable VDD
Any programmer not meeting this requirement may only be classified as a “prototype” or “development” programmer, but
not a “production quality” programmer.
Begin Programming
A ‘Load Data’ command must be issued before
every ‘Begin Programming’ command. Programming of memory (configuration or program) will begin
after this command is received and decoded. Programming requires (tprog) time and is terminated using an
‘End Programming’ command.
 2002 Microchip Technology Inc.
DS30324B-page 5
PIC16F7X
FIGURE 2-2:
PROGRAMMING METHOD FLOW CHART (SHEET 1 OF 3)
START
CHIP ERASE
LOAD
CONFIGURATION
(PC = 2000h)
BLANK CHECK
AT VDD = VDDMIN
PASS?
NO
REPORT POSSIBLE
ERASE FAILURE.
CONTINUE
PROGRAMMING
AT USER’S OPTION
PROGRAM TWO
ID LOCATIONS
VPP = 12.75 TO 13.25V
VDD = VDDP
YES
ALL
ID LOCATIONS
DONE?
PROGRAM TWO
LOCATIONS
VPP = 12.75 TO 13.25V
VDD = VDDP
NO
YES
A
ALL
LOCATIONS
DONE?
NO
YES
VERIFY ALL
PROGRAM MEMORY
LOCATIONS AT
VDD = VDDAPP
PASS?
NO
REPORT VERIFY
FAILURE
AT VDDAPP
YES
DS30324B-page 6
 2002 Microchip Technology Inc.
PIC16F7X
FIGURE 2-3:
A
PROGRAMMING METHOD FLOW CHART (SHEET 2 OF 3)
INCREMENT
ADDRESS TO
CONFIGURATION
WORD
LOAD DATA
FOR MEMORY
BEGIN
PROGRAMMING
WAIT tprog
END
PROGRAMMING
VERIFY ALL
CONFIGURATION
MEMORY LOCATIONS
AT VDD = VDDAPP
NO
PASS?
REPORT VERIFY
ERROR
YES
DONE
 2002 Microchip Technology Inc.
DS30324B-page 7
PIC16F7X
FIGURE 2-4:
PROGRAMMING METHOD FLOW CHART (SHEET 3 OF 3)
VERIFY ALL LOCATIONS
PROGRAM TWO LOCATIONS
START
START
LOAD DATA FOR
MEMORY
(EVEN ADDRESS)
RESET DEVICE,
RETURN TO
PROGRAMMING
MODE
(VDD = VDDAPP)
HAS
PROGRAM
YES
MEMORY BEEN
VERIFIED?
LOAD
CONFIGURATION
NO
INCREMENT
ADDRESS
LOAD DATA FOR
MEMORY
(ODD ADDRESS)
BEGIN
PROGRAMMING
READ DATA FROM
MEMORY
COMPARE DATA
TO EXPECTED
DATA
DOES DATA
MATCH?
NO
FAIL
YES
WAIT tprog
INCREMENT
ADDRESS
END
PROGRAMMING
ALL
LOCATIONS
VERIFIED?
RETURN
NO
YES
INCREMENT
ADDRESS
PASS
RETURN
RETURN
DS30324B-page 8
 2002 Microchip Technology Inc.
PIC16F7X
3.0
CONFIGURATION WORD
TABLE 3-1:
Device ID Word (0x2006)
The PIC16F7X has configuration bits in a configuration
word located at 0x2007. These bits can be cleared
(reads ‘0’), or left unchanged (reads ‘1’), to select various device configurations.
3.1
Device
Device ID Word
The device ID word for the PIC16F7X is located at
2006h. The nine Most Significant bits are the device ID
number, while the five Least Significant bits are the
device revision number.
REGISTER 3-1:
–
–
DEVICE ID VALUE
Dev
Rev
PIC16F73
00 0110 000
n nnnn
PIC16F74
00 0110 001
n nnnn
PIC16F76
00 0110 010
n nnnn
PIC16F77
00 0110 011
n nnnn
CONFIGURATION WORD FOR PIC16F7X
–
–
–
–
–
BODEN
–
CP0
PWRTE WDTE F0SC1 F0SC0
bit 13
bit 0
bit 13-7 Unimplemented: Read as ‘1’
bit 6
BODEN: Brown-out Reset Enable bit(1)
1 = BOR enabled
0 = BOR disabled
bit 5
Unimplemented: Read as ‘1’
bit 4
CP0: Program Memory Code Protection bit
1 = Code protection off
0 = 0000h to 1FFFh code protected (All)
bit 3
PWRTE: Power-up Timer Enable bit(1)
1 = PWRT disabled
0 = PWRT enabled
bit 2
WDTE: Watchdog Timer Enable bit
1 = WDT enabled
0 = WDT disabled
bit 1-0
FOSC1:FOSC0: Oscillator Selection bits
11 = RC oscillator
10 = HS oscillator
01 = XT oscillator
00 = LP oscillator
Note 1: Enabling Brown-out Reset automatically enables Power-up Timer (PWRT), regardless of the
value of bit PWRTE. Ensure the Power-up Timer is enabled any time Brown-out Reset is enabled.
Legend:
R = Readable bit
W = Writable bit
U = Unimplemented bit, read as ‘0’
-n = Value at POR
1 = bit is set
0 = bit is cleared
 2002 Microchip Technology Inc.
x = bit is unknown
DS30324B-page 9
PIC16F7X
4.0
CODE PROTECTION
Once code protection is enabled, all program memory
locations read all ‘0’s; further programming of program
memory is disabled. ID locations and the configuration
word may still be read and programmed (1’s to 0’s
only).
4.1
Procedure to disable code protection:
a)
b)
Issue the ‘Chip Erase’ command.
Wait for the erase cycle time (tera) to pass. The
program memory is erased, then the configuration memory is erased.
Disabling Code Protection
The following procedure should be performed before
any other programming is attempted. This procedure
also turns off code protection (code protect bit = 1);
however, all program memory will be erased when
this procedure is executed and thus, the security of
the code is not compromised.
4.2
Embedding Configuration Word and ID Information in the HEX File
To allow portability of code, the programmer is required to read the configuration word and ID locations from the HEX
file, when loading the HEX file. If configuration word information was not present in the HEX file, then a simple warning
message may be issued. Similarly, while saving a HEX file, configuration word and ID information must be included.
An option to not include this information may be provided.
Microchip Technology Inc. feels strongly that this feature is important for the benefit of the end customer.
DS30324B-page 10
 2002 Microchip Technology Inc.
PIC16F7X
4.3
Checksum Computation
The Least Significant 16 bits of this sum are the
checksum.
The checksum is calculated by reading the contents of
the PIC16F7X memory locations and adding up the
opcodes, up to the maximum user addressable location
(e.g., 0x1FFF for the PIC16F7X). Any carry bits
exceeding 16 bits are neglected. Finally, the configuration word (appropriately masked) is added to the
checksum. Checksum computation for each member of
the PIC16F7X devices is shown in Table 4-1.
Table 4-1 describes how to calculate the checksum for
each device. Note that the checksum calculation differs
depending on the code protection setting. Since the
program memory locations read out differently depending on the code protection setting, the table describes
how to manipulate the actual program memory values
to simulate the values that would be read from a protected device. When calculating a checksum of a
non-protected device, the entire program memory can
simply be read and summed. The configuration word
and ID locations can always be read.
The checksum is calculated by summing the following:
• The contents of all program memory locations
• The configuration word, appropriately masked
• Masked ID locations (when applicable)
TABLE 4-1:
Device
CHECKSUM COMPUTATION
Code Protect
PIC16F73
PIC16F74
PIC16F76
PIC16F77
Legend: CFWD
SUM[a:b]
SUM_ID
Checksum
+
&
Checksum
Blank
Value
0x05E6 at
0x0000
and max
address
OFF
SUM[0x000:0x0FFF] + CFWD & 0x005F
0xF05F
0x7C2D
ALL
CFWD & 0x005F + SUM_ID
0x005E
0x005E
OFF
SUM[0x000:0x0FFF] + CFWD & 0x005F
0xF05F
0x7C2D
ALL
CFWD & 0x005F + SUM_ID
0x005E
0x005E
OFF
SUM[0x000:0x1FFF] + CFWD & 0x005F
0xE05F
0x8C2D
ALL
CFWD & 0x005F + SUM_ID
0x005E
0x005E
OFF
SUM[0x000:0x1FFF] + CFWD & 0x005F
0xE05F
0x8C2D
ALL
CFWD & 0x005F + SUM_ID
0x005E
0x005E
= Configuration Word
= [Sum of locations a to b inclusive]
= ID locations masked by 0x0F, then concatenated into a 16-bit value with ID0 as the most significant nibble.
For example, ID0 = 0x01, ID2 = 0x02, ID3 = 0x03, ID4 = 0x04, then SUM_ID = 0x1234
= [Sum of all the individual expressions] MODULO [0xFFFF]
= Addition
= Bitwise AND
 2002 Microchip Technology Inc.
DS30324B-page 11
PIC16F7X
5.0
PROGRAM/VERIFY MODE ELECTRICAL CHARACTERISTICS
5.1
AC/DC Characteristics
TABLE 5-1:
TIMING REQUIREMENTS FOR PROGRAM/VERIFY MODE
Standard Operating Conditions (unless otherwise stated)
Operating Temperature:
+10°C ≤ TA ≤ +40°C
Operating Voltage:
4.5V ≤ VDD ≤ 5.5V
Characteristics
Sym
Min
Typ
Max
Units
Conditions/Comments
General
VDD level for read and verification
VDD
2.0
5.5
V
VDD level for programming and erasing
VDDP
4.75
5.25
V
High voltage on MCLR for chip erase
and program write operations
VPP
12.75
13.25
V
MCLR rise time (VSS to VPP) for Test
mode entry
tVHHR
1.0
µs
(RB6, RB7) input high level
VIH1
(RB6, RB7) input low level
VIL1
0.8 VDD
0.2 VDD
(Notes 1, 2)
V
Schmitt Trigger input
V
Schmitt Trigger input
Serial Program/Verify
Data in setup time before clock↓
tset1
100
ns
Data in hold time after clock↓
thld1
100
ns
Data input not driven to next clock input
(delay required between
command/data or command/command)
tdly1
1.0
µs
Delay between clock↓ to clock↑ of next
command or data
tdly2
1.0
µs
Clock↑ to data out valid (during read
data)
tdly3
200
ns
Erase cycle time
tera
30
ms
Programming cycle time
tprog
1
—
1
(Note 3)
ms
Note 1: VPP should be current limited to about 100 mA.
2: VPP must remain above VDDP + 4.0V to remain in Programming mode, while not actually erasing or
programming.
3: The chip erase is self-timed.
DS30324B-page 12
 2002 Microchip Technology Inc.
PIC16F7X
FIGURE 5-1:
LOAD DATA COMMAND MODE (PROGRAM/VERIFY)
VPP
1 µs min.
MCLR
tset0
RB6
(CLOCK)
1
2
3
4
5
6
tdly2
1
2
3
4
5
15
16
thld0
RB7
(DATA)
1
0
0
0
X
tset1
STOP
bit
START
bit
X
tset1
}
}
thld1
thld1
}
}
tdly1
1 µs min.
100 ns min.
100 ns min.
Program/Verify Test Mode
RESET
FIGURE 5-2:
READ DATA COMMAND MODE (PROGRAM/VERIFY)
VPP
MCLR
tset0
tdly2
thld0
1
2
3
4
5
1
0
6
1 µs min.
1
2
3
RB6
(CLOCK)
4
5
15
16
tdly3
RB7
(DATA)
0
0
X
STOP
bit
START
bit
X
tdly1
tset1
thld1
1 µs min.
}
}
100 ns min.
RB7 = Output
RB7 = Input
RB7
Input
Program/Verify Test Mode
RESET
FIGURE 5-3:
INCREMENT ADDRESS COMMAND MODE (PROGRAM/VERIFY)
VPP
MCLR
tdly2
1
2
3
4
5
6
1 µs min.
Next Command
1
2
RB6
(CLOCK)
RB7
(DATA)
0
1
1
0
X
tset1
X
X
0
tdly1
thld1
}
}
1 µs min.
100 ns min.
RESET
 2002 Microchip Technology Inc.
Program/Verify Test Mode
DS30324B-page 13
PIC16F7X
NOTES:
DS30324B-page 14
 2002 Microchip Technology Inc.
Note the following details of the code protection feature on PICmicro® MCUs.
•
•
•
•
•
•
The PICmicro family meets the specifications contained in the Microchip Data Sheet.
Microchip believes that its family of PICmicro microcontrollers is one of the most secure products of its kind on the market today,
when used in the intended manner and under normal conditions.
There are dishonest and possibly illegal methods used to breach the code protection feature. All of these methods, to our knowledge, require using the PICmicro microcontroller in a manner outside the operating specifications contained in the data sheet.
The person doing so may be engaged in theft of intellectual property.
Microchip is willing to work with the customer who is concerned about the integrity of their code.
Neither Microchip nor any other semiconductor manufacturer can guarantee the security of their code. Code protection does not
mean that we are guaranteeing the product as “unbreakable”.
Code protection is constantly evolving. We at Microchip are committed to continuously improving the code protection features of
our product.
If you have any further questions about this matter, please contact the local sales office nearest to you.
Information contained in this publication regarding device
applications and the like is intended through suggestion only
and may be superseded by updates. It is your responsibility to
ensure that your application meets with your specifications.
No representation or warranty is given and no liability is
assumed by Microchip Technology Incorporated with respect
to the accuracy or use of such information, or infringement of
patents or other intellectual property rights arising from such
use or otherwise. Use of Microchip’s products as critical components in life support systems is not authorized except with
express written approval by Microchip. No licenses are conveyed, implicitly or otherwise, under any intellectual property
rights.
Trademarks
The Microchip name and logo, the Microchip logo, FilterLab,
KEELOQ, MPLAB, PIC, PICmicro, PICMASTER, PICSTART,
PRO MATE, SEEVAL and The Embedded Control Solutions
Company are registered trademarks of Microchip Technology
Incorporated in the U.S.A. and other countries.
dsPIC, ECONOMONITOR, FanSense, FlexROM, fuzzyLAB,
In-Circuit Serial Programming, ICSP, ICEPIC, microID,
microPort, Migratable Memory, MPASM, MPLIB, MPLINK,
MPSIM, MXDEV, PICC, PICDEM, PICDEM.net, rfPIC, Select
Mode and Total Endurance are trademarks of Microchip
Technology Incorporated in the U.S.A.
Serialized Quick Term Programming (SQTP) is a service mark
of Microchip Technology Incorporated in the U.S.A.
All other trademarks mentioned herein are property of their
respective companies.
© 2002, Microchip Technology Incorporated, Printed in the
U.S.A., All Rights Reserved.
Printed on recycled paper.
Microchip received QS-9000 quality system
certification for its worldwide headquarters,
design and wafer fabrication facilities in
Chandler and Tempe, Arizona in July 1999. The
Company’s quality system processes and
procedures are QS-9000 compliant for its
PICmicro® 8-bit MCUs, KEELOQ® code hopping
devices, Serial EEPROMs and microperipheral
products. In addition, Microchip’s quality
system for the design and manufacture of
development systems is ISO 9001 certified.
 2002 Microchip Technology Inc.
DS30324B - page 15
M
WORLDWIDE SALES AND SERVICE
AMERICAS
ASIA/PACIFIC
Japan
Corporate Office
Australia
2355 West Chandler Blvd.
Chandler, AZ 85224-6199
Tel: 480-792-7200 Fax: 480-792-7277
Technical Support: 480-792-7627
Web Address: http://www.microchip.com
Microchip Technology Australia Pty Ltd
Suite 22, 41 Rawson Street
Epping 2121, NSW
Australia
Tel: 61-2-9868-6733 Fax: 61-2-9868-6755
Microchip Technology Japan K.K.
Benex S-1 6F
3-18-20, Shinyokohama
Kohoku-Ku, Yokohama-shi
Kanagawa, 222-0033, Japan
Tel: 81-45-471- 6166 Fax: 81-45-471-6122
Rocky Mountain
China - Beijing
2355 West Chandler Blvd.
Chandler, AZ 85224-6199
Tel: 480-792-7966 Fax: 480-792-7456
Microchip Technology Consulting (Shanghai)
Co., Ltd., Beijing Liaison Office
Unit 915
Bei Hai Wan Tai Bldg.
No. 6 Chaoyangmen Beidajie
Beijing, 100027, No. China
Tel: 86-10-85282100 Fax: 86-10-85282104
Atlanta
500 Sugar Mill Road, Suite 200B
Atlanta, GA 30350
Tel: 770-640-0034 Fax: 770-640-0307
Boston
2 Lan Drive, Suite 120
Westford, MA 01886
Tel: 978-692-3848 Fax: 978-692-3821
Chicago
333 Pierce Road, Suite 180
Itasca, IL 60143
Tel: 630-285-0071 Fax: 630-285-0075
Dallas
4570 Westgrove Drive, Suite 160
Addison, TX 75001
Tel: 972-818-7423 Fax: 972-818-2924
Detroit
Tri-Atria Office Building
32255 Northwestern Highway, Suite 190
Farmington Hills, MI 48334
Tel: 248-538-2250 Fax: 248-538-2260
Kokomo
2767 S. Albright Road
Kokomo, Indiana 46902
Tel: 765-864-8360 Fax: 765-864-8387
Los Angeles
18201 Von Karman, Suite 1090
Irvine, CA 92612
Tel: 949-263-1888 Fax: 949-263-1338
China - Chengdu
Microchip Technology Consulting (Shanghai)
Co., Ltd., Chengdu Liaison Office
Rm. 2401, 24th Floor,
Ming Xing Financial Tower
No. 88 TIDU Street
Chengdu 610016, China
Tel: 86-28-6766200 Fax: 86-28-6766599
China - Fuzhou
Microchip Technology Consulting (Shanghai)
Co., Ltd., Fuzhou Liaison Office
Unit 28F, World Trade Plaza
No. 71 Wusi Road
Fuzhou 350001, China
Tel: 86-591-7503506 Fax: 86-591-7503521
China - Shanghai
Microchip Technology Consulting (Shanghai)
Co., Ltd.
Room 701, Bldg. B
Far East International Plaza
No. 317 Xian Xia Road
Shanghai, 200051
Tel: 86-21-6275-5700 Fax: 86-21-6275-5060
China - Shenzhen
150 Motor Parkway, Suite 202
Hauppauge, NY 11788
Tel: 631-273-5305 Fax: 631-273-5335
Microchip Technology Consulting (Shanghai)
Co., Ltd., Shenzhen Liaison Office
Rm. 1315, 13/F, Shenzhen Kerry Centre,
Renminnan Lu
Shenzhen 518001, China
Tel: 86-755-2350361 Fax: 86-755-2366086
San Jose
Hong Kong
Microchip Technology Inc.
2107 North First Street, Suite 590
San Jose, CA 95131
Tel: 408-436-7950 Fax: 408-436-7955
Microchip Technology Hongkong Ltd.
Unit 901-6, Tower 2, Metroplaza
223 Hing Fong Road
Kwai Fong, N.T., Hong Kong
Tel: 852-2401-1200 Fax: 852-2401-3431
New York
Toronto
6285 Northam Drive, Suite 108
Mississauga, Ontario L4V 1X5, Canada
Tel: 905-673-0699 Fax: 905-673-6509
India
Microchip Technology Inc.
India Liaison Office
Divyasree Chambers
1 Floor, Wing A (A3/A4)
No. 11, O’Shaugnessey Road
Bangalore, 560 025, India
Tel: 91-80-2290061 Fax: 91-80-2290062
Korea
Microchip Technology Korea
168-1, Youngbo Bldg. 3 Floor
Samsung-Dong, Kangnam-Ku
Seoul, Korea 135-882
Tel: 82-2-554-7200 Fax: 82-2-558-5934
Singapore
Microchip Technology Singapore Pte Ltd.
200 Middle Road
#07-02 Prime Centre
Singapore, 188980
Tel: 65-334-8870 Fax: 65-334-8850
Taiwan
Microchip Technology Taiwan
11F-3, No. 207
Tung Hua North Road
Taipei, 105, Taiwan
Tel: 886-2-2717-7175 Fax: 886-2-2545-0139
EUROPE
Denmark
Microchip Technology Nordic ApS
Regus Business Centre
Lautrup hoj 1-3
Ballerup DK-2750 Denmark
Tel: 45 4420 9895 Fax: 45 4420 9910
France
Microchip Technology SARL
Parc d’Activite du Moulin de Massy
43 Rue du Saule Trapu
Batiment A - ler Etage
91300 Massy, France
Tel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79
Germany
Microchip Technology GmbH
Gustav-Heinemann Ring 125
D-81739 Munich, Germany
Tel: 49-89-627-144 0 Fax: 49-89-627-144-44
Italy
Microchip Technology SRL
Centro Direzionale Colleoni
Palazzo Taurus 1 V. Le Colleoni 1
20041 Agrate Brianza
Milan, Italy
Tel: 39-039-65791-1 Fax: 39-039-6899883
United Kingdom
Arizona Microchip Technology Ltd.
505 Eskdale Road
Winnersh Triangle
Wokingham
Berkshire, England RG41 5TU
Tel: 44 118 921 5869 Fax: 44-118 921-5820
01/18/02
DS30324B-page 16
 2002 Microchip Technology Inc.