SLAU358Q September 2011 – October 2019
The data frame format follows the TI MSP serial standard protocol (SSP) rules, extended with a preceding synchronization sequence (SS), as described in Section 3.3. The MSP Gang Programmer is considered the receiver in Table 3-1, which details the data frame for firmware commands. The redundancy of some parameters results from the adaptation of the SSP or to save boot ROM space.
The data frame format of the firmware commands is shown in Table 3-1.
The following abbreviations are used in Table 3-1.
CMD | Command identification |
R | Do not use this command. Used for internal communication. |
T | Target number (1 to 8) |
L1, L2 | Number of bytes in AL through Dn. The valid values of these bytes are restricted as follows: L1 = L2, L1 < 255, L1 even. |
A1, A2, A3 | Block start address or erase (check) address or jump address LO or HI byte. The bytes are combined to generate a 24-bit word as follows: Address = A3 × 0x10000 + A2 × 0x100 + A1 |
LL, LH | Number of pure data bytes (maximum 250) or erase information LO or HI byte or block length of erase check (max is 0xFFFF). |
D1...Dn | Data bytes |
CKL, CKH | 16-bit checksum LO or HI byte |
xx | Can be any data |
– | No character (data byte) received or transmitted |
ACK | The acknowledge character returned by the MSP-GANG can be either DATA_ACK = 0x90 (frame was received correctly, command was executed successfully) or DATA_NAK = 0xA0 (frame not valid (for example, wrong checksum, L, L2), command is not defined, is not allowed. |
PRS | DATA_IN_PROGRESS = 0xB0 – Tasks in progress. Use Get Progress Status (0xA5) command to get the status and check when task is finished. |
MSP-GANG Firmware Command | PROMPT | CMD | L1 | L2 | A1 | A2 | A3 | A4 | LL | LH | D1 | D2...Dn | CLK | CLH | ACK |
"Hello" | 0D | – | – | ACK | |||||||||||
Boot Commands Disable | 3E | 2A | R | R | R | R | R | R | R | R | R | R | CKL | CKH | ACK |
Boot Commands Enable | 3E | 2B | R | R | R | R | R | R | R | R | R | R | CKL | CKH | ACK |
Diagnostic | 3E | 32 | 04 | 04 | 00 | 00 | – | – | 00 | 00 | – | – | CKL | CKH | – |
Diagnostic response | 80 | 0 | 1E | 1E | D1 | D2 | D3 | D4 | D5 | D6 | D7 | D08...D1E | CKL | CKH | – |
Set Baud Rate | 3E | 38 | 06 | 06 | D1 | 00 | – | – | 00 | 00 | 00 | 00 | CKL | CKH | ACK |
Erase Firmware | 3E | 39 | R | R | R | R | R | R | R | R | R | R | CKL | CKH | ACK |
Load Firmware | 3E | 3A | R | R | R | R | R | R | R | R | R | R | CKL | CKH | ACK |
Exit Firmware Update | 3E | 3B | R | R | R | R | R | R | R | R | R | R | CKL | CKH | ACK |
Get Label | 3E | 40 | 04 | 04 | 00 | 00 | – | – | 00 | 00 | – | – | CKL | CKH | – |
Response-Get Label | 80 | 00 | 8C | 8C | D1 | D2 | D3 | D4 | D5 | D6 | D7 | D8...D140 | CKL | CKH | – |
Get Progress Status | A5 | – | – | ||||||||||||
Response----,,,,--- | 80 | A5 | D1 | D2 | D3 | D4 | D5 | D6 | D7 | D7 | D8 | D9...D48 | – | – | |
Main Process | 3E | 31 | 04 | 04 | 00 | 00 | – | – | 00 | 00 | – | – | CKL | CKH | PRS |
Interactive Task | 3E | 46 | n | n | D1 | D2 | – | – | D3 | D4 | D5 | D6...Dn | CKL | CKH | – |
Response---,,--- | 80 | 0 | n | n | D1 | D2 | D3 | D4 | D5 | D6 | D7 | D8...Dn | CKL | CKH | – |
Erase Image | 3E | 33 | 04 | 04 | 00 | 00 | – | – | 00 | 00 | – | – | CKL | CKH | PRS |
Get Info C-D | 3E | 41 | 04 | 04 | A1 | 00 | – | – | 00 | 00 | – | – | CKL | CKH | – |
Response Get Info | 80 | 0 | 80 | 80 | D1 | D2 | D3 | D4 | D5 | D6 | D7 | D8...D128 | CKL | CKH | |
Write Info C-D | 3E | 42 | 84 | 84 | A1 | 00 | 80 | 0 | D1 | D2...D128 | CKL | CKH | ACK | ||
Get Access Key St | 3E | 44 | 04 | 04 | 00 | 00 | – | – | 00 | 00 | – | – | CKL | CKH | ACK |
Load Image | 3E | 43 | n | n | A1 | A2 | A3 | 00 | –6 | 00 | D1 | D2...Dn-6 | CKL | CKH | ACK |
Verify Image CRC | 3E | 45 | 08 | 08 | A1 | A2 | A3 | A4 | LL | LH | D1 | D2 | CKL | CKH | ACK |
Get Image Header | 3E | 47 | 06 | 06 | A1 | A2 | 00 | 00 | n | 00 | – | – | CKL | CKH | – |
Response–,,,-- | 80 | 0 | n | n | D1 | D2 | – | – | D3 | D4 | D5 | D6...Dn | CKL | CKH | |
Read Gang Buffer | 3E | 49 | 4 | 4 | T | 0 | – | – | n | 0 | – | – | CKL | CKH | – |
Response–,,,-- | 80 | 0 | n | n | D1 | D2 | D3 | D4 | D5 | D6 | D7 | D8...Dn | CKL | CKH | |
Write Gang Buffer | 3E | 4A | n+4 | n+4 | T | 0 | – | – | n | 0 | D1 | D2...Dn | CKL | CKH | ACK |
Disable API Interrupts | 3E | 4C | 4 | 4 | R | R | – | – | R | R | – | – | CKL | CKH | ACK |
Select Image | 3E | 50 | 4 | 4 | A1 | 0 | – | – | 0 | 0 | CKL | CKH | ACK | ||
Display Message | 3E | 54 | n+4 | n+4 | A1 | A2 | – | – | n | 00 | D1 | D2...Dn | CKL | CKH | ACK |
Set IO State | 3E | 4E | 0C | 0C | VL | VH | – | – | 08 | 00 | D1 | D2...D8 | CKL | CKH | ACK |
Set Temporary Configuration | 3E | 56 | 06 | 06 | A1 | A2 | – | – | 2 | 0 | D1 | D2 | CKL | CKH | ACK |
Get Gang Status | 3E | 58 | 04 | 04 | A1 | 0 | – | – | 0 | 0 | – | – | CKL | CKH | – |
Response —,,,--- | 80 | 0 | n | n | D1 | D2 | D3 | D4 | D5 | D6 | D7 | D8...Dn | CKL | CKH | |
Remote Selftest | 3E | 71 | n+6 | n+6 | A1 | A2 | A3 | A4 | n | 0 | D1 | D2...Dn | CKL | CKH | |
Response----,,--- | 80 | 0 | n | n | D1 | D2 | D3 | D4 | D5 | D6 | D7 | D8...Dn | CKL | CKH |