Note: Serial quick turn programming (SQTP) is Microchip specified standard for serial
programming of Microchip PIC microcontrollers. Microchip PIC devices allows you to program
a unique serial number into each microcontroller. This number can be used as an entry code,
password, or ID number.
Serialization is done by using a series of RETLW (Return Literal W) instructions, with the
serial number bytes as the literal data. To serialize, you can use Incremental mode
serialization or From file mode serialization.
Incremental serialization offers serial number Split function. Serial number split allows usage
of incremental numbers separated into even or odd bytes and between each byte of serial
number RETLW instruction code is inserted.
From file serialization is using proprietary serial numbers file. This file can consist of various
serial numbers. The numbers can have format suitable for SQTP that means number RETLW
b1 RETLW b2 and so on. Note that Pg4uw serial file format is not compatible with SQTP
serial file generated by Microchip MPLAB.
Device PIC16F628 has 14 bit wide instruction word. Instruction RETLW has 14-Bit Opcode:
Description
RETLW
Return with literal in W
where xx can be replaced by 00 and k are data bits, i.e. serial number byte
Opcode of RETLW instruction is hexadecimal 34KKH where KK is data Byte (serial number
byte)
Let's assume we want to write serial number 1234ABCDH as part of four RETLW instructions
to device PIC. The highest Byte of serial number is the most significant Byte. We want to
write the serial number to device program memory at address 40H. Serial number split us
very useful in this situation. Serialization without serial number split will write the following
number to buffer and device:
Address
Data
0000080
CD AB 34 12 xx xx xx xx xx xx xx xx xx xx xx xx
Note: address 80H is because buffer has byte organization and PIC has word organization
so it has equivalent program memory address 40H. When buffer has word organization x16,
the address will be 40H and number 1234ABCDH will be placed to buffer as following:
Address
Data
0000040
ABCD 1234 xxxx xxxx xxxx xxxx xxxx xxxx
We want to use RETLW instruction so buffer has to be:
Address
Data
0000040
34CD 34AB 3434 3412 xxxx xxxx xxxx xxxx
We can do this by following steps:
MSB
14-Bit word
11
01xx
kkkk
115
LSB
kkkk
Pg4uw
Need help?
Do you have a question about the MEMprog2 and is the answer not in the manual?
Questions and answers