SPRUI33H November 2015 – June 2024 TMS320F280040-Q1 , TMS320F280040C-Q1 , TMS320F280041 , TMS320F280041-Q1 , TMS320F280041C , TMS320F280041C-Q1 , TMS320F280045 , TMS320F280048-Q1 , TMS320F280048C-Q1 , TMS320F280049 , TMS320F280049-Q1 , TMS320F280049C , TMS320F280049C-Q1
The parallel general-purpose I/O (GPIO) boot mode asynchronously transfers code from GPIO0 to GPIO7 internal memory. Each value is 8-bits long and follows the same data flow as outlined in Figure 4-12.
Figure 4-12 Overview
of Parallel GPIO Bootloader OperationThe control subsystem communicates with the external host device by polling/driving the GPIO16 and GPIO11 lines. The handshake protocol shown in Figure 4-13 must be used to successfully transfer each word using GPIO[0-7]. This protocol is very robust and allows for a slower or faster host to communicate with the master subsystem.
Two consecutive 8-bit words are read to form a single 16-bit word. The most-significant byte (MSB) is read first followed by the least-significant byte (LSB). In this case, data is read from GPIO[0-7].
The 8-bit data stream is shown in Table 4-25.
| Bytes | GPIO[ 7:0] | Description | ||
|---|---|---|---|---|
| (Byte 1 of 2) | (Byte 2 of 2) | |||
| 1 | 2 | AA | 08 | 0x08AA (KeyValue for memory width = 16 bits) |
| 3 | 4 | 00 | 00 | 8 reserved words (words 2 - 9) |
| ... | ... | ... | ... | ... |
| 17 | 18 | 00 | 00 | Last reserved word |
| 19 | 20 | BB | 00 | Entry point PC[22:16] |
| 21 | 22 | DD | CC | Entry point PC[15:0] (PC = 0x00BB 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 |
The device first signals the host that the device is ready to begin data transfer by pulling the GPIO16 pin low. The host load then initiates the data transfer by pulling the GPIO11 pin low. The complete protocol is shown in Figure 4-13.
Figure 4-13 Parallel
GPIO Bootloader Handshake ProtocolThis process is repeated for each data value to be sent.
Figure 4-14 shows an overview of the Parallel GPIO bootloader flow.
Figure 4-14 Parallel
GPIO Mode Overview
Figure 4-15 shows the transfer flow from the host side. The operating speed of the CPU and host are not critical in this mode, as the host waits for the device and the device, in turn, waits for the host. In this manner, the protocol works with both a host running faster and a host running slower than the device.
Figure 4-15 Parallel
GPIO Mode - Host Transfer Flow
Figure 4-16 shows the flow used to read a single word of data from the parallel port.
Figure 4-16 8-Bit
Parallel GetWord Function