SPRUHX5I August 2014 – May 2024 TMS320F28374S , TMS320F28375S , TMS320F28375S-Q1 , TMS320F28376S , TMS320F28377S , TMS320F28377S-Q1 , TMS320F28378S , TMS320F28379S
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.10.5, shown here in Table 4-22. 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. Figure 4-19 illustrates the flow for USB boot mode.
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.
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 first block Addr[31:16] |
27 | 28 | DD | CC | Destination address of 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 second block Addr[31:16] | |
. | DD | CC | Destination address of 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 |