SPRUJ53B April 2024 – September 2024 TMS320F28P550SJ , TMS320F28P559SJ-Q1
Figure 4-18 illustrates the flow for USB boot mode. In USB boot mode, the device enumerates with vendor ID 0x1CBE and product ID 0x00FF. The device descriptor and interface descriptor both show the class as 0xFF (vendor-specific), the subclass as 0x00, and the protocol as 0x00. After enumeration, the device waits for data. Data can be sent using bulk OUT transfers to endpoint 1. The data is interpreted as a series of 8-bit bytes in the standard data stream format described in Section 4.8.1, shown in Table 4-40. No reserved bytes are used. Once the data transfer is complete (block size of 0x0000 sent), the device disconnects from the USB bus, allowing other software to make use of the module if desired.
Bytes | First Byte (LSB) | Second Byte (MSB) | Description | |
---|---|---|---|---|
1 | 2 | AA | 08 | 0x08AA (KeyValue for memory width = 16 bits) |
3 | 4 | 00 | 00 | reserved |
5 | 6 | 00 | 00 | reserved |
7 | 8 | 00 | 00 | reserved |
9 | 10 | 00 | 00 | reserved |
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 = 0xAABB CCDD) |
23 | 24 | NN | MM | Block size of the first block of data to load = 0xMMNN words |
25 | 26 | BB | AA | Destination address of the first block Addr[31:16] |
27 | 28 | DD | CC | Destination address of the first block Addr[15:0] (Addr = 0xAABB CCDD) |
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 2nd 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 |
Implementing PC-side USB software is not trivial. It is recommended to use the TI-provided tools and drivers to load data in USB boot mode. Hex and binary files for loader tools can be generated from COFF (.out) files using the hex2000 tool. To produce a plain binary file in the boot loader format, use the following command line:
hex2000 -boot -b Program_to_Load.out -o Binary_Loader_Data.dat
For more information on hex2000, see the TMS320C28x Assembly Language Tools User's Guide.