SPRUIY4B February 2023 – May 2024 TMS320F2800152-Q1 , TMS320F2800153-Q1 , TMS320F2800154-Q1 , TMS320F2800155 , TMS320F2800155-Q1 , TMS320F2800156-Q1 , TMS320F2800157 , TMS320F2800157-Q1
The CAN-FD bootloader asynchronously transfers code from CAN-FD to internal memory and follows the same bootloader execution flow as Section 5.7.7.2.5. The host can be any CAN-FD node. The communication is first done with 11-bit standard identifiers (with a MSGID of 0x1) using two bytes per data frame. The CAN-FD bootloader uses a fixed 64-byte payload size and default bit rate of 1-Mbps for nominal phase and 2-Mbps for data phase. Bit data timing can be optionally reconfigured after receiving first data segment. The CAN-FD bootloader supports same debug boot mode and GPIO option-0 as CAN bootloader.
Mailbox 1 is programmed with a standard MSGID of 0x1 for bootloader communication. The CAN-FD host transmits only two bytes at a time, LSB first and MSB next. For example, to transmit the word 0x08AA to the device, transmit AA first, followed by 08. The program flow of the CAN-FD bootloader is identical to the CAN bootloader. The data sequence for the CAN-FD bootloader is shown in Table 5-34.
Bytes | Byte 1 of 2 | Byte 2 of 2 | Description | |
---|---|---|---|---|
1 | 2 | AA | 08 | 0x08AA (KeyValue for memory width = 16 bits) |
3 | 4 | XX (for example, BB) |
XX (for example, AA) |
0:
Ignored Nonzero: Custom nominal bit register timing [31:16] |
5 | 6 | XX (for example, DD) |
XX (for example, CC) |
0:
Ignored Nonzero: Custom nominal bit register timing [15:0] (NBTR = 0xAABBCCDD) |
7 | 8 | XX (for example, BB) |
XX (for example, AA) |
0:
Ignored Nonzero: Custom nominal bit register timing [31:16] |
9 | 10 | XX (for example, DD) |
XX (for example, CC) |
0:
Ignored Nonzero: Custom nominal bit register timing [15:0] (DBTR = 0xAABBCCDD) |
11 | 12 | 00 | 00 | reserved |
13 | 14 | 00 | 00 | reserved |
15 | 16 | 00 | 00 | reserved |
17 | 18 | 00 | 00 | reserved |
19 | 20 | BB | AA | Entry point PC[22:16] |
21 | 22 | DD | CC | Entry point PC[15:0] (PC = 0xAABBCCDD) |
23 | 24 | NN | MM | Block size of the first block of data to load = 0xMMNN words |
25 | 26 | BB | AA | Destination address of first block Addr[31:16] |
27 | 28 | DD | CC | Destination address of the first block Addr[15:0] (Addr = 0xAABBCCDD) |
29 | 30 | BB | AA | First word of the first block in the source being loaded = 0xAABB |
... ... ... |
.... Data for this section. ... |
|||
. | BB | AA | Last word of the first block of the source being loaded = 0xAABB | |
. | NN | MM | Block size of the second block to load = 0xMMNN words | |
. | BB | AA | Destination address of the second block Addr[31:16] | |
. | DD | CC | Destination address of the second block Addr[15:0] | |
. | BB | AA | First word of the second block in the source being loaded | |
. | … | |||
n | n+1 | BB | AA | Last
word of the last block of the source being loaded (More sections if required) |
n+2 | n+3 | 00 | 00 | Block size of 0000h - indicates end of the source program |