1996 Microchip Technology Inc. DS30154F-page 1
Serialization is a method of programming PIC16/17
microcontrollers whereby each chip is programmed
with a slightly different code. Typically, all locations are
programmed with the same basic code except for a few
contiguous bytes which are programmed with a differ-
ent number (referred to as ‘key’ or ‘ID number’ or ‘serial
number’) in each member. Typical applications of such
programming are remote transmitters for car alarms or
garage door openers where each unit must have a dif-
ferent access code.
Microchip offers a ﬂexible SQTP program, whereby a
customer can simply specify the nature of serialization.
The ‘serial number’ generation and programming will
be taken care of by the factory.
1.0 SERIALIZATION SCHEME
The serial number must reside in contiguous locations
with up to sixteen locations used. Furthermore these
locations must be coded as RETLW NN, where NN=
8-bit random code, in the ﬁnished product. For details
on how the
instruction is typically used for seri-
alization purposes, please see Appendix A. The cus-
tomer code must be supplied without the serial code in
these locations. These locations must be blank or the
assembled value of a
instruction. in the
customer code provided to Microchip. Microchip will
insert the serial code at these locations during pro-
gramming. Hex ﬁles must be in Intel hex 8-bit merged
format. See Appendix B for details.
1.2 Numbering Sc
Random: Truly random numbers are generated. How-
ever, there is no guarantee that the numbers will be
non-repeating although the probability of such an
occurrence will be inﬁnitesimally small for a reasonably
Pseudo-Random: Pseudo-random sequences of
requested length (e.g. 32-bit long if four locations are
used) starting with a 'seed value' selected by the fac-
tory. The customer may optionally specify the starting
value. Pseudo-random sequences, by deﬁnition are
non-repeating until all possible values are used.
Sequential: Sequential numbers are generated. User
speciﬁes the “starting number” and an increment value.
In sequential numbering, the least signiﬁcant digit is in
the lowest memory location. The increment value must
be between 1 and 255.
Numbers are always in hex and not in BCD or any other
Serialized Quick Turn Programming Speciﬁcation for PIC16/17
This document was created with FrameMaker404