Protocol
Protocol
K128 = 0
K149-A = 1
K149-B = 2
K150 = 3
7 = PROGRAM ROM
Then expects..
ROM word count High ---- ie. Chip ROM size
ROM word count Low
RETURNS 'Y' (ASCII)
Then expects 32 bytes of ROM data High Byte - Low Byte
Fills Buffer_A
RETURNS 'Y' (ASCII)
Then expects 32 bytes of ROM data High Byte - Low Byte
Fills Buffer_B in background as it is received
8 = PROGRAM EEPROM
Then expects..
EEPROM byte count High
EEPROM byte count Low
(NOTE: function expects an EVEN count of bytes
and byte count must be 2 more than required)
RETURNS 'Y' (ASCII)
Programming EEPROM Loop
Then expects..
EEPROM byte x
EEPROM byte x + 1
Byte count reached...
Y - RETURNS 'P' (ASCII)
Stays at Command Jump Table
N - RETURNS 'Y' (ASCII)
Programs 2 EEPROM locations
Continue at Programming EEPROM Loop
9 = PROGRAM ID FUSES
Then expects...
'0' '0' (ASCII)
14 bit PIC - ID1 ID2 ID3 ID4 'F' 'F' 'F' 'F' (ASCII)
FUSE Value Low
FUSE Value High
0xFF (Byte)
0xFF (Byte)
0xFF (Byte)
0xFF (Byte)
0xFF (Byte)
0xFF (Byte)
0xFF (Byte)
0xFF (Byte)
0xFF (Byte)
0xFF (Byte)
0xFF (Byte)
0xFF (Byte)
Programs ID and FUSE
RETURNS 'Y' (ASCII)
Stays at Command Jump Table
or
16 bit PIC - ID1 ID2 ID3 ID4 1D5 1D6 1D7 1D8 (ASCII)
FUSE1 Value Low
FUSE1 Value High
FUSE2 Value Low
FUSE2 Value High
FUSE3 Value Low
FUSE3 Value High
FUSE4 Value Low
FUSE4 Value High
FUSE5 Value Low
FUSE5 Value High
FUSE6 Value Low
FUSE6 Value High
FUSE7 Value Low
FUSE7 Value High
Programs ID
RETURNS 'Y' (ASCII)
Stays at Command Jump Table
10 = PROGRAM CALIBRATION
Then expects...
Calibration High (Byte)
Calibration Low (Byte)
FUSE High (Byte)
FUSE Low (Byte)
CALIBRATION ERROR RETURNS 'C' (ASCII)
FUSE ERROR RETURNS 'F' (ASCII)
NO ERRORS RETURNS 'Y' (ASCII)
Stays at Command Jump Table
11 = READ ROM
RETURNS ALL ROM DATA UP UNTIL ADDRESS SPECIFIED
WHEN INITIALISING VARIABLES IN HIGH/LOW FORMAT
Stays at Command Jump Table
12 = READ EEPROM
13 = READ CONFIGURATION
RETURNS
'C' (ASCII)
ChipID_L (Byte)
ChipID_H (Byte)
ID1 (Byte)
ID2 (Byte)
ID3 (Byte)
ID4 (Byte)
ID5 (Byte)
ID6 (Byte)
ID7 (Byte)
ID8 (Byte)
Fuse1_L (Byte)
Fuse1_H (Byte)
Fuse2_L (Byte) can also be CAL word #1 or address 0x2008, or 10Fxxx Backup
CAL word
Fuse2_H (Byte)
Fuse3_L (Byte) can also be CAL word #2 or address 0x2009
Fuse3_H (Byte)
Fuse4_L (Byte)
Fuse4_H (Byte)
Fuse5_L (Byte)
Fuse5_H (Byte)
Fuse6_L (Byte)
Fuse6_H (Byte)
Fuse7_L (Byte)
Fuse7_H (Byte)
Calibrate_L (Byte)
Calibrate_H (Byte)
Stays at Command Jump Table
NOTE: Data fields are filled depending on chip type else are 0xFF
14 = READ CALIBRATION
RETURNS
Calibrate_H (Byte)
Calibrate_L (Byte)
Stays at Command Jump Table
15 = ERASE CHIP
RETURNS 'Y' (ASCII)
21 = GET VERSION
RETURNS
K128 = 0 (Byte)
K149-A = 1 (Byte)
K149-B = 2 (Byte)
K150 = 3 (Byte)
22 = GET PROTOCOL
RETURNS - Protocol number.
Eg 'P013' (ASCII)