SPRAA85E November 2005 – December 2017 SM320F2812 , SM320F2812-EP , TMS320F280021 , TMS320F280021-Q1 , TMS320F280023 , TMS320F280023-Q1 , TMS320F280023C , TMS320F280025 , TMS320F280025-Q1 , TMS320F280025C , TMS320F280025C-Q1 , TMS320F280040-Q1 , TMS320F280040C-Q1 , TMS320F280041 , TMS320F280041-Q1 , TMS320F280041C , TMS320F280041C-Q1 , TMS320F280045 , TMS320F280048-Q1 , TMS320F280048C-Q1 , TMS320F280049 , TMS320F280049-Q1 , TMS320F280049C , TMS320F280049C-Q1 , TMS320F2801 , TMS320F2801-Q1 , TMS320F2802 , TMS320F2802-Q1 , TMS320F28044 , TMS320F2806 , TMS320F2806-Q1 , TMS320F28062 , TMS320F28062-Q1 , TMS320F28062F , TMS320F28062F-Q1 , TMS320F28063 , TMS320F28064 , TMS320F28065 , TMS320F28066 , TMS320F28066-Q1 , TMS320F28067 , TMS320F28067-Q1 , TMS320F28068F , TMS320F28068M , TMS320F28069 , TMS320F28069-Q1 , TMS320F28069F , TMS320F28069F-Q1 , TMS320F28069M , TMS320F28069M-Q1 , TMS320F28075 , TMS320F28075-Q1 , TMS320F2808 , TMS320F2808-Q1 , TMS320F2809 , TMS320F2810 , TMS320F2810-Q1 , TMS320F2811 , TMS320F2811-Q1 , TMS320F2812 , TMS320F2812-Q1 , TMS320F28232 , TMS320F28232-Q1 , TMS320F28234 , TMS320F28234-Q1 , TMS320F28235 , TMS320F28235-Q1 , TMS320F28332 , TMS320F28333 , TMS320F28334 , TMS320F28335 , TMS320F28335-Q1 , TMS320F28374D , TMS320F28374S , TMS320F28375D , TMS320F28375S , TMS320F28375S-Q1 , TMS320F28376D , TMS320F28376S , TMS320F28377D , TMS320F28377D-EP , TMS320F28377D-Q1 , TMS320F28377S , TMS320F28377S-Q1 , TMS320F28379D , TMS320F28379D-Q1 , TMS320F28379S , TMS320R2811
There are some peripherals that require 8-bit byte accesses. To accomplish this, they have been placed on a bridge that allows the peripherals to be accessed as if they are byte-addressable. Peripherals on this bridge are listed in Table 5.
Module | Devices |
---|---|
CAN | 28004x, 2807x, 2837xS, 2837xD |
DCC | 28004x |
LIN | 28004x |
USB | 2807x, 2837xS, 2837xD |
Since the peripheral registers behave in a byte-addressable way, the addresses of the 32-bit memory-mapped registers are placed at address offset increments of 4 (as in 4 8-bit bytes) instead of 2 as they normally would be on a word-addressable peripheral. 16-bit words are offset at increments of 2 instead of 1. Often this can lead to issues with the compiler.
For example, Example 25 shows code that writes to the CAN_IF1CMD register on the F2837xD CAN-A module using bit-field header files defined in the usual manner. The CAN_IF1CMD is located at address 0x048100, but the code below is accessing 0x0480D4 since the code generation tools do not comprehend that the peripheral bridge treats addresses as byte addresses. Also note that the access to TXRQST, which is in the upper word of the register, should be at an offset of +2 that of CAN_IF1CMD.