PRODUCTION DATA information is current as of publication date.
Products conform to specifications per the terms of the Texas
Instruments standard warranty. Production processing does not
necessarily include testing of all parameters.
• High-Performance 32-Bit CPU ( TMS320C28x™)– Up to 16 PWM Outputs
– 16 x 16 and 32 x 32 MAC Operations– Up to 6 HRPWM Outputs With 150-ps MEP
– 16 x 16 Dual MAC
– Harvard Bus Architecture
– Atomic Operations
– Fast Interrupt Response and Processing
– Unified Memory Programming Model
– Code-Efficient (in C/C++ and Assembly)
• On-Chip Memory
– F2809: 128K x 16 Flash, 18K x 16 SARAM
F2808: 64K x 16 Flash, 18K x 16 SARAM– One Inter-Integrated-Circuit (I2C) Bus
F2806: 32K x 16 Flash, 10K x 16 SARAM
F2802: 32K x 16 Flash, 6K x 16 SARAM
F2801: 16K x 16 Flash, 6K x 16 SARAM
F2801x: 16K x 16 Flash, 6K x 16 SARAM
– 1K x 16 OTP ROM (Flash Devices Only)
– C2802: 32K x 16 ROM, 6K x 16 SARAM
C2801: 16K x 16 ROM, 6K x 16 SARAM
• Boot ROM (4K x 16)
– With Software Boot Modes (via SCI, SPI,
CAN, I2C, and Parallel I/O)
– Standard Math Tables
• Clock and System Control
– Dynamic PLL Ratio Changes Supported
– On-Chip Oscillator
– Watchdog Timer Module
• Any GPIO A Pin Can Be Connected to One of
the Three External Core Interrupts
• Peripheral Interrupt Expansion (PIE) Block That
Supports All 43 Peripheral Interrupts
• Endianness: Little Endian
(1) IEEE Standard 1149.1-1990 Standard Test Access Port and
Boundary Scan Architecture
1
Please be aware that an important notice concerning availability, standard warranty, and use in critical applications of
Texas Instruments semiconductor products and disclaimers thereto appears at the end of this data sheet.
2TMS320C28x, Code Composer Studio, DSP/BIOS, MicroStar BGA, C28x, TI, TMS320C2000 are trademarks of Texas
Instruments.
3eZdsp is a trademark of Spectrum Digital.
4All other trademarks are the property of their respective owners.
• Up to 35 Individually Programmable,
Multiplexed GPIO Pins With Input Filtering
• Advanced Emulation Features
– Analysis and Breakpoint Functions
– Real-Time Debug via Hardware
• Development Support Includes
– ANSI C/C++ Compiler/Assembler/Linker
– Code Composer Studio™ IDE
– DSP/BIOS™
– Digital Motor Control and Digital Power
Software Libraries
• Low-Power Modes and Power Savings
– IDLE, STANDBY, HALT Modes Supported
– Disable Individual Peripheral Clocks
PRODUCTION DATA information is current as of publication date. Products conform to
specifications per the terms of the Texas Instruments standard warranty. Production
processing does not necessarily include testing of all parameters.
www.ti.com
TMS320F2809, TMS320F2808, TMS320F2806
TMS320F2802, TMS320F2801, TMS320C2802
TMS320C2801, TMS320F28016, TMS320F28015
www.ti.com
• Package Options• Temperature Options
– Thin Quad Flatpack (PZ)– A: –40°C to 85°C (PZ, GGM, ZGM)
– MicroStar BGA™ (GGM, ZGM)– S: –40°C to 125°C (PZ, GGM, ZGM)
– Q: –40°C to 125°C (PZ)
1.2Getting Started
This section gives a brief overview of the steps to take when first developing for a C28x™ device. For
more detail on each of these steps, see the following:
•Getting Started With TMS320C28x Digital Signal Controllers (literature number SPRAAM0).
•C2000 Getting Started Website (http://www.ti.com/c2000getstarted)
Step 1. Acquire the appropriate development tools
The quickest way to begin working with a C28x device is to acquire an eZdsp™ kit for initial
development, which, in one package, includes:
•On-board JTAG emulation via USB or parallel port
•Appropriate emulation driver
•Code Composer Studio™ IDE for eZdsp
Once you have become familiar with the device and begin developing on your own
hardware, purchase Code Composer Studio™ IDE separately for software development and
a JTAG emulation tool to get started on your project.
SPRS230N –OCTOBER 2003–REVISED MAY 2012
Step 2. Download starter software
To simplify programming for C28x devices, it is recommended that users download and use
the C/C++ Header Files and Example(s) to begin developing software for the C28x devices
and their various peripherals.
After downloading the appropriate header file package for your device, refer to the following
resources for step-by-step instructions on how to run the peripheral examples and use the
header file structure for your own software
•The Quick Start Readme in the /doc directory to run your first application.
•Programming TMS320x28xx and 28xxx Peripherals in C/C++ Application Report
(literature number SPRAA85)
Step 3. Download flash programming software
Many C28x devices include on-chip flash memory and tools that allow you to program the
flash with your software IP.
•Flash Tools: C28x Flash Tools
•TMS320F281x™ Flash Programming Solutions (literature number SPRB169)
•Running an Application from Internal Flash Memory on the TMS320F28xxx DSP
(literature number SPRA958)
Step 4. Move on to more advanced topics
For more application software and other advanced topics, visit the TI™ website at
http://www.ti.com or http://www.ti.com/c2000getstarted.
The TMS320F2809, TMS320F2808, TMS320F2806, TMS320F2802, TMS320F2801, TMS320F28015,
TMS320F28016, TMS320C2802, and TMS320C2801 devices, members of the TMS320C28x™ DSP
generation, are highly integrated, high-performance solutions for demanding control applications.
Throughoutthisdocument,TMS320F2809,TMS320F2808,TMS320F2806,TMS320F2802,
TMS320F2801, TMS320C2802, TMS320C2801, TMS320F28015, and TMS320F28016 are abbreviated as
F2809, F2808, F2806, F2802, F2801, C2802, C2801, F28015, and F28016, respectively. TMS320F28015
and TMS320F28016 are abbreviated as F2801x. Table 2-1 provides a summary of features for each
device.
3.3-V on-chip flash (16-bit word)–128K64K32K32K16K––
On-chip ROM (16-bit word)––––––32K16K
Code security for on-chip flash/SARAM/OTP blocks–YesYesYesYesYesYesYes
Boot ROM (4K x 16)–YesYesYesYesYesYesYes
One-time programmable (OTP) ROM
(1) A type change represents a major functional feature difference in a peripheral module. Within a peripheral type, there may be minor differences between devices that do not affect the
basic functionality of the module. These device-specific differences are listed in the TMS320x28xx, 28xxx DSP Peripheral Reference Guide (literature number SPRU566) and in the
peripheral reference guides.
(2) See Section 5.1, Device and Development Support Tool Nomenclature, for descriptions of device stages.
3.3-V on-chip flash (16-bit word)–32K16K16K16K
On-chip ROM (16-bit word)–––––
Code security for on-chip flash/SARAM/OTP blocks–YesYesYesYes
Boot ROM (4K x 16)–YesYesYesYes
One-time programmable (OTP) ROM
(1) A type change represents a major functional feature difference in a peripheral module. Within a peripheral type, there may be minor differences between devices that do not affect the
basic functionality of the module. These device-specific differences are listed in the TMS320x28xx, 28xxx DSP Peripheral Reference Guide (literature number SPRU566) and in the
peripheral reference guides.
(2) See Section 5.1, Device and Development Support Tool Nomenclature, for descriptions of device stages.
The TMS320F2809, TMS320F2808, TMS320F2806, TMS320F2802, TMS320F2801, TMS320C2802,
TMS320C2801, TMS320F28015, and TMS320F28016 100-pin PZ low-profile quad flatpack (LQFP) pin
assignments are shown in Figure 2-1, Figure 2-2, Figure 2-3, and Figure 2-4. The 100-ball GGM and ZGM
ball grid array (BGA) terminal assignments are shown in Figure 2-5. Table 2-3 describes the function(s) of
each pin.
Table 2-3 describes the signals on the 280x devices. All digital inputs are TTL-compatible. All outputs are
3.3 V with CMOS levels. Inputs are not 5-V tolerant.
Table 2-3. Signal Descriptions
PIN NO.
NAMEDESCRIPTION
PIN #
TRST84A6high test pin and must be maintained low at all times during normal device operation. An external
TCK75A10JTAG test clock with internal pullup (I, ↑)
TMS74B10
TDI73C9
TDO76B9
EMU080A8(I/O/Z, 8 mA drive ↑)
EMU181B7(I/O/Z, 8 mA drive ↑)
V
DD3VFL
TEST197A3Test Pin. Reserved for TI. Must be left unconnected. (I/O)
TEST298B3Test Pin. Reserved for TI. Must be left unconnected. (I/O)
XCLKOUT66E8(XCLKOUTDIV) in the XCLK register. At reset, XCLKOUT = SYSCLKOUT/4. The XCLKOUT signal
XCLKIN90B5case, tie the X1 pin to GND. Alternately, when a crystal/resonator is used (or if an external 1.8-V
GGM/
PZ
96C4
ZGM
BALL #
JTAG
JTAG test reset with internal pulldown. TRST, when driven high, gives the scan system control of
the operations of the device. If this signal is not connected or driven low, the device operates in its
functional mode, and the test reset signals are ignored.
NOTE: Do not use pullup resistors on TRST; it has an internal pull-down device. TRST is an active
pulldown resistor is required on this pin. The value of this resistor should be based on drive strength
of the debugger pods applicable to the design. A 2.2-kΩ resistor generally offers adequate
protection. Since this is application-specific, it is recommended that each target board be validated
for proper operation of the debugger and the application. (I, ↓)
JTAG test-mode select (TMS) with internal pullup. This serial control input is clocked into the TAP
controller on the rising edge of TCK. (I, ↑)
JTAG test data input (TDI) with internal pullup. TDI is clocked into the selected register (instruction
or data) on a rising edge of TCK. (I, ↑)
JTAG scan out, test data output (TDO). The contents of the selected register (instruction or data)
are shifted out of TDO on the falling edge of TCK. (O/Z 8 mA drive)
Emulator pin 0. When TRST is driven high, this pin is used as an interrupt to or from the emulator
system and is defined as input/output through the JTAG scan. This pin is also used to put the
device into boundary-scan mode. With the EMU0 pin at a logic-high state and the EMU1 pin at a
logic-low state, a rising edge on the TRST pin would latch the device into boundary-scan mode.
NOTE: An external pullup resistor is recommended on this pin. The value of this resistor should be
based on the drive strength of the debugger pods applicable to the design. A 2.2-kΩ to 4.7-kΩ
resistor is generally adequate. Since this is application-specific, it is recommended that each target
board be validated for proper operation of the debugger and the application.
Emulator pin 1. When TRST is driven high, this pin is used as an interrupt to or from the emulator
system and is defined as input/output through the JTAG scan. This pin is also used to put the
device into boundary-scan mode. With the EMU0 pin at a logic-high state and the EMU1 pin at a
logic-low state, a rising edge on the TRST pin would latch the device into boundary-scan mode.
NOTE: An external pullup resistor is recommended on this pin. The value of this resistor should be
based on the drive strength of the debugger pods applicable to the design. A 2.2-kΩ to 4.7-kΩ
resistor is generally adequate. Since this is application-specific, it is recommended that each target
board be validated for proper operation of the debugger and the application.
FLASH
3.3-V Flash Core Power Pin. This pin should be connected to 3.3 V at all times. On the ROM
parts (C280x), this pin should be connected to V
CLOCK
Output clock derived from SYSCLKOUT. XCLKOUT is either the same frequency, one-half the
frequency, or one-fourth the frequency of SYSCLKOUT. This is controlled by the bits 1, 0
can be turned off by setting XCLKOUTDIV to 3. Unlike other GPIO pins, the XCLKOUT pin is not
placed in high-impedance state during a reset. (O/Z, 8 mA drive).
External Oscillator Input. This pin is used to feed a clock from an external 3.3-V oscillator. In this
oscillator is fed into the X1 pin), tie the XCLKIN pin to GND. (I)
X188E6power supply. A 1.8-V external oscillator may be connected to the X1 pin. In this case, the XCLKIN
X286C6
XRS78B8
ADCINA716F3ADC Group A, Channel 7 input (I)
ADCINA617F4ADC Group A, Channel 6 input (I)
ADCINA518G4ADC Group A, Channel 5 input (I)
ADCINA419G1ADC Group A, Channel 4 input (I)
ADCINA320G2ADC Group A, Channel 3 input (I)
ADCINA221G3ADC Group A, Channel 2 input (I)
ADCINA122H1ADC Group A, Channel 1 input (I)
ADCINA023H2ADC Group A, Channel 0 input (I)
ADCINB734K5ADC Group B, Channel 7 input (I)
ADCINB633H4ADC Group B, Channel 6 input (I)
ADCINB532K4ADC Group B, Channel 5 input (I)
ADCINB431J4ADC Group B, Channel 4 input (I)
ADCINB330K3ADC Group B, Channel 3 input (I)
ADCINB229H3ADC Group B, Channel 2 input (I)
ADCINB128J3ADC Group B, Channel 1 input (I)
ADCINB027K2ADC Group B, Channel 0 input (I)
ADCLO24J1Low Reference (connect to analog ground) (I)
ADCRESEXT38F5ADC External Current Bias Resistor. Connect a 22-kΩ resistor to analog ground.
ADCREFIN35J5External reference input (I)
ADCREFP37G5
ADCREFM36H5
PZ
GGM/
ZGM
BALL #
Internal/External Oscillator Input. To use the internal oscillator, a quartz crystal or a ceramic
resonator may be connected across X1 and X2. The X1 pin is referenced to the 1.8-V core digital
pin must be connected to ground. If a 3.3-V external oscillator is used with the XCLKIN pin, X1 must
be tied to GND. (I)
Internal Oscillator Output. A quartz crystal or a ceramic resonator may be connected across X1 and
X2. If X2 is not used it must be left unconnected. (O)
RESET
Device Reset (in) and Watchdog Reset (out).
Device reset. XRS causes the device to terminate execution. The PC will point to the address
contained at the location 0x3FFFC0. When XRS is brought to a high level, execution begins at the
location pointed to by the PC. This pin is driven low by the DSP when a watchdog reset occurs.
During watchdog reset, the XRS pin is driven low for the watchdog reset duration of 512 OSCCLK
cycles. (I/OD, ↑)
The output buffer of this pin is an open-drain with an internal pullup. It is recommended that this pin
be driven by an open-drain device.
ADC SIGNALS
Internal Reference Positive Output. Requires a low ESR (under 1.5 Ω) ceramic bypass capacitor of
2.2 μF to analog ground. (O)
NOTE: Use the ADC Clock rate to derive the ESR specification from the capacitor data sheet that is
used in the system.
Internal Reference Medium Output. Requires a low ESR (under 1.5 Ω) ceramic bypass capacitor of
2.2 μF to analog ground. (O)
NOTE: Use the ADC Clock rate to derive the ESR specification from the capacitor data sheet that is
used in the system.
GPIO0General-purpose input/output 0 (I/O/Z)
EPWM1AEnhanced PWM1 Output A and HRPWM channel (O)
--
15F2ADC Analog Power Pin (3.3 V)
14F1ADC Analog Ground Pin
26J2ADC Analog I/O Power Pin (3.3 V)
25K1ADC Analog I/O Ground Pin
12E4ADC Analog Power Pin (1.8 V)
13E5ADC Analog Ground Pin
40J6ADC Analog Power Pin (1.8 V)
39K6ADC Analog Ground Pin
10E2
42G6
59F10
68D7
EPWM1BEnhanced PWM1 Output B (O)
SPISIMODSPI-D slave in, master out (I/O) (not available on 2801, 2802)
44K7
(3)
-GPIO2General-purpose input/output 2 (I/O/Z)
EPWM2AEnhanced PWM2 Output A and HRPWM channel (O)
--
45J7
(3)
--
(1) Some peripheral functions may not be available in TMS320F2801x devices. See Table 2-2 for details.
(2) All GPIO pins are I/O/Z, 4-mA drive typical (unless otherwise indicated), and have an internal pullup, which can be selectively
enabled/disabled on a per-pin basis. This feature only applies to the GPIO pins. The GPIO function (shown in Italics) is the default at
reset. The peripheral signals that are listed under them are alternate functions.
(3) The pullups on GPIO0-GPIO11 pins are not enabled at reset.
GPIO3General-purpose input/output 3 (I/O/Z)
EPWM2BEnhanced PWM2 Output B (O)
SPISOMIDSPI-D slave out, master in (I/O) (not available on 2801, 2802)
-GPIO4General-purpose input/output 4 (I/O/Z)
EPWM3AEnhanced PWM3 output A and HRPWM channel (O)
--
-GPIO5General-purpose input/output 5 (I/O/Z)
EPWM3BEnhanced PWM3 output B (O)
SPICLKDSPI-D clock (I/O) (not available on 2801, 2802)
ECAP1Enhanced capture input/output 1 (I/O)
GPIO6General-purpose input/output 6 (I/O/Z)
EPWM4AEnhanced PWM4 output A and HRPWM channel (O) (not available on 2801, 2802)
EPWMSYNCIExternal ePWM sync pulse input (I)
EPWMSYNCOExternal ePWM sync pulse output (O)
GPIO7General-purpose input/output 7 (I/O/Z)
EPWM4BEnhanced PWM4 output B (O) (not available on 2801, 2802)
SPISTEDSPI-D slave transmit enable (I/O) (not available on 2801, 2802)
ECAP2Enhanced capture input/output 2 (I/O)
GPIO8General-purpose input/output 8 (I/O/Z)
EPWM5AEnhanced PWM5 output A and HRPWM channel (O) (not available on 2801, 2802)
CANTXBEnhanced CAN-B transmit (O) (not available on 2801, 2802, F2806)
ADCSOCAOADC start-of-conversion A (O)
GPIO9General-purpose input/output 9 (I/O/Z)
EPWM5BEnhanced PWM5 output B (O) (not available on 2801, 2802)
SCITXDBSCI-B transmit data (O) (not available on 2801, 2802)
ECAP3Enhanced capture input/output 3 (I/O) (not available on 2801, 2802)
GPIO10General-purpose input/output 10 (I/O/Z)
EPWM6AEnhanced PWM6 output A and HRPWM channel (O) (not available on 2801, 2802)
CANRXBEnhanced CAN-B receive (I) (not available on 2801, 2802, F2806)
ADCSOCBOADC start-of-conversion B (O)
GPIO11General-purpose input/output 11 (I/O/Z)
EPWM6BEnhanced PWM6 output B (O) (not available on 2801, 2802)
SCIRXDBSCI-B receive data (I) (not available on 2801, 2802)
ECAP4Enhanced CAP Input/Output 4 (I/O) (not available on 2801, 2802)
GPIO12General-purpose input/output 12 (I/O/Z)
TZ1Trip Zone input 1 (I)
CANTXBEnhanced CAN-B transmit (O) (not available on 2801, 2802, F2806)
SPISIMOBSPI-B Slave in, Master out (I/O)
GPIO13General-purpose input/output 13 (I/O/Z)
TZ2Trip zone input 2 (I)
CANRXBEnhanced CAN-B receive (I) (not available on 2801, 2802, F2806)
SPISOMIBSPI-B slave out, master in (I/O)
GPIO14General-purpose input/output 14 (I/O/Z)
TZ3Trip zone input 3 (I)
SCITXDBSCI-B transmit (O) (not available on 2801, 2802)
SPICLKBSPI-B clock input/output (I/O)
GPIO15General-purpose input/output 15 (I/O/Z)
TZ4Trip zone input 4 (I)
SCIRXDBSCI-B receive (I) (not available on 2801, 2802)
SPISTEBSPI-B slave transmit enable (I/O)
GPIO16General-purpose input/output 16 (I/O/Z)
SPISIMOASPI-A slave in, master out (I/O)
CANTXBEnhanced CAN-B transmit (O) (not available on 2801, 2802, F2806)
TZ5Trip zone input 5 (I)
(1) The pullups on GPIO0-GPIO11 pins are not enabled at reset.
(2) The pullups on GPIO12-GPIO34 are enabled upon reset.
A.43 of the possible 96 interrupts are used on the devices.
B.Not available in F2802, F2801, C2802, and C2801.
C. Not available in F2806, F2802, F2801, C2802, and C2801.
D. The 1K x 16 OTP has been replaced with 1K x 16 ROM for C280x devices.
A.Memory blocks are not to scale.
B.Peripheral Frame 0, Peripheral Frame 1, and Peripheral Frame 2 memory maps are restricted to data memory only.
User program cannot access these memory maps in program space.
C. Protected means the order of Write followed by Read operations is preserved rather than the pipeline order.
D. Certain memory ranges are EALLOW protected against spurious writes after configuration.
B.Peripheral Frame 0, Peripheral Frame 1, and Peripheral Frame 2 memory maps are restricted to data memory only.
C. Protected means the order of Write followed by Read operations is preserved rather than the pipeline order.
D. Certain memory ranges are EALLOW protected against spurious writes after configuration.
User program cannot access these memory maps in program space.
Figure 3-3. F2808 Memory Map
Submit Documentation Feedback
TMS320C2801 TMS320F28016 TMS320F28015
0x00 0000
Block Start
Address
Data Space
0x00 0400
0x00 0800
0x00 0D00
0x00 6000
0x00 7000
0x00 8000
0x00 9000
0x00 A000
0x3D 7800
0x3D 7C00
0x3F 7FF8
0x3F 8000
0x3F 9000
0x3F A000
0x3F F000
0x3F FFC0
OTP
(1K y 16, Secure Zone)
FLASH
(32K y 16, Secure Zone)
Boot ROM (4K y 16)
Low 64K [0000−FFFF]
(24x/240x equivalent data space)
High 64K [3F0000 −3FFFF]
(24x/240x equivalent program space)
M1 SARAM (1K y 16)
L0 SARAM (0-wait)
(4K y 16, Secure Zone, Dual-Mapped)
L1 SARAM (0-wait)
(4K y 16, Secure Zone, Dual-Mapped)
L0 SARAM (0-wait)
(4K y 16, Secure Zone, Dual-Mapped)
L1 SARAM (0-wait)
(4K y 16, Secure Zone, Dual-Mapped)
128-bit Password
0x3F 0000
Prog Space
Peripheral Frame 0
Peripheral Frame 1
(protected)
Peripheral Frame 2
(protected)
PIE Vector − RAM
(256 x 16)
(Enabled if ENPIE = 1)
Vectors (32 y 32)
(enabled if VMAP = 1, ENPIE = 0)
0x00 0E00
Reserved
Reserved
Reserved
Reserved
Reserved
Reserved
M0 SARAM (1K y 16)
M0 Vector − RAM (32 x 32)
(Enabled if VMAP = 0)
0x00 0040
www.ti.com
TMS320F2809, TMS320F2808, TMS320F2806
TMS320F2802, TMS320F2801, TMS320C2802
TMS320C2801, TMS320F28016, TMS320F28015
SPRS230N –OCTOBER 2003–REVISED MAY 2012
A.Memory blocks are not to scale.
B.Peripheral Frame 0, Peripheral Frame 1, and Peripheral Frame 2 memory maps are restricted to data memory only.
User program cannot access these memory maps in program space.
C. Protected means the order of Write followed by Read operations is preserved rather than the pipeline order.
D. Certain memory ranges are EALLOW protected against spurious writes after configuration.
A.The 1K x 16 OTP has been replaced with 1K x 16 ROM in C2802.
B.Memory blocks are not to scale.
C. Peripheral Frame 0, Peripheral Frame 1, and Peripheral Frame 2 memory maps are restricted to data memory only.
D. Protected means the order of Write followed by Read operations is preserved rather than the pipeline order.
E.Certain memory ranges are EALLOW protected against spurious writes after configuration.
F.Some locations in ROM are reserved for TI. See Table 3-5 for more information.
A.The 1K x 16 OTP has been replaced with 1K x 16 ROM in C2801.
B.Memory blocks are not to scale.
C. Peripheral Frame 0, Peripheral Frame 1, and Peripheral Frame 2 memory maps are restricted to data memory only.
D. Protected means the order of Write followed by Read operations is preserved rather than the pipeline order.
E.Certain memory ranges are EALLOW protected against spurious writes after configuration.
F.Some locations in ROM are reserved for TI. See Table 3-5 for more information.
0x3E 0000 – 0x3E 3FFFSector F (16K x 16)
0x3E 4000 – 0x3E 7FFFSector E (16K x 16)
0x3E 8000 – 0x3E BFFFSector D (16K x 16)
0x3E C000 – 0x3E FFFFSector C (16K x 16)
0x3F 0000 – 0x3F 3FFFSector B (16K x 16)
0x3F 4000 – 0x3F 7F7FSector A (16K x 16)
0x3F 7F80 – 0x3F 7FF5
0x3F 7FF6 – 0x3F 7FF7
0x3F 7FF8 – 0x3F 7FFF
www.ti.com
Program to 0x0000 when using the
Code Security Module
Boot-to-Flash Entry Point
(program branch instruction here)
Security Password (128-Bit)
(Do not program to all zeros)
Table 3-2. Addresses of Flash Sectors in F2808
ADDRESS RANGEPROGRAM AND DATA SPACE
0x3E 8000 – 0x3E BFFFSector D (16K x 16)
0x3E C000 – 0x3E FFFFSector C (16K x 16)
0x3F 0000 – 0x3F 3FFFSector B (16K x 16)
0x3F 4000 – 0x3F 7F7FSector A (16K x 16)
0x3F 7F80 – 0x3F 7FF5
0x3F 7FF6 – 0x3F 7FF7
0x3F 7FF8 – 0x3F 7FFF
Program to 0x0000 when using the
Code Security Module
Boot-to-Flash Entry Point
(program branch instruction here)
Security Password (128-Bit)
(Do not program to all zeros)
Table 3-3. Addresses of Flash Sectors in F2806, F2802
ADDRESS RANGEPROGRAM AND DATA SPACE
0x3F 0000 – 0x3F 1FFFSector D (8K x 16)
0x3F 2000 – 0x3F 3FFFSector C (8K x 16)
0x3F 4000 – 0x3F 5FFFSector B (8K x 16)
0x3F 6000 – 0x3F 7F7FSector A (8K x 16)
Table 3-4. Addresses of Flash Sectors in F2801, F28015, F28016
ADDRESS RANGEPROGRAM AND DATA SPACE
0x3F 4000 – 0x3F 4FFFSector D (4K x 16)
0x3F 5000 – 0x3F 5FFFSector C (4K x 16)
0x3F 6000 – 0x3F 6FFFSector B (4K x 16)
0x3F 7000 – 0x3F 7F7FSector A (4K x 16)
0x3F 7F80 – 0x3F 7FF5Program to 0x0000 when using the
Code Security Module
0x3F 7FF6 – 0x3F 7FF7Boot-to-Flash Entry Point
(program branch instruction here)
0x3F 7FF8 – 0x3F 7FFFSecurity Password (128-Bit)
(Do not program to all zeros)
NOTE
•When the code-security passwords are programmed, all addresses between 0x3F7F80
and 0x3F7FF5 cannot be used as program code or data. These locations must be
programmed to 0x0000.
•If the code security feature is not used, addresses 0x3F7F80 through 0x3F7FEF may be
used for code or data. Addresses 0x3F7FF0 – 0x3F7FF5 are reserved for data and
should not contain program code.
•On ROM devices, addresses 0x3F7FF0 – 0x3F7FF5 and 0x3D7BFC – 0x3D7BFF are
reserved for TI, irrespective of whether code security has been used or not. User
application should not use these locations in any way.
Table 3-5 shows how to handle these memory locations.
Table 3-5. Impact of Using the Code Security Module
ADDRESS
0x3F 7F80 – 0x3F 7FEFApplication code and dataFill with 0x0000Application code and data
0x3F 7FF0 – 0x3F 7FF5Reserved for data only
Peripheral Frame 1 and Peripheral Frame 2 are grouped together so as to enable these blocks to be
write/read peripheral block protected. The protected mode ensures that all accesses to these blocks
happen as written. Because of the C28x pipeline, a write immediately followed by a read, to different
memory locations, will appear in reverse order on the memory bus of the CPU. This can cause problems
in certain peripheral applications where the user expected the write to occur first (as written). The C28x
CPU supports a block protection mode where a region of memory can be protected so as to make sure
that operations occur as written (the penalty is extra cycles are added to align the operations). This mode
is programmable and by default, it will protect the selected zones.
The C28x™ DSP generation is the newest member of the TMS320C2000™ DSP platform. The C28x is a
very efficient C/C++ engine, enabling users to develop not only their system control software in a highlevel language, but also enables math algorithms to be developed using C/C++. The C28x is as efficient in
DSP math tasks as it is in system control tasks that typically are handled by microcontroller devices. This
efficiency removes the need for a second processor in many systems. The 32 x 32-bit MAC capabilities of
the C28x and its 64-bit processing capabilities, enable the C28x to efficiently handle higher numerical
resolution problems that would otherwise demand a more expensive floating-point processor solution. Add
to this the fast interrupt response with automatic context save of critical registers, resulting in a device that
is capable of servicing many asynchronous events with minimal latency. The C28x has an 8-level-deep
protected pipeline with pipelined memory accesses. This pipelining enables the C28x to execute at high
speeds without resorting to expensive high-speed memories. Special branch-look-ahead hardware
minimizes the latency for conditional discontinuities. Special store conditional operations further improve
performance.
3.2.2Memory Bus (Harvard Bus Architecture)
As with many DSP type devices, multiple busses are used to move data between the memories and
peripherals and the CPU. The C28x memory bus architecture contains a program read bus, data read bus
and data write bus. The program read bus consists of 22 address lines and 32 data lines. The data read
and write busses consist of 32 address lines and 32 data lines each. The 32-bit-wide data busses enable
single cycle 32-bit operations. The multiple bus architecture, commonly termed Harvard Bus, enables the
C28x to fetch an instruction, read a data value and write a data value in a single cycle. All peripherals and
memories attached to the memory bus will prioritize memory accesses. Generally, the priority of memory
bus accesses can be summarized as follows:
TMS320F2809, TMS320F2808, TMS320F2806
TMS320F2802, TMS320F2801, TMS320C2802
TMS320C2801, TMS320F28016, TMS320F28015
SPRS230N –OCTOBER 2003–REVISED MAY 2012
Highest:Data Writes(Simultaneous data and program writes cannot occur on the
Program Writes (Simultaneous data and program writes cannot occur on the
Data Reads
Program(Simultaneous program reads and fetches cannot occur on the
Readsmemory bus.)
Lowest:Fetches(Simultaneous program reads and fetches cannot occur on the
3.2.3Peripheral Bus
To enable migration of peripherals between various Texas Instruments (TI) DSP family of devices, the
280x devices adopt a peripheral bus standard for peripheral interconnect. The peripheral bus bridge
multiplexes the various busses that make up the processor Memory Bus into a single bus consisting of
16 address lines and 16 or 32 data lines and associated control signals. Two versions of the peripheral
bus are supported on the 280x. One version only supports 16-bit accesses (called peripheral frame 2).
The other version supports both 16- and 32-bit accesses (called peripheral frame 1).
The 280x implements the standard IEEE 1149.1 JTAG interface. Additionally, the 280x supports real-time
mode of operation whereby the contents of memory, peripheral and register locations can be modified
while the processor is running and executing code and servicing interrupts. The user can also single step
through non-time critical code while enabling time-critical interrupts to be serviced without interference.
The 280x implements the real-time mode in hardware within the CPU. This is a unique feature to the
280x, no software monitor is required. Additionally, special analysis hardware is provided which allows the
user to set hardware breakpoint or data/address watch-points and generate various user-selectable break
events when a match occurs.
3.2.5Flash
The F2809 contains 128K x 16 of embedded flash memory, segregated into eight 16K x 16 sectors. The
F2808 contains 64K x 16 of embedded flash memory, segregated into four 16K x 16 sectors. The F2806
and F2802 have 32K x 16 of embedded flash, segregated into four 8K x 16 sectors. The F2801 device
contains 16K x 16 of embedded flash, segregated into four 4K x 16 sectors. All five devices also contain a
single 1K x 16 of OTP memory at address range 0x3D 7800 – 0x3D 7BFF. The user can individually
erase, program, and validate a flash sector while leaving other sectors untouched. However, it is not
possible to use one sector of the flash or the OTP to execute flash algorithms that erase/program other
sectors. Special memory pipelining is provided to enable the flash module to achieve higher performance.
The flash/OTP is mapped to both program and data space; therefore, it can be used to execute code or
store data information. Note that addresses 0x3F7FF0 – 0x3F7FF5 are reserved for data variables and
should not contain program code.
www.ti.com
The F2809/F2808/F2806/F2802/F2801 Flash and OTP wait-states can be configured by the
application. This allows applications running at slower frequencies to configure the flash to
use fewer wait-states.
Flash effective performance can be improved by enabling the flash pipeline mode in the
Flash options register. With this mode enabled, effective performance of linear code
execution will be much faster than the raw performance indicated by the wait-state
configuration alone. The exact performance gain when using the Flash pipeline mode is
application-dependent.
For more information on the Flash options, Flash wait-state, and OTP wait-state registers,
see the TMS320x280x, 2801x, 2804x DSP System Control and Interrupts Reference Guide
(literature number SPRU712).
3.2.6ROM
The C2802 contains 32K x 16 of ROM, while the C2801 contains 16K x 16 of ROM.
3.2.7M0, M1 SARAMs
All 280x devices contain these two blocks of single-access memory, each 1K x 16 in size. The stack
pointer points to the beginning of block M1 on reset. The M0 and M1 blocks, like all other memory blocks
on C28x devices, are mapped to both program and data space. Hence, the user can use M0 and M1 to
execute code or for data variables. The partitioning is performed within the linker. The C28x device
presents a unified memory map to the programmer. This makes for easier programming in high-level
languages.
The F2809 and F2808 each contain an additional 16K x 16 of single-access RAM, divided into three
blocks (L0-4K, L1-4K, H0-8K). The F2806 contains an additional 8K x 16 of single-access RAM, divided
into two blocks (L0-4K, L1-4K). The F2802, F2801, C2802, and C2801 each contain an additional 4K x 16
of single-access RAM (L0-4K). Each block can be independently accessed to minimize CPU pipeline
stalls. Each block is mapped to both program and data space.
3.2.9Boot ROM
The Boot ROM is factory-programmed with boot-loading software. Boot-mode signals are provided to tell
the bootloader software what boot mode to use on power up. The user can select to boot normally or to
download new software from an external connection or to select boot software that is programmed in the
internal Flash/ROM. The Boot ROM also contains standard tables, such as SIN/COS waveforms, for use
in math related algorithms.
TMS320F2809, TMS320F2808, TMS320F2806
TMS320F2802, TMS320F2801, TMS320C2802
TMS320C2801, TMS320F28016, TMS320F28015
SPRS230N –OCTOBER 2003–REVISED MAY 2012
Table 3-7. Boot Mode Selection
MODEDESCRIPTIONSPICLKAGPIO34
GPIO18
SCITXDB
Boot to Flash/ROMJump to Flash/ROM address 0x3F 7FF6111
You must have programmed a branch instruction here prior
to reset to redirect code execution as desired.
SCI-A BootLoad a data stream from SCI-A110
SPI-A BootLoad from an external serial SPI EEPROM on SPI-A101
I2C BootLoad data from an external EEPROM at address 0x50 on100
the I2C bus
eCAN-A BootCall CAN_Boot to load from eCAN-A mailbox 1.011
Boot to M0 SARAMJump to M0 SARAM address 0x00 0000.010
Boot to OTPJump to OTP address 0x3D 7800001
Parallel I/O BootLoad data from GPIO0 - GPIO15000
The 280x devices support high levels of security to protect the user firmware from being reverse
engineered. The security features a 128-bit password (hardcoded for 16 wait-states), which the user
programs into the flash. One code security module (CSM) is used to protect the flash/OTP and the L0/L1
SARAM blocks. The security feature prevents unauthorized users from examining the memory contents
via the JTAG port, executing code from external memory or trying to boot-load some undesirable software
that would export the secure memory contents. To enable access to the secure blocks, the user must
write the correct 128-bit KEY value, which matches the value stored in the password locations within the
Flash.
The 128-bit password (at 0x3F 7FF8 – 0x3F 7FFF) must not be programmed to zeros. Doing
so would permanently lock the device.
disclaimer
Code Security Module Disclaimer
THE CODE SECURITY MODULE (CSM) INCLUDED ON THIS DEVICE WAS DESIGNED
TO PASSWORD PROTECT THE DATA STORED IN THE ASSOCIATED MEMORY
(EITHER ROM OR FLASH) AND IS WARRANTED BY TEXAS INSTRUMENTS (TI), IN
ACCORDANCE WITH ITS STANDARD TERMS AND CONDITIONS, TO CONFORM TO
TI'S PUBLISHED SPECIFICATIONS FOR THE WARRANTY PERIOD APPLICABLE FOR
THIS DEVICE.
TI DOES NOT, HOWEVER, WARRANT OR REPRESENT THAT THE CSM CANNOT BE
COMPROMISED OR BREACHED OR THAT THE DATA STORED IN THE ASSOCIATED
MEMORY CANNOT BE ACCESSED THROUGH OTHER MEANS. MOREOVER, EXCEPT
AS SET FORTH ABOVE, TI MAKES NO WARRANTIES OR REPRESENTATIONS
CONCERNING THE CSM OR OPERATION OF THIS DEVICE, INCLUDING ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
IN NO EVENT SHALL TI BE LIABLE FOR ANY CONSEQUENTIAL, SPECIAL, INDIRECT,
INCIDENTAL, OR PUNITIVE DAMAGES, HOWEVER CAUSED, ARISING IN ANY WAY
OUT OF YOUR USE OF THE CSM OR THIS DEVICE, WHETHER OR NOT TI HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. EXCLUDED DAMAGES INCLUDE,
BUT ARE NOT LIMITED TO LOSS OF DATA, LOSS OF GOODWILL, LOSS OF USE OR
INTERRUPTION OF BUSINESS OR OTHER ECONOMIC LOSS.
The PIE block serves to multiplex numerous interrupt sources into a smaller set of interrupt inputs. The
PIE block can support up to 96 peripheral interrupts. On the 280x, 43 of the possible 96 interrupts are
used by peripherals. The 96 interrupts are grouped into blocks of 8 and each group is fed into 1 of
12 CPU interrupt lines (INT1 to INT12). Each of the 96 interrupts is supported by its own vector stored in a
dedicated RAM block that can be overwritten by the user. The vector is automatically fetched by the CPU
on servicing the interrupt. It takes 8 CPU clock cycles to fetch the vector and save critical CPU registers.
Hence the CPU can quickly respond to interrupt events. Prioritization of interrupts is controlled in
hardware and software. Each individual interrupt can be enabled/disabled within the PIE block.
3.2.12 External Interrupts (XINT1, XINT2, XNMI)
The 280x supports three masked external interrupts (XINT1, XINT2, XNMI). XNMI can be connected to
the INT13 or NMI interrupt of the CPU. Each of the interrupts can be selected for negative, positive, or
both negative and positive edge triggering and can also be enabled/disabled (including the XNMI). The
masked interrupts also contain a 16-bit free running up counter, which is reset to zero when a valid
interrupt edge is detected. This counter can be used to accurately time stamp the interrupt. Unlike the
281x devices, there are no dedicated pins for the external interrupts. Rather, any Port A GPIO pin can be
configured to trigger any external interrupt.
TMS320F2809, TMS320F2808, TMS320F2806
TMS320F2802, TMS320F2801, TMS320C2802
TMS320C2801, TMS320F28016, TMS320F28015
SPRS230N –OCTOBER 2003–REVISED MAY 2012
3.2.13 Oscillator and PLL
The 280x can be clocked by an external oscillator or by a crystal attached to the on-chip oscillator circuit.
A PLL is provided supporting up to 10 input-clock-scaling ratios. The PLL ratios can be changed on-the-fly
in software, enabling the user to scale back on operating frequency if lower power operation is desired.
Refer to the Electrical Specification section for timing details. The PLL block can be set in bypass mode.
3.2.14 Watchdog
The 280x devices contain a watchdog timer. The user software must regularly reset the watchdog counter
within a certain time frame; otherwise, the watchdog will generate a reset to the processor. The watchdog
can be disabled if necessary.
3.2.15 Peripheral Clocking
The clocks to each individual peripheral can be enabled/disabled so as to reduce power consumption
when a peripheral is not in use. Additionally, the system clock to the serial ports (except I2C and eCAN)
and the ADC blocks can be scaled relative to the CPU clock. This enables the timing of peripherals to be
decoupled from increasing CPU clock speeds.
3.2.16 Low-Power Modes
The 280x devices are full static CMOS devices. Three low-power modes are provided:
IDLE:Place CPU into low-power mode. Peripheral clocks may be turned off selectively and
only those peripherals that need to function during IDLE are left operating. An
enabled interrupt from an active peripheral or the watchdog timer will wake the
processor from IDLE mode.
STANDBY: Turns off clock to CPU and peripherals. This mode leaves the oscillator and PLL
functional. An external interrupt event will wake the processor and the peripherals.
Execution begins on the next valid cycle after detection of the interrupt event
HALT:Turns off the internal oscillator. This mode basically shuts down the device and
places it in the lowest possible power consumption mode. A reset or external signal
can wake the device from this mode.
GPIO:GPIO MUX Configuration and Control Registers
ePWM:Enhanced Pulse Width Modulator Module and Registers
eCAP:Enhanced Capture Module and Registers
eQEP:Enhanced Quadrature Encoder Pulse Module and Registers
PF2:SYS:System Control Registers
SCI:Serial Communications Interface (SCI) Control and RX/TX Registers
SPI:Serial Port Interface (SPI) Control and RX/TX Registers
ADC:ADC Status, Control, and Result Register
I2C:Inter-Integrated Circuit Module and Registers
Most of the peripheral signals are multiplexed with general-purpose input/output (GPIO) signals. This
enables the user to use a pin as GPIO if the peripheral signal or function is not used. On reset, GPIO pins
are configured as inputs. The user can individually program each pin for GPIO mode or peripheral signal
mode. For specific inputs, the user can also select the number of input qualification cycles. This is to filter
unwanted noise glitches. The GPIO signals can also be used to bring the device out of specific low-power
modes.
3.2.19 32-Bit CPU-Timers (0, 1, 2)
CPU-Timers 0, 1, and 2 are identical 32-bit timers with presettable periods and with 16-bit clock
prescaling. The timers have a 32-bit count-down register, which generates an interrupt when the counter
reaches zero. The counter is decremented at the CPU clock speed divided by the prescale value setting.
When the counter reaches zero, it is automatically reloaded with a 32-bit period value. CPU-Timer 2 is
reserved for the DSP/BIOS Real-Time OS, and is connected to INT14 of the CPU. If DSP/BIOS is not
being used, CPU-Timer 2 is available for general use. CPU-Timer 1 is for general use and can be
connected to INT13 of the CPU. CPU-Timer 0 is also for general use and is connected to the PIE block.
3.2.20 Control Peripherals
The 280x devices support the following peripherals which are used for embedded control and
communication:
generation, adjustable dead-band generation for leading/trailing edges,
latched/cycle-by-cycle trip mechanism. Some of the PWM pins support HRPWM
features.
eCAP:The enhanced capture peripheral uses a 32-bit time base and registers up to four
programmable events in continuous/one-shot capture modes.
This peripheral can also be configured to generate an auxiliary PWM signal.
eQEP:The enhanced QEP peripheral uses a 32-bit position counter, supports low-speed
measurement using capture unit and high-speed measurement using a 32-bit unit
timer.
This peripheral has a watchdog timer to detect motor stall and input error detection
logic to identify simultaneous edge transition in QEP signals.
ADC:The ADC block is a 12-bit converter, single-ended, 16-channels. It contains two
sample-and-hold units for simultaneous sampling.
3.2.21 Serial Port Peripherals
The 280x devices support the following serial communication peripherals:
eCAN:This is the enhanced version of the CAN peripheral. It supports 32 mailboxes, time
stamping of messages, and is CAN 2.0B-compliant.
SPI:The SPI is a high-speed, synchronous serial I/O port that allows a serial bit stream of
programmed length (one to sixteen bits) to be shifted into and out of the device at a
programmable bit-transfer rate. Normally, the SPI is used for communications
between the DSP controller and external peripherals or another processor. Typical
applications include external I/O or peripheral expansion through devices such as
shift registers, display drivers, and ADCs. Multi-device communications are
supported by the master/slave operation of the SPI. On the 280x, the SPI contains a
16-level receive and transmit FIFO for reducing interrupt servicing overhead.
SCI:The serial communications interface is a two-wire asynchronous serial port,
commonly known as UART. On the 280x, the SCI contains a 16-level receive and
transmit FIFO for reducing interrupt servicing overhead.
I2C:The inter-integrated circuit (I2C) module provides an interface between a DSP and
other devices compliant with Philips Semiconductors Inter-IC bus (I2C-bus)
specification version 2.1 and connected by way of an I2C-bus. External components
attached to this 2-wire serial bus can transmit/receive up to 8-bit data to/from the
DSP through the I2C module. On the 280x, the I2C contains a 16-level receive and
transmit FIFO for reducing interrupt servicing overhead.
TMS320F2809, TMS320F2808, TMS320F2806
TMS320F2802, TMS320F2801, TMS320C2802
TMS320C2801, TMS320F28016, TMS320F28015
SPRS230N –OCTOBER 2003–REVISED MAY 2012
3.3Register Map
The 280x devices contain three peripheral register spaces. The spaces are categorized as follows:
PeripheralThese are peripherals that are mapped directly to the CPU memory bus.
Frame 0:See Table 3-8.
PeripheralThese are peripherals that are mapped to the 32-bit peripheral bus.
Frame 1See Table 3-9.
PeripheralThese are peripherals that are mapped to the 16-bit peripheral bus.
Frame 2:See Table 3-10.
ADC Result Registers (dual-mapped)0x0B00 – 0x0B0F16Not EALLOW protected
CPU-TIMER0/1/2 Registers0x0C00 – 0x0C3F64Not EALLOW protected
PIE Registers0x0CE0 – 0x0CFF32Not EALLOW protected
PIE Vector Table0x0D00 – 0x0DFF256EALLOW protected
(1) Registers in Frame 0 support 16-bit and 32-bit accesses.
(2) Missing segments of memory space are reserved and should not be used in applications.
(3) If registers are EALLOW protected, then writes cannot be performed until the EALLOW instruction is executed. The EDIS instruction
disables writes to prevent stray code or pointers from corrupting register contents.
(4) The Flash Registers are also protected by the Code Security Module (CSM).
(4)
0x0A80 – 0x0ADF96
Table 3-9. Peripheral Frame 1 Registers
NAMEADDRESS RANGESIZE (x16)ACCESS TYPE
eCANA Registers0x6000 – 0x60FF256bits in other eCAN control registers) are
(1) The eCAN control registers only support 32-bit read/write operations. All 32-bit accesses are aligned to even address boundaries.
(2) Missing segments of memory space are reserved and should not be used in applications.
(1) (2)
(3)
EALLOW protected
CSM Protected
(1) (2)
Some eCAN control registers (and selected
EALLOW-protected.
Some eCAN control registers (and selected
EALLOW-protected.
Some ePWM registers are EALLOW
protected. See Table 4-2.
(1) Peripheral Frame 2 only allows 16-bit accesses. All 32-bit accesses are ignored (invalid data may be returned or written).
(2) Missing segments of memory space are reserved and should not be used in applications.
(1) (2)
3.4Device Emulation Registers
These registers are used to control the protection mode of the C28x CPU and to monitor some critical
device signals. The registers are defined in Table 3-11.
Table 3-11. Device Emulation Registers
NAMESIZE (x16)DESCRIPTION
DEVICECNF2Device Configuration Register
PARTID0x08821Part ID Register0x002C
REVID0x08831Revision ID Register0x0000 – Silicon Rev. 0 – TMX
PROTSTART0x08841Block Protection Start Address Register
PROTRANGE0x08851Block Protection Range Address Register
(1) The first byte (00) denotes flash devices. FF denotes ROM devices. Other values are reserved for future devices.
Figure 3-7 shows how the various interrupt sources are multiplexed within the 280x devices.
Eight PIE block interrupts are grouped into one CPU interrupt. In total, 12 CPU interrupt groups, with
8 interrupts per group equals 96 possible interrupts. On the 280x, 43 of these are used by peripherals as
shown in Table 3-12.
The TRAP #VectorNumber instruction transfers program control to the interrupt service routine
corresponding to the vector specified. TRAP #0 attempts to transfer program control to the address
pointed to by the reset vector. The PIE vector table does not, however, include a reset vector. Therefore,
TRAP #0 should not be used when the PIE is enabled. Doing so will result in undefined behavior.
When the PIE is enabled, TRAP #1 through TRAP #12 will transfer program control to the interrupt service
routine corresponding to the first vector within the PIE group. For example: TRAP #1 fetches the vector
from INT1.1, TRAP #2 fetches the vector from INT2.1 and so forth.
(1) Out of the 96 possible interrupts, 43 interrupts are currently used. The remaining interrupts are reserved for future devices. These
interrupts can be used as software interrupts if they are enabled at the PIEIFRx level, provided none of the interrupts within the group is
being used by a peripheral. Otherwise, interrupts coming in from peripherals may be lost by accidentally clearing their flag while
modifying the PIEIFR. To summarize, there are two safe cases when the reserved interrupts could be used as software interrupts:
1) No peripheral within the group is asserting interrupts.
2) No peripheral interrupts are assigned to the group (example PIE group 12).
Table 3-13. PIE Configuration and Control Registers
www.ti.com
NAMEADDRESSSIZE (x16)DESCRIPTION
PIECTRL0x0CE01PIE, Control Register
PIEACK0x0CE11PIE, Acknowledge Register
PIEIER10x0CE21PIE, INT1 Group Enable Register
PIEIFR10x0CE31PIE, INT1 Group Flag Register
PIEIER20x0CE41PIE, INT2 Group Enable Register
PIEIFR20x0CE51PIE, INT2 Group Flag Register
PIEIER30x0CE61PIE, INT3 Group Enable Register
PIEIFR30x0CE71PIE, INT3 Group Flag Register
PIEIER40x0CE81PIE, INT4 Group Enable Register
PIEIFR40x0CE91PIE, INT4 Group Flag Register
PIEIER50x0CEA1PIE, INT5 Group Enable Register
PIEIFR50x0CEB1PIE, INT5 Group Flag Register
PIEIER60x0CEC1PIE, INT6 Group Enable Register
PIEIFR60x0CED1PIE, INT6 Group Flag Register
PIEIER70x0CEE1PIE, INT7 Group Enable Register
PIEIFR70x0CEF1PIE, INT7 Group Flag Register
PIEIER80x0CF01PIE, INT8 Group Enable Register
PIEIFR80x0CF11PIE, INT8 Group Flag Register
PIEIER90x0CF21PIE, INT9 Group Enable Register
PIEIFR90x0CF31PIE, INT9 Group Flag Register
PIEIER100x0CF41PIE, INT10 Group Enable Register
PIEIFR100x0CF51PIE, INT10 Group Flag Register
PIEIER110x0CF61PIE, INT11 Group Enable Register
PIEIFR110x0CF71PIE, INT11 Group Flag Register
PIEIER120x0CF81PIE, INT12 Group Enable Register
PIEIFR120x0CF91PIE, INT12 Group Flag Register
Reserved0x0CFA –6Reserved
0x0CFF
(1) The PIE configuration and control registers are not protected by EALLOW mode. The PIE vector table
is protected.
(1)
3.5.1External Interrupts
Table 3-14. External Interrupt Registers
NAMEADDRESSSIZE (x16)DESCRIPTION
XINT1CR0x70701XINT1 control register
XINT2CR0x70711XINT2 control register
Reserved0x7072 – 0x70765Reserved
XNMICR0x70771XNMI control register
XINT1CTR0x70781XINT1 counter register
XINT2CTR0x70791XINT2 counter register
Reserved0x707A – 0x707E5Reserved
XNMICTR0x707F1XNMI counter register
Each external interrupt can be enabled/disabled or qualified using positive, negative, or both positive and
negative edge. For more information, see the TMS320x280x, 2801x, 2804x DSP System Control andInterrupts Reference Guide (literature number SPRU712).
3.6System Control
This section describes the 280x oscillator, PLL and clocking mechanisms, the watchdog function and the
low power modes. Figure 3-9 shows the various clock and reset domains in the 280x devices that will be
discussed.
TMS320F2809, TMS320F2808, TMS320F2806
TMS320F2802, TMS320F2801, TMS320C2802
TMS320C2801, TMS320F28016, TMS320F28015
SPRS230N –OCTOBER 2003–REVISED MAY 2012
A.CLKIN is the clock into the CPU. It is passed out of the CPU as SYSCLKOUT (that is, CLKIN is the same frequency
The PLL, clocking, watchdog and low-power modes, are controlled by the registers listed in Table 3-15.
www.ti.com
Table 3-15. PLL, Clocking, Watchdog, and Low-Power Mode Registers
NAMEADDRESSSIZE (x16)DESCRIPTION
XCLK0x70101XCLKOUT Pin Control, X1 and XCLKIN Status Register
PLLSTS0x70111PLL Status Register
Reserved0x7012 – 0x70198Reserved
HISPCP0x701A1High-Speed Peripheral Clock Prescaler Register (for HSPCLK)
LOSPCP0x701B1Low-Speed Peripheral Clock Prescaler Register (for LSPCLK)
PCLKCR00x701C1Peripheral Clock Control Register 0
PCLKCR10x701D1Peripheral Clock Control Register 1
LPMCR00x701E1Low-Power Mode Control Register 0
Reserved0x701F – 0x70201Reserved
PLLCR0x70211PLL Control Register
SCSR0x70221System Control and Status Register
WDCNTR0x70231Watchdog Counter Register
Reserved0x70241Reserved
WDKEY0x70251Watchdog Reset Key Register
Reserved0x7026 – 0x70283Reserved
WDCR0x70291Watchdog Control Register
Reserved0x702A – 0x702F6Reserved
(1) All of the registers in this table are EALLOW protected.
(1)
3.6.1OSC and PLL Block
Figure 3-10 shows the OSC and PLL block on the 280x.
Figure 3-10. OSC and PLL Block Diagram
The on-chip oscillator circuit enables a crystal/resonator to be attached to the 280x devices using the X1
and X2 pins. If the on-chip oscillator is not used, an external oscillator can be used in either one of the
following configurations:
.
DDIO
1. A 3.3-V external oscillator can be directly connected to the XCLKIN pin. The X2 pin should be left
unconnected and the X1 pin tied low. The logic-high level in this case should not exceed V
2. A 1.8-V external oscillator can be directly connected to the X1 pin. The X2 pin should be left
unconnected and the XCLKIN pin tied low. The logic-high level in this case should not exceed VDD.
The three possible input-clock configurations are shown in Figure 3-11 through Figure 3-13.
TMS320F2809, TMS320F2808, TMS320F2806
TMS320F2802, TMS320F2801, TMS320C2802
TMS320C2801, TMS320F28016, TMS320F28015
SPRS230N –OCTOBER 2003–REVISED MAY 2012
Figure 3-11. Using a 3.3-V External Oscillator
Figure 3-12. Using a 1.8-V External Oscillator
Figure 3-13. Using the Internal Oscillator
3.6.1.1External Reference Oscillator Clock Option
The typical specifications for the external quartz crystal for a frequency of 20 MHz are listed below:
•Fundamental mode, parallel resonant
•CL(load capacitance) = 12 pF
•CL1= CL2= 24 pF
•C
shunt
= 6 pF
•ESR range = 30 to 60 Ω
TI recommends that customers have the resonator/crystal vendor characterize the operation of their
device with the DSP chip. The resonator/crystal vendor has the equipment and expertise to tune the tank
circuit. The vendor can also advise the customer regarding the proper tank component values that will
produce proper start up and stability over the entire operating range.
The 280x devices have an on-chip, PLL-based clock module. This module provides all the necessary
clocking signals for the device, as well as control for low-power mode entry. The PLL has a 4-bit ratio
control PLLCR[DIV] to select different CPU clock rates. The watchdog module should be disabled before
writing to the PLLCR register. It can be re-enabled (if need be) after the PLL module has stabilized, which
takes 131072 OSCCLK cycles.
Table 3-16. PLLCR Register Bit Definitions
www.ti.com
PLLCR[DIV]
0000 (PLL bypass)OSCCLK/n
1011–1111Reserved
(1) This register is EALLOW protected.
(2) CLKIN is the input clock to the CPU. SYSCLKOUT is the output
clock from the CPU. The frequency of SYSCLKOUT is the same as
CLKIN. If CLKINDIV = 0, n = 2; if CLKINDIV = 1, n = 1.
PLLSTS[CLKINDIV] enables or bypasses the divide-by-two block before the clock is fed to
the core. This bit must be 0 before writing to the PLLCR and must only be set after
PLLSTS[PLLLOCKS] = 1.
The PLL-based clock module provides two modes of operation:
•Crystal-operation - This mode allows the use of an external crystal/resonator to provide the time base
to the device.
•External clock source operation - This mode allows the internal oscillator to be bypassed. The device
clocks are generated from an external clock source input on the X1 or the XCLKIN pin.
Invoked by the user setting the PLLOFF bit in the PLLSTS register. The PLL block0OSCCLK/2
PLL Offpower operation. The PLLCR register must first be set to 0x0000 (PLL Bypass)
PLL Bypass
PLL Enable0OSCCLK*n/2
is disabled in this mode. This can be useful to reduce system noise and for low
before entering this mode. The CPU clock (CLKIN) is derived directly from the
input clock on either X1/X2, X1 or XCLKIN.
PLL Bypass is the default PLL configuration upon power-up or after an external0OSCCLK/2
reset (XRS). This mode is selected when the PLLCR register is set to 0x0000 or
while the PLL locks to a new frequency after the PLLCR register has been
modified. In this mode, the PLL itself is bypassed but the PLL is not turned off.
Achieved by writing a non-zero value n into the PLLCR register. Upon writing to the
PLLCR the device will switch to PLL Bypass mode until the PLL locks.
1OSCCLK
1OSCCLK
SYSCLKOUT
(CLKIN)
3.6.1.3Loss of Input Clock
In PLL-enabled and PLL-bypass mode, if the input clock OSCCLK is removed or absent, the PLL will still
issue a limp-mode clock. The limp-mode clock continues to clock the CPU and peripherals at a typical
frequency of 1–5 MHz. Limp mode is not specified to work from power-up, only after input clocks have
been present initially. In PLL bypass mode, the limp mode clock from the PLL is automatically routed to
the CPU if the input clock is removed or absent.
Normally, when the input clocks are present, the watchdog counter decrements to initiate a watchdog
reset or WDINT interrupt. However, when the external input clock fails, the watchdog counter stops
decrementing (that is, the watchdog counter does not change with the limp-mode clock). In addition to
this, the device will be reset and the “Missing Clock Status” (MCLKSTS) bit will be set. These conditions
could be used by the application firmware to detect the input clock failure and initiate necessary shut-down
procedure for the system.
NOTE
Applications in which the correct CPU operating frequency is absolutely critical should
implement a mechanism by which the DSP will be held in reset, should the input clocks ever
fail. For example, an R-C circuit may be used to trigger the XRS pin of the DSP, should the
capacitor ever get fully charged. An I/O pin may be used to discharge the capacitor on a
periodic basis to prevent it from getting fully charged. Such a circuit would also help in
detecting failure of the flash memory and the V
The watchdog block on the 280x is similar to the one used on the 240x and 281x devices. The watchdog
module generates an output pulse, 512 oscillator clocks wide (OSCCLK), whenever the 8-bit watchdog up
counter has reached its maximum value. To prevent this, the user disables the counter or the software
must periodically write a 0x55 + 0xAA sequence into the watchdog key register which will reset the
watchdog counter. Figure 3-14 shows the various functional blocks within the watchdog module.
www.ti.com
A.TheWDRST signal is driven low for 512 OSCCLK cycles.
Figure 3-14. Watchdog Module
The WDINT signal enables the watchdog to be used as a wakeup from IDLE/STANDBY mode.
In STANDBY mode, all peripherals are turned off on the device. The only peripheral that remains
functional is the watchdog. The WATCHDOG module will run off OSCCLK. The WDINT signal is fed to the
LPM block so that it can wake the device from STANDBY (if enabled). See Section 3.7, Low-Power
Modes Block, for more details.
In IDLE mode, the WDINT signal can generate an interrupt to the CPU, via the PIE, to take the CPU out of
IDLE mode.
In HALT mode, this feature cannot be used because the oscillator (and PLL) are turned off and hence so
is the WATCHDOG.
The low-power modes on the 280x are similar to the 240x devices. Table 3-18 summarizes the various
modes.
TMS320F2809, TMS320F2808, TMS320F2806
TMS320F2802, TMS320F2801, TMS320C2802
TMS320C2801, TMS320F28016, TMS320F28015
SPRS230N –OCTOBER 2003–REVISED MAY 2012
Table 3-18. Low-Power Modes
(3)
, XNMI
(1)
MODELPMCR0(1:0)OSCCLKCLKINSYSCLKOUTEXIT
IDLE00OnOnOn
STANDBY01OffOff
HALT1X(oscillator and PLL turned off,OffOff
(1) The Exit column lists which signals or under what conditions the low power mode will be exited. A low signal, on any of the signals, will
exit the low power condition. This signal must be kept low long enough for an interrupt to be recognized by the device. Otherwise the
IDLE mode will not be exited and the device will go back into the indicated low power mode.
(2) The IDLE mode on the C28x behaves differently than on the 24x/240x. On the C28x, the clock output from the CPU (SYSCLKOUT) is
still functional while on the 24x/240x the clock is turned off.
(3) On the C28x, the JTAG port can still function even if the CPU clock (CLKIN) is turned off.
(watchdog still running)signal, debugger
watchdog not functional)
OnXRS, Watchdog interrupt, GPIO Port A
Off
(2)
XRS, Watchdog interrupt, any enabled
interrupt, XNMI
XRS, GPIO Port A signal, XNMI,
debugger
(3)
The various low-power modes operate as follows:
IDLE Mode:This mode is exited by any enabled interrupt or an XNMI that is recognized
by the processor. The LPM block performs no tasks during this mode as
long as the LPMCR0(LPM) bits are set to 0,0.
STANDBY Mode:Any GPIO port A signal (GPIO[31:0]) can wake the device from STANDBY
mode. The user must select which signal(s) will wake the device in the
GPIOLPMSEL register. The selected signal(s) are also qualified by the
OSCCLK before waking the device. The number of OSCCLKs is specified in
the LPMCR0 register.
HALT Mode:Only the XRS and any GPIO port A signal (GPIO[31:0]) can wake the
device from HALT mode. The user selects the signal in the GPIOLPMSEL
register.
NOTE
The low-power modes do not affect the state of the output pins (PWM pins included). They
will be in whatever state the code left them in when the IDLE instruction was executed. See
the TMS320x280x, 2801x, 2804x DSP System Control and Interrupts Reference Guide
(literature number SPRU712) for more details.
•Up to two enhanced controller area network (eCAN) modules (eCAN-A, eCAN-B)
•Up to two serial communications interface modules (SCI-A, SCI-B)
•Up to four serial peripheral interface (SPI) modules (SPI-A, SPI-B, SPI-C, SPI-D)
•Inter-integrated circuit module (I2C)
•Digital I/O and shared pin functions
4.132-Bit CPU-Timers 0/1/2
There are three 32-bit CPU-timers on the 280x devices (CPU-TIMER0/1/2).
CPU-Timer 0 and CPU-Timer 1 can be used in user applications. Timer 2 is reserved for DSP/BIOS™.
These timers are different from the timers that are present in the ePWM modules.
www.ti.com
NOTE
If the application is not using DSP/BIOS, then CPU-Timer 2 can be used in the application.
In the 280x devices, the timer interrupt signals (TINT0, TINT1, TINT2) are connected as shown in
Figure 4-2.
A.The timer registers are connected to the memory bus of the C28x processor.
B.The timing of the timers is synchronized to SYSCLKOUT of the processor clock.
Figure 4-2. CPU-Timer Interrupt Signals and Output Signal
TMS320F2809, TMS320F2808, TMS320F2806
TMS320F2802, TMS320F2801, TMS320C2802
SPRS230N –OCTOBER 2003–REVISED MAY 2012
The general operation of the timer is as follows: The 32-bit counter register "TIMH:TIM" is loaded with the
value in the period register "PRDH:PRD". The counter register decrements at the SYSCLKOUT rate of the
C28x. When the counter reaches 0, a timer interrupt output signal generates an interrupt pulse. The
registers listed in Table 4-1 are used to configure the timers. For more information, see the TMS320x280x,2801x, 2804x DSP System Control and Interrupts Reference Guide (literature number SPRU712).
Table 4-1. CPU-Timers 0, 1, 2 Configuration and Control Registers
NAMEADDRESSSIZE (x16)DESCRIPTION
TIMER0TIM0x0C001CPU-Timer 0, Counter Register
TIMER0TIMH0x0C011CPU-Timer 0, Counter Register High
TIMER0PRD0x0C021CPU-Timer 0, Period Register
TIMER0PRDH0x0C031CPU-Timer 0, Period Register High
TIMER0TCR0x0C041CPU-Timer 0, Control Register
Reserved0x0C051Reserved
TIMER0TPR0x0C061CPU-Timer 0, Prescale Register
TIMER0TPRH0x0C071CPU-Timer 0, Prescale Register High
TIMER1TIM0x0C081CPU-Timer 1, Counter Register
TIMER1TIMH0x0C091CPU-Timer 1, Counter Register High
TIMER1PRD0x0C0A1CPU-Timer 1, Period Register
TIMER1PRDH0x0C0B1CPU-Timer 1, Period Register High
TIMER1TCR0x0C0C1CPU-Timer 1, Control Register
Reserved0x0C0D1Reserved
TIMER1TPR0x0C0E1CPU-Timer 1, Prescale Register
TIMER1TPRH0x0C0F1CPU-Timer 1, Prescale Register High
TIMER2TIM0x0C101CPU-Timer 2, Counter Register
TIMER2TIMH0x0C111CPU-Timer 2, Counter Register High
TIMER2PRD0x0C121CPU-Timer 2, Period Register
TIMER2PRDH0x0C131CPU-Timer 2, Period Register High
TIMER2TCR0x0C141CPU-Timer 2, Control Register
Table 4-1. CPU-Timers 0, 1, 2 Configuration and Control Registers (continued)
NAMEADDRESSSIZE (x16)DESCRIPTION
Reserved0x0C151Reserved
TIMER2TPR0x0C161CPU-Timer 2, Prescale Register
TIMER2TPRH0x0C171CPU-Timer 2, Prescale Register High
Reserved40Reserved
4.2Enhanced PWM Modules (ePWM1/2/3/4/5/6)
The 280x device contains up to six enhanced PWM modules (ePWM). Figure 4-3 shows a block diagram
of multiple ePWM modules. Figure 4-4 shows the signal interconnections with the ePWM. See the
The HRPWM module offers PWM resolution (time granularity) which is significantly better than what can
be achieved using conventionally derived digital PWM methods. The key points for the HRPWM module
are:
•Significantly extends the time resolution capabilities of conventionally derived digital PWM
•Typically used when effective PWM resolution falls below ~ 9–10 bits. This occurs at PWM frequencies
greater than ~200 kHz when using a CPU/System clock of 100 MHz.
•This capability can be utilized in both duty cycle and phase-shift control methods.
•Finer time granularity control or edge positioning is controlled via extensions to the Compare A and
Phase registers of the ePWM module.
•HRPWM capabilities are offered only on the A signal path of an ePWM module (that is, on the
EPWMxA output). EPWMxB output has conventional PWM capabilities.
4.4Enhanced CAP Modules (eCAP1/2/3/4)
The 280x device contains up to four enhanced capture (eCAP) modules. Figure 4-5 shows a functional
block diagram of a module. See the TMS320x280x, 2801x, 2804x Enhanced Capture (eCAP) ModuleReference Guide (literature number SPRU807) for more details.
TMS320F2809, TMS320F2808, TMS320F2806
TMS320F2802, TMS320F2801, TMS320C2802
TMS320C2801, TMS320F28016, TMS320F28015
SPRS230N –OCTOBER 2003–REVISED MAY 2012
The eCAP modules are clocked at the SYSCLKOUT rate.
The clock enable bits (ECAP1/2/3/4ENCLK) in the PCLKCR1 register are used to turn off the eCAP
modulesindividually(forlowpoweroperation).Uponreset,ECAP1ENCLK,ECAP2ENCLK,
ECAP3ENCLK, and ECAP4ENCLK are set to low, indicating that the peripheral clock is off.
QPOSCNT0x6B000x6B402/0eQEP Position Counter
QPOSINIT0x6B020x6B422/0eQEP Initialization Position Count
QPOSMAX0x6B040x6B442/0eQEP Maximum Position Count
QPOSCMP0x6B060x6B462/1eQEP Position-compare
QPOSILAT0x6B080x6B482/0eQEP Index Position Latch
QPOSSLAT0x6B0A0x6B4A2/0eQEP Strobe Position Latch
QPOSLAT0x6B0C0x6B4C2/0eQEP Position Latch
QUTMR0x6B0E0x6B4E2/0eQEP Unit Timer
QUPRD0x6B100x6B502/0eQEP Unit Period Register
QWDTMR0x6B120x6B521/0eQEP Watchdog Timer
QWDPRD0x6B130x6B531/0eQEP Watchdog Period Register
QDECCTL0x6B140x6B541/0eQEP Decoder Control Register
QEPCTL0x6B150x6B551/0eQEP Control Register
QCAPCTL0x6B160x6B561/0eQEP Capture Control Register
QPOSCTL0x6B170x6B571/0eQEP Position-compare Control Register
QEINT0x6B180x6B581/0eQEP Interrupt Enable Register
QFLG0x6B190x6B591/0eQEP Interrupt Flag Register
QCLR0x6B1A0x6B5A1/0eQEP Interrupt Clear Register
QFRC0x6B1B0x6B5B1/0eQEP Interrupt Force Register
QEPSTS0x6B1C0x6B5C1/0eQEP Status Register
QCTMR0x6B1D0x6B5D1/0eQEP Capture Timer
QCPRD0x6B1E0x6B5E1/0eQEP Capture Period Register
QCTMRLAT0x6B1F0x6B5F1/0eQEP Capture Timer Latch
QCPRDLAT0x6B200x6B601/0eQEP Capture Period Latch
Reserved0x6B21–0x6B61 –31/0Reserved
A simplified functional block diagram of the ADC module is shown in Figure 4-7. The ADC module
consists of a 12-bit ADC with a built-in sample-and-hold (S/H) circuit. Functions of the ADC module
include:
•12-bit ADC core with built-in S/H
•Analog input: 0.0 V to 3.0 V (Voltages above 3.0 V produce full-scale conversion results.)
•Fast conversion rate: Up to 80 ns at 25-MHz ADC clock, 12.5 MSPS
•16-channel, MUXed inputs
•Autosequencing capability provides up to 16 "autoconversions" in a single session. Each conversion
can be programmed to select anyone of 16 input channels
•Sequencer can be operated as two independent 8-channel sequencers or as one large 16-channel
sequencer (that is, two cascaded 8-channel sequencers)
•Sixteen result registers (individually addressable) to store conversion values
– The digital value of the input analog voltage is derived by:
www.ti.com
A.All fractional values are truncated.
•Multiple triggers as sources for the start-of-conversion (SOC) sequence
– S/W - software immediate start
– ePWM start of conversion
– XINT2 ADC start of conversion
•Flexible interrupt control allows interrupt request on every end-of-sequence (EOS) or every other EOS.
•Sequencer can operate in "start/stop" mode, allowing multiple "time-sequenced triggers" to
synchronize conversions.
•SOCA and SOCB triggers can operate independently in dual-sequencer mode.
•Sample-and-hold (S/H) acquisition time window has separate prescale control.
The ADC module in the 280x has been enhanced to provide flexible interface to ePWM peripherals. The
ADC interface is built around a fast, 12-bit ADC module with a fast conversion rate of up to 80 ns at 25MHz ADC clock. The ADC module has a 16-channel sequencer, configurable as two independent 8channel sequencers. The two independent 8-channel sequencers can be cascaded to form a 16-channel
sequencer. Although there are multiple input channels and two sequencers, there is only one converter in
the ADC module. Figure 4-7 shows the block diagram of the ADC module.
The two 8-channel sequencer modules have the capability to autosequence a series of conversions, each
module has the choice of selecting any one of the respective eight channels available through an analog
MUX. In the cascaded mode, the autosequencer functions as a single 16-channel sequencer. On each
sequencer, once the conversion is complete, the selected channel value is stored in its respective
RESULT register. Autosequencing allows the system to convert the same channel multiple times, allowing
the user to perform oversampling algorithms. This gives increased resolution over traditional singlesampled conversion results.
To obtain the specified accuracy of the ADC, proper board layout is very critical. To the best extent
possible, traces leading to the ADCIN pins should not run in close proximity to the digital signal paths.
This is to minimize switching noise on the digital lines from getting coupled to the ADC inputs.
Furthermore, proper isolation techniques must be used to isolate the ADC module power pins (V
V
DD2A18
, V
DDA2
, V
DDAIO
) from the digital supply. Figure 4-8 and Figure 4-9 show the ADC pin connections
DD1A18
for the 280x devices.
NOTE
1. The ADC registers are accessed at the SYSCLKOUT rate. The internal timing of the
ADC module is controlled by the high-speed peripheral clock (HSPCLK).
2. The behavior of the ADC module based on the state of the ADCENCLK and HALT
signals is as follows:
– ADCENCLK: On reset, this signal will be low. While reset is active-low (XRS) the
clock to the register will still function. This is necessary to make sure all registers and
modes go into their default reset state. The analog module, however, will be in a lowpower inactive state. As soon as reset goes high, then the clock to the registers will
be disabled. When the user sets the ADCENCLK signal high, then the clocks to the
registers will be enabled and the analog module will be enabled. There will be a
certain time delay (ms range) before the ADC is stable and can be used.
– HALT: This mode only affects the analog module. It does not affect the registers. In
this mode, the ADC module goes into low-power mode. This mode also will stop the
clock to the CPU, which will stop the HSPCLK; therefore, the ADC register logic will
be turned off indirectly.
Figure 4-8 shows the ADC pin-biasing for internal reference and Figure 4-9 shows the ADC pin-biasing for
external reference.
www.ti.com
A.TAIYO YUDEN LMK212BJ225MG-T or equivalent
B.External decoupling capacitors are recommended on all power pins.
C. Analog inputs must be driven from an operational amplifier that does not degrade the ADC performance.
Figure 4-8. ADC Pin Connections With Internal Reference
ADCREFP and ADCREFM should not
be loaded by external circuitry
ADC 16-Channel Analog Inputs
Connect to 1.500, 1.024, or 2.048-V precision source
(D)
ADC Analog Power Pin (1.8 V)
ADC Analog Power Pin (1.8 V)
ADC Analog I/O Ground Pin
ADC Analog Power Pin (3.3 V)
ADC Analog Ground Pin
ADC Analog Ground Pin
ADC Analog Ground Pin
ADC Analog Power Pin (3.3 V)
22 k
2.2 Fμ
(A)
2.2 Fμ
(A)
www.ti.com
TMS320F2809, TMS320F2808, TMS320F2806
TMS320F2802, TMS320F2801, TMS320C2802
TMS320C2801, TMS320F28016, TMS320F28015
SPRS230N –OCTOBER 2003–REVISED MAY 2012
A.TAIYO YUDEN LMK212BJ225MG-T or equivalent
B.External decoupling capacitors are recommended on all power pins.
C. Analog inputs must be driven from an operational amplifier that does not degrade the ADC performance.
D. External voltage on ADCREFIN is enabled by changing bits 15:14 in the ADC Reference Select register depending on
the voltage used on this pin. TI recommends TI part REF3020 or equivalent for 2.048-V generation. Overall gain
accuracy will be determined by accuracy of this voltage source.
The temperature rating of any recommended component must match the rating of the end
product.
4.6.1ADC Connections if the ADC Is Not Used
It is recommended to keep the connections for the analog power pins, even if the ADC is not used.
Following is a summary of how the ADC pins should be connected, if the ADC is not used in an
application:
•V
DD1A18/VDD2A18
•V
•V
•ADCLO – Connect to V
•ADCREFIN – Connect to V
•ADCREFP/ADCREFM – Connect a 100-nF cap to V
•ADCRESEXT – Connect a 20-kΩ resistor (very loose tolerance) to VSS.
•ADCINAn, ADCINBn - Connect to V
When the ADC is not used, be sure that the clock to the ADC module is not turned on to realize power
savings.
When the ADC module is used in an application, unused ADC input pins should be connected to analog
ground (V
, V
DDA2
SS1AGND/VSS2AGND
SS1AGND/VSS2AGND
Figure 4-9. ADC Pin Connections With External Reference
The ADC operation is configured, controlled, and monitored by the registers listed in Table 4-5.
www.ti.com
Table 4-5. ADC Registers
0x711B
0x711F
(1)
ADDRESS
NAMEADDRESS
ADCTRL10x71001ADC Control Register 1
ADCTRL20x71011ADC Control Register 2
ADCMAXCONV0x71021ADC Maximum Conversion Channels Register
ADCCHSELSEQ10x71031ADC Channel Select Sequencing Control Register 1
ADCCHSELSEQ20x71041ADC Channel Select Sequencing Control Register 2
ADCCHSELSEQ30x71051ADC Channel Select Sequencing Control Register 3
ADCCHSELSEQ40x71061ADC Channel Select Sequencing Control Register 4
ADCASEQSR0x71071ADC Auto-Sequence Status Register
ADCRESULT00x71080x0B001ADC Conversion Result Buffer Register 0
ADCRESULT10x71090x0B011ADC Conversion Result Buffer Register 1
ADCRESULT20x710A0x0B021ADC Conversion Result Buffer Register 2
ADCRESULT30x710B0x0B031ADC Conversion Result Buffer Register 3
ADCRESULT40x710C0x0B041ADC Conversion Result Buffer Register 4
ADCRESULT50x710D0x0B051ADC Conversion Result Buffer Register 5
ADCRESULT60x710E0x0B061ADC Conversion Result Buffer Register 6
ADCRESULT70x710F0x0B071ADC Conversion Result Buffer Register 7
ADCRESULT80x71100x0B081ADC Conversion Result Buffer Register 8
ADCRESULT90x71110x0B091ADC Conversion Result Buffer Register 9
ADCRESULT100x71120x0B0A1ADC Conversion Result Buffer Register 10
ADCRESULT110x71130x0B0B1ADC Conversion Result Buffer Register 11
ADCRESULT120x71140x0B0C1ADC Conversion Result Buffer Register 12
ADCRESULT130x71150x0B0D1ADC Conversion Result Buffer Register 13
ADCRESULT140x71160x0B0E1ADC Conversion Result Buffer Register 14
ADCRESULT150x71170x0B0F1ADC Conversion Result Buffer Register 15
ADCTRL30x71181ADC Control Register 3
ADCST0x71191ADC Status Register
Reserved2Reserved
ADCREFSEL0x711C1ADC Reference Select Register
ADCOFFTRIM0x711D1ADC Offset Trim Register
Reserved2Reserved
(1) The registers in this column are Peripheral Frame 2 Registers.
(2) The ADC result registers are dual mapped in the 280x DSP. Locations in Peripheral Frame 2 (0x7108-0x7117) are 2 wait-states and left
justified. Locations in Peripheral frame 0 space (0x0B00-0x0B0F) are 0 wait sates and right justified. During high-speed/continuous
conversion use of the ADC, use the 0 wait-state locations for fast transfer of ADC results to user memory.
4.7Enhanced Controller Area Network (eCAN) Modules (eCAN-A and eCAN-B)
The CAN module has the following features:
•Fully compliant with CAN protocol, version 2.0B
•Supports data rates up to 1 Mbps
•Thirty-two mailboxes, each with the following properties:
– Configurable as receive or transmit
– Configurable with standard or extended identifier
– Has a programmable receive mask
– Supports data and remote frame
– Composed of 0 to 8 bytes of data
– Uses a 32-bit time stamp on receive and transmit message
– Protects against reception of new message
– Holds the dynamically programmable priority of transmit message
– Employs a programmable interrupt scheme with two interrupt levels
– Employs a programmable alarm on transmission or reception time-out
•Low-power mode
•Programmable wake-up on bus activity
•Automatic reply to a remote request message
•Automatic retransmission of a frame in case of loss of arbitration or error
•32-bit local network time counter synchronized by a specific message (communication in conjunction
with mailbox 16)
•Self-test mode
– Operates in a loopback mode receiving its own message. A "dummy" acknowledge is provided,
thereby eliminating the need for another node to provide the acknowledge bit.
SPRS230N –OCTOBER 2003–REVISED MAY 2012
NOTE
For a SYSCLKOUT of 100 MHz, the smallest bit rate possible is 15.625 kbps.
For a SYSCLKOUT of 60 MHz, the smallest bit rate possible is 9.375 kbps.
If the eCAN module is not used in an application, the RAM available (LAM, MOTS, MOTO,
and mailbox RAM) can be used as general-purpose RAM. The CAN module clock should be
enabled for this.
The CAN registers listed in Table 4-7 are used by the CPU to configure and control the CAN controller
and the message objects. eCAN control registers only support 32-bit read/write operations. Mailbox RAM
can be accessed as 16 bits or 32 bits. 32-bit accesses are aligned to an even boundary.
TMS320F2809, TMS320F2808, TMS320F2806
TMS320F2802, TMS320F2801, TMS320C2802
TMS320C2801, TMS320F28016, TMS320F28015
SPRS230N –OCTOBER 2003–REVISED MAY 2012
Table 4-7. CAN Register Map
REGISTER NAMEDESCRIPTION
CANME0x60000x62001Mailbox enable
CANMD0x60020x62021Mailbox direction
CANOPC0x60280x62281Overwrite protection control
CANTIOC0x602A0x622A1TX I/O control
CANRIOC0x602C0x622C1RX I/O control
CANTSC0x602E0x622E1Time stamp counter (Reserved in SCC mode)
CANTOC0x60300x62301Time-out control (Reserved in SCC mode)
CANTOS0x60320x62321Time-out status (Reserved in SCC mode)
(1) These registers are mapped to Peripheral Frame 1.
The 280x devices include two serial communications interface (SCI) modules. The SCI modules support
digital communications between the CPU and other asynchronous peripherals that use the standard nonreturn-to-zero (NRZ) format. The SCI receiver and transmitter are double-buffered, and each has its own
separate enable and interrupt bits. Both can be operated independently or simultaneously in the fullduplex mode. To ensure data integrity, the SCI checks received data for break detection, parity, overrun,
and framing errors. The bit rate is programmable to over 65000 different speeds through a 16-bit baudselect register.
NOTE: Both pins can be used as GPIO if not used for SCI.
– Baud rate programmable to 64K different rates:
www.ti.com
•Data-word format
– One start bit
– Data-word length programmable from one to eight bits
– Optional even/odd/no parity bit
– One or two stop bits
•Four error-detection flags: parity, overrun, framing, and break detection
•Two wake-up multiprocessor modes: idle-line and address bit
•Half- or full-duplex operation
•Double-buffered receive and transmit functions
•Transmitter and receiver operations can be accomplished through interrupt-driven or polled algorithms
with status flags.
– Transmitter: TXRDY flag (transmitter-buffer register is ready to receive another character) and TX
EMPTY flag (transmitter-shift register is empty)
– Receiver: RXRDY flag (receiver-buffer register is ready to receive another character), BRKDT flag
(break condition occurred), and RX ERROR flag (monitoring four interrupt conditions)
•Separate enable bits for transmitter and receiver interrupts (except BRKDT)
•
•NRZ (non-return-to-zero) format
•Ten SCI module control registers located in the control register frame beginning at address 7050h
NOTE
All registers in this module are 8-bit registers that are connected to Peripheral Frame 2.
When a register is accessed, the register data is in the lower byte (7–0), and the upper byte
(15–8) is read as zeros. Writing to the upper byte has no effect.
The 280x devices include the four-pin serial peripheral interface (SPI) module. Up to four SPI modules
(SPI-A, SPI-B, SPI-C, and SPI-D) are available. The SPI is a high-speed, synchronous serial I/O port that
allows a serial bit stream of programmed length (one to sixteen bits) to be shifted into and out of the
device at a programmable bit-transfer rate. Normally, the SPI is used for communications between the
DSP controller and external peripherals or another processor. Typical applications include external I/O or
peripheral expansion through devices such as shift registers, display drivers, and ADCs. Multidevice
communications are supported by the master/slave operation of the SPI.
NOTE: All four pins can be used as GPIO, if the SPI module is not used.
•Two operational modes: master and slave
Baud rate: 125 different programmable rates.
SPRS230N –OCTOBER 2003–REVISED MAY 2012
•Data word length: one to sixteen data bits
•Four clocking schemes (controlled by clock polarity and clock phase bits) include:
– Falling edge without phase delay: SPICLK active-high. SPI transmits data on the falling edge of the
SPICLK signal and receives data on the rising edge of the SPICLK signal.
– Falling edge with phase delay: SPICLK active-high. SPI transmits data one half-cycle ahead of the
falling edge of the SPICLK signal and receives data on the falling edge of the SPICLK signal.
– Rising edge without phase delay: SPICLK inactive-low. SPI transmits data on the rising edge of the
SPICLK signal and receives data on the falling edge of the SPICLK signal.
– Rising edge with phase delay: SPICLK inactive-low. SPI transmits data one half-cycle ahead of the
falling edge of the SPICLK signal and receives data on the rising edge of the SPICLK signal.
•Simultaneous receive and transmit operation (transmit function can be disabled in software)
•Transmitter and receiver operations are accomplished through either interrupt-driven or polled
algorithms.
•Nine SPI module control registers: Located in control register frame beginning at address 7040h.
NOTE
All registers in this module are 16-bit registers that are connected to Peripheral Frame 2.
When a register is accessed, the register data is in the lower byte (7–0), and the upper byte
(15–8) is read as zeros. Writing to the upper byte has no effect.
The 280x device contains one I2C Serial Port. Figure 4-15 shows how the I2C peripheral module
interfaces within the 280x device.
The I2C module has the following features:
•Compliance with the Philips Semiconductors I2C-bus specification (version 2.1):
– Support for 1-bit to 8-bit format transfers
– 7-bit and 10-bit addressing modes
– General call
– START byte mode
– Support for multiple master-transmitters and slave-receivers
– Support for multiple slave-transmitters and master-receivers
– Combined master transmit/receive and receive/transmit mode
– Data transfer rate of from 10 kbps up to 400 kbps (I2C Fast-mode rate)
•One 16-word receive FIFO and one 16-word transmit FIFO
•One interrupt that can be used by the CPU. This interrupt can be generated as a result of one of the
following conditions:
– Transmit-data ready
– Receive-data ready
– Register-access ready
– No-acknowledgment received
– Arbitration lost
– Stop condition detected
– Addressed as slave
•An additional interrupt that can be used by the CPU when in FIFO mode
On the 280x, the GPIO MUX can multiplex up to three independent peripheral signals on a single GPIO
pin in addition to providing individual pin bit-banging IO capability. The GPIO MUX block diagram per pin
is shown in Figure 4-16. Because of the open-drain capabilities of the I2C pins, the GPIO MUX block
diagram for these pins differ. See the TMS320x280x, 2801x, 2804x DSP System Control and InterruptsReference Guide (literature number SPRU712) for details.
TMS320F2809, TMS320F2808, TMS320F2806
TMS320F2802, TMS320F2801, TMS320C2802
TMS320C2801, TMS320F28016, TMS320F28015
SPRS230N –OCTOBER 2003–REVISED MAY 2012
A.x stands for the port, either A or B. For example, GPxDIR refers to either the GPADIR and GPBDIR register
depending on the particular GPIO pin selected.
B.GPxDAT latch/read are accessed at the same memory location.
The 280x supports 34 GPIO pins. The GPIO control and data registers are mapped to Peripheral Frame 1
to enable 32-bit operations on the registers (along with 16-bit operations). Table 4-15 shows the GPIO
register mapping.
Table 4-15. GPIO Registers
NAMEADDRESSSIZE (x16)DESCRIPTION
GPIO CONTROL REGISTERS (EALLOW PROTECTED)
GPACTRL0x6F802GPIO A Control Register (GPIO0 to 31)
GPAQSEL10x6F822GPIO A Qualifier Select 1 Register (GPIO0 to 15)
GPAQSEL20x6F842GPIO A Qualifier Select 2 Register (GPIO16 to 31)
GPAMUX10x6F862GPIO A MUX 1 Register (GPIO0 to 15)
GPAMUX20x6F882GPIO A MUX 2 Register (GPIO16 to 31)
GPADIR0x6F8A2GPIO A Direction Register (GPIO0 to 31)
GPAPUD0x6F8C2GPIO A Pull Up Disable Register (GPIO0 to 31)
Reserved2Reserved
GPBCTRL0x6F902GPIO B Control Register (GPIO32 to 35)
GPBQSEL10x6F922GPIO B Qualifier Select 1 Register (GPIO32 to 35)
GPBQSEL20x6F942Reserved
GPBMUX10x6F962GPIO B MUX 1 Register (GPIO32 to 35)
GPBMUX20x6F982Reserved
GPBDIR0x6F9A2GPIO B Direction Register (GPIO32 to 35)
GPBPUD0x6F9C2GPIO B Pull Up Disable Register (GPIO32 to 35)
Reserved2Reserved
Reserved32Reserved
GPADAT0x6FC02GPIO Data Register (GPIO0 to 31)
GPASET0x6FC22GPIO Data Set Register (GPIO0 to 31)
GPACLEAR0x6FC42GPIO Data Clear Register (GPIO0 to 31)
GPATOGGLE0x6FC62GPIO Data Toggle Register (GPIO0 to 31)
GPBDAT0x6FC82GPIO Data Register (GPIO32 to 35)
GPBSET0x6FCA2GPIO Data Set Register (GPIO32 to 35)
GPBCLEAR0x6FCC2GPIO Data Clear Register (GPIO32 to 35)
GPBTOGGLE0x6FCE2GPIO Data Toggle Register (GPIO32 to 35)
Reserved16Reserved
GPIO INTERRUPT AND LOW POWER MODES SELECT REGISTERS (EALLOW PROTECTED)
GPIOXINT1SEL0x6FE01XINT1 GPIO Input Select Register (GPIO0 to 31)
GPIOXINT2SEL0x6FE11XINT2 GPIO Input Select Register (GPIO0 to 31)
GPIOXNMISEL0x6FE21XNMI GPIO Input Select Register (GPIO0 to 31)
Reserved5Reserved
GPIOLPMSEL0x6FE82LPM GPIO Select Register (GPIO0 to 31)
(1) GPxMUX1/2 refers to the appropriate MUX register for the pin; GPAMUX1, GPAMUX2 or GPBMUX1.
(2) This table pertains to the 2808 device. Some peripherals may not be available in the 2809, 2806, 2802, or 2801 devices. See the pin
descriptions for more detail.
(3) The word "Reserved" means that there is no peripheral assigned to this GPxMUX1/2 register setting. Should it be selected, the state of
the pin will be undefined and the pin may be driven. This selection is a reserved configuration for future expansion.
(4) The word "Reserved" means that there is no peripheral assigned to this GPxMUX1/2 register setting. Should it be selected, the state of
the pin will be undefined and the pin may be driven. This selection is a reserved configuration for future expansion.
The user can select the type of input qualification for each GPIO pin via the GPxQSEL1/2 registers from
four choices:
•Synchronization To SYSCLKOUT Only (GPxQSEL1/2 = 0,0): This is the default mode of all GPIO pins
at reset and it simply synchronizes the input signal to the system clock (SYSCLKOUT).
•Qualification Using Sampling Window (GPxQSEL1/2 = 0,1 and 1,0): In this mode the input signal, after
synchronization to the system clock (SYSCLKOUT), is qualified by a specified number of cycles before
the input is allowed to change.
www.ti.com
Figure 4-17. Qualification Using Sampling Window
•The sampling period is specified by the QUALPRD bits in the GPxCTRL register and is configurable in
groups of 8 signals. It specifies a multiple of SYSCLKOUT cycles for sampling the input signal. The
sampling window is either 3-samples or 6-samples wide and the output is only changed when ALL
samples are the same (all 0s or all 1s) as shown in Figure 6-12 (for 6-sample mode).
•No Synchronization (GPxQSEL1/2 = 1,1): This mode is used for peripherals where synchronization is
not required (synchronization is performed within the peripheral).
Due to the multi-level multiplexing that is required on the 280x device, there may be cases where a
peripheral input signal can be mapped to more then one GPIO pin. Also, when an input signal is not
selected, the input signal will default to either a 0 or 1 state, depending on the peripheral.
Texas Instruments (TI) offers an extensive line of development tools for the C28x™ generation of DSPs,
including tools to evaluate the performance of the processors, generate code, develop algorithm
implementations, and fully integrate and debug software and hardware modules.
The following products support development of 280x-based applications:
Software Development Tools
•Code Composer Studio™ Integrated Development Environment (IDE)
– C/C++ Compiler
– Code generation tools
– Assembler/Linker
– Cycle Accurate Simulator
5.1Device and Development Support Tool Nomenclature
To designate the stages in the product development cycle, TI assigns prefixes to the part numbers of all
TMS320™ DSP devices and support tools. Each TMS320™ DSP commercial family member has one of
three prefixes: TMX, TMP, or TMS (for example, TMS320F2808). Texas Instruments recommends two of
three possible prefix designators for its support tools: TMDX and TMDS. These prefixes represent
evolutionary stages of product development from engineering prototypes (TMX/TMDX) through fully
qualified production devices/tools (TMS/TMDS).
Device development evolutionary flow:
TMXExperimental device that is not necessarily representative of the final device's electrical
specifications
TMPFinal silicon die that conforms to the device's electrical specifications but has not
completed quality and reliability verification
TMSFully qualified production device
Support tool development evolutionary flow:
TMDX Development-support product that has not yet completed Texas Instruments internal
qualification testing
TMDS Fully qualified development-support product
TMX and TMP devices and TMDX development-support tools are shipped against the following
disclaimer:
"Developmental product is intended for internal evaluation purposes."
TMS devices and TMDS development-support tools have been characterized fully, and the quality and
reliability of the device have been demonstrated fully. TI's standard warranty applies.
Predictions show that prototype devices (TMX or TMP) have a greater failure rate than the standard
production devices. Texas Instruments recommends that these devices not be used in any production
system because their expected end-use failure rate still is undefined. Only qualified production devices are
to be used.
TI device nomenclature also includes a suffix with the device family name. This suffix indicates the
package type (for example, PZ) and temperature range (for example, S). Figure 5-1 provides a legend for
reading the complete device name for any family member.
Figure 5-1. Example of TMS320x280x/2801x Device Nomenclature
TMS320C2801 TMS320F28016 TMS320F28015
Submit Documentation Feedback
TMS320F2809, TMS320F2808, TMS320F2806
TMS320F2802, TMS320F2801, TMS320C2802
TMS320C2801, TMS320F28016, TMS320F28015
www.ti.com
5.2Documentation Support
Extensive documentation supports all of the TMS320™ DSP family generations of devices from product
announcement through applications development. The types of documentation available include: data
sheets and data manuals, with design specifications; and hardware and software applications.
Table 5-1 shows the peripheral reference guides appropriate for use with the devices in this data manual.
See the TMS320x28xx, 28xxx DSP Peripheral Reference Guide (literature number SPRU566) for more
information on types of peripherals.
(eQEP) Module
TMS320x280x/2801x Enhanced Controller Area Network (eCAN)SPRUEU00X
TMS320x280x, 2801x, 2804x Serial Communication Interface (SCI)SPRUFK70X
TMS320x280x, 2801x, 2804x Serial Peripheral InterfaceSPRUG720X
TMS320x28xx, 28xxx Inter-Integrated Circuit (I2C) ModuleSPRU7210X
(1) A type change represents a major functional feature difference in a peripheral module. Within a peripheral type, there may be minor
differences between devices that do not affect the basic functionality of the module. These device-specific differences are listed in the
TMS320x28xx, 28xxx DSP Peripheral Reference Guide (literature number SPRU566) and in the peripheral reference guides.
LITERATURE
NUMBER
SPRS230N –OCTOBER 2003–REVISED MAY 2012
F2809, F2808,
(1)
F2806, F2802,
F2801, C2802,
C2801, F28016,
F28015
The following documents are available on the TI website (www.ti.com):
TMS320C2802,TMS320C2801,TMS320F28016,TMS320F28015DigitalSignal
Processors Data Manual contains the pinout, signal descriptions, as well as electrical and
timing specifications for the F280x, C280x, and F2801x devices.
SPRZ171TMS320F280x, TMS320C280x, and TMS320F2801x DSC Silicon Errata describes known
advisories on silicon and provides workarounds.
CPU User's Guides
SPRU430TMS320C28x CPU and Instruction Set Reference Guide describes the central processing
unit (CPU) and the assembly language instructions of the TMS320C28x fixed-point digital
signal processors (DSPs). It also describes emulation features available on these DSPs.
SPRU712TMS320x280x, 2801x, 2804x DSP System Control and Interrupts Reference Guide
describes the various interrupts and system control features of the 280x digital signal
processors (DSPs).
Reference Guide describes the eQEP module, which is used for interfacing with a linear or
rotary incremental encoder to get position, direction, and speed information from a rotating
machine in high performance motion and position control systems. It includes the module
description and registers
the features and operation of the inter-integrated circuit (I2C) module.
SPRU722TMS320x280x, 2801x, 2804x Boot ROM Reference Guide describes the purpose and
features of the bootloader (factory-programmed boot-loading software). It also describes
other contents of the device on-chip boot ROM and identifies where all of the information is
located within that memory.
Tools Guides
SPRU513TMS320C28x Assembly Language Tools v5.0.0 User's Guide describes the assembly
language tools (assembler and other tools used to develop assembly language code),
assembler directives, macros, common object file format, and symbolic debugging directives
for the TMS320C28x device.
TMS320C28x™ C/C++ compiler. This compiler accepts ANSI standard C/C++ source code
and produces TMS320 DSP assembly language source code for the TMS320C28x device.
SPRU608TMS320C28x Instruction Set Simulator Technical Overview describes the simulator,
available within the Code Composer Studio for TMS320C2000 IDE, that simulates the
instruction set of the C28x™ core.
SPRAAQ7TMS320x281x to TMS320x2833x or 2823x Migration Overview describes how to migrate
SPRAAQ8TMS320x280x to TMS320x2833x or 2823x Migration Overview describes how to migrate
SPRAAN9C28x FPU Primer provides an overview of the floating-point unit (FPU) in the
SPRAAM0Getting Started WithTMS320C28x Digital Signal Controllersis organized by
TMS320F2809, TMS320F2808, TMS320F2806
TMS320F2802, TMS320F2801, TMS320C2802
TMS320C2801, TMS320F28016, TMS320F28015
SPRS230N –OCTOBER 2003–REVISED MAY 2012
Key Links Include:
1. C2000 Get Started - www.ti.com/c2000getstarted
2. C2000 Digital Motor Control Software Library - www.ti.com/c2000appsw
3. C2000 Digital Power Supply Software Library - www.ti.com/dpslib
4. DSP Power Management Reference Designs - www.ti.com/dsppower
from the 281x device design to 2833x or 2823x designs.
from a 280x device design to 2833x or 2823x designs.
TMS320F28335, TMS320F28334, and TMS320F28332 Digital Signal Controller (DSC)
devices.
development flow and functional areas to make your design effort as seamless as possible.
Tips on getting started with C28x™ DSP software and hardware development are provided
to aid in your initial design and debug efforts. Each section includes pointers to valuable
information including technical documentation, software, and tools for use in each phase of
design.
SPRA958Running an Application from Internal Flash Memory on the TMS320F28xxx DSP covers
the requirements needed to properly configure application software for execution from onchip flash memory. Requirements for both DSP/BIOS™ and non-DSP/BIOS projects are
presented. Example code projects are included.
SPRAA85Programming TMS320x28xx and 28xxx Peripherals in C/C++ explores a hardware
abstraction layer implementation to make C/C++ coding easier on 28x DSPs. This method is
compared to traditional #define macros and topics of code efficiency and special case
registers are also addressed.
SPRAA88Using PWM Output as a Digital-to-Analog Converter on a TMS320F280x Digital Signal
Controller presents a method for utilizing the on-chip pulse width modulated (PWM) signal
generators on the TMS320F280x family of digital signal controllers as a digital-to-analog
converter (DAC).
SPRAA91TMS320F280x Digital Signal Controller USB Connectivity Using the TUSB3410 USB-to-
UART Bridge Chip presents hardware connections as well as software preparation and
operation of the development system using a simple communication echo program.
SPRAAH1Using the Enhanced Quadrature Encoder Pulse (eQEP) Module in TMS320x280x,
28xxx as a Dedicated Capture provides a guide for the use of the eQEP module as a
dedicated capture unit and is applicable to the TMS320x280x, 28xxx family of processors.
SPRAAI1Using the ePWM Module for 0% – 100% Duty Cycle Control provides a guide for the use
of the ePWM module to provide 0% to 100% duty cycle control and is applicable to the
TMS320x280x family of processors.
SPRAAD5Power Line Communication for Lighting Applications Using Binary Phase Shift Keying
(BPSK) with a Single DSP Controller presents a complete implementation of a power line
modem following CEA-709 protocol using a single DSP.
SPRAAD8TMS320x280x and TMS320F2801x ADC Calibration describes a method for improving the
absolute accuracy of the 12-bit ADC found on the TMS320x280x and TMS320F2801x
devices. Inherent gain and offset errors affect the absolute accuracy of the ADC. The
methods described in this report can improve the absolute accuracy of the ADC to levels
better than 0.5%. This application report has an option to download an example program that
executes from RAM on the F2808 EzDSP.
SPRA820Online Stack Overflow Detection on the TMS320C28x DSP presents the methodology for
online stack overflow detection on the TMS320C28x DSP. C-source code is provided that
contains functions for implementing the overflow detection on both DSP/BIOS and nonDSP/BIOS applications.
SPRA806An Easy Way of Creating a C-callable Assembly Function for the TMS320C28x DSP
provides instructions and suggestions to configure the C compiler to assist with C-callable
assembly routines.
SPRAA58TMS320x281x to TMS320x280x Migration Overview describes differences between the
Texas Instruments TMS320x281x and the TMS320x280x/2801x/2804x DSPs to assist in
application migration.
Software
SPRC191C280x, C2801x C/C++ Header Files and Peripheral Examples
www.ti.com
BSDL Models
SPRM244F2809 GGM/ZGM BSDL Model
SPRM245F2809 PZ BSDL Model
SPRM198F2808 100-Pin GGM/ZGM BSDL Model
SPRM197F2808 100-Pin PZ BSDL Model
SPRM196F2806 100-Pin PZ BSDL Model
SPRM200F2806 100-Pin GGM/ZGM BSDL Model
SPRM414F2802 GGM BSDL Model
SPRM413F2802 PZ BSDL Model
SPRM415F2802 ZGM BSDL Model
SPRM194F2801 100-Pin GGM/ZGM BSDL Model
SPRM195F2801 100-Pin PZ BSDL Model
SPRM261C2802 100-Pin GGM/ZGM BSDL Model
SPRM260C2802 100-Pin PZ BSDL Model
SPRM259C2801 100-Pin GGM/ZGM BSDL Model
SPRM258C2801 100-Pin PZ BSDL Model
SPRM416F28016 GGM BSDL Model
SPRM357F28016 PZ BSDL Model
SPRM417F28016 ZGM BSDL Model
SPRM412F28015 GGM BSDL Model
SPRM356F28015 PZ BSDL Model
SPRM355F28015 ZGM BSDL Model
SPRM445F2809 GGM IBIS Model
SPRM295F2809 PZ IBIS Model
SPRM444F2809 ZGM IBIS Model
SPRM291F2808 GGM IBIS Model
SPRM292F2808 PZ IBIS Model
SPRM293F2808 ZGM IBIS Model
SPRM288F2806 GGM IBIS Model
SPRM289F2806 PZ IBIS Model
SPRM290F2806 ZGM IBIS Model
SPRM285F2802 GGM IBIS Model
SPRM286F2802 PZ IBIS Model
SPRM287F2802 ZGM IBIS Model
TMS320F2809, TMS320F2808, TMS320F2806
TMS320F2802, TMS320F2801, TMS320C2802
TMS320C2801, TMS320F28016, TMS320F28015
SPRS230N –OCTOBER 2003–REVISED MAY 2012
SPRM282F2801 GGM IBIS Model
SPRM283F2801 PZ IBIS Model
SPRM284F2801 ZGM IBIS Model
SPRM310C2802 GGM IBIS Model
SPRM449C2802 PZ IBIS Model
SPRM311C2802 ZGM IBIS Model
SPRM308C2801 GGM IBIS Model
SPRM448C2801 PZ IBIS Model
SPRM309C2801 ZGM IBIS Model
SPRM405F28016 GGM IBIS Model
SPRM300F28016 PZ IBIS Model
SPRM404F28016 ZGM IBIS Model
SPRM403F28015 GGM IBIS Model
SPRM299F28015 PZ IBIS Model
SPRM402F28015 ZGM IBIS Model
A series of DSP textbooks is published by Prentice-Hall and John Wiley & Sons to support digital signal
processing research and education. The TMS320 DSP newsletter, Details on Signal Processing, is
published quarterly and distributed to update TMS320 DSP customers on product information.
Updated information on the TMS320 DSP controllers can be found on the worldwide web at:
http://www.ti.com.
Tosendcommentsregardingthisdatamanual(literaturenumberSPRS230),usethe
comments@books.sc.ti.com email address, which is a repository for feedback. For questions and support,
contact the Product Information Center listed at the http://www.ti.com/sc/docs/pic/home.htm site.
The following links connect to TI community resources. Linked contents are provided "AS IS" by the
respective contributors. They do not constitute TI specifications and do not necessarily reflect TI's views;
see TI's Terms of Use.
TI E2E Community TI's Engineer-to-Engineer (E2E) Community. Created to foster collaboration
among engineers. At e2e.ti.com, you can ask questions, share knowledge, explore ideas and
help solve problems with fellow engineers.
TI Embedded Processors Wiki Texas Instruments Embedded Processors Wiki. Established to help
developers get started with Embedded Processors from Texas Instruments and to foster
innovation and growth of general knowledge about the hardware and software surrounding
these devices.
This section provides the absolute maximum ratings and the recommended operating conditions for the
TMS320F280x DSPs.
TMS320F2809, TMS320F2808, TMS320F2806
TMS320F2802, TMS320F2801, TMS320C2802
TMS320C2801, TMS320F28016, TMS320F28015
SPRS230N –OCTOBER 2003–REVISED MAY 2012
6.1Absolute Maximum Ratings
(1) (2)
Unless otherwise noted, the list of absolute maximum ratings are specified over operating temperature ranges.
Supply voltage range, V
Supply voltage range, V
Supply voltage range, V
Supply voltage range, V
Supply voltage range, V
Input voltage range, V
Output voltage range, V
Input clamp current, IIK(VIN< 0 or VIN> V
Output clamp current, IOK(VO< 0 or VO> V
Operating ambient temperature rangesTA: A version (GGM, ZGM, PZ)
Junction temperature range, T
Storage temperature range, T
(1) Stresses beyond those listed under Absolute Maximum Ratings may cause permanent damage to the device. These are stress ratings
only, and functional operation of the device at these or any other conditions beyond those indicated under Section 6.2 is not implied.
Exposure to absolute-maximum-rated conditions for extended periods may affect device reliability.
(2) All voltage values are with respect to VSS, unless otherwise noted.
(3) Continuous clamp current per pin is ±2 mA. This includes the analog inputs which have an internal clamping circuit that clamps the
voltage to a diode drop above V
(4) Long-term high-temperature storage and/or extended use at maximum temperature conditions may result in a reduction of overall device
life. For additional information, see IC Package Thermal Metrics Application Report (literature number SPRA953) and Reliability Data for
TMS320LF24xx and TMS320F28xx Devices Application Report (literature number SPRA963).
DDIO
DDA2
DD
DD1A18
SSA2
IN
O
, V
, V
, V
DD3VFL
DDAIO
, V
DD2A18
SSAIO
(4)
J
(4)
stg
, V
SS1AGND
DDA2
with respect to V
with respect to V
with respect to V
with respect to V
, V
SS2AGND
(3)
)
DDIO
)±20 mA
DDIO
with respect to V
TA: S version (GGM, ZGM, PZ)
TA: Q version (PZ)
SS
SSA
SS
SSA
SS
(4)
(4)
(4)
–40°C to 125°C
–40°C to 125°C
–40°C to 150°C
–65°C to 150°C
or below V
SSA2
.
–0.3 V to 4.6 V
–0.3 V to 4.6 V
–0.3 V to 2.5 V
–0.3 V to 2.5 V
–0.3 V to 0.3 V
–0.3 V to 4.6 V
–0.3 V to 4.6 V
over operating free-air temperature range (unless otherwise noted)
MINNOMMAXUNIT
Device supply voltage, I/O, V
Device supply voltage CPU, V
Supply ground, VSS, V
ADC supply voltage (3.3 V), V
ADC supply voltage (1.8 V), V
Flash supply voltage, V
SSIO
DD3VFL
DDIO
DD
DDA2
DD1A18
, V
DDAIO
, V
DD2A18
Device clock frequency (system clock),100-MHz devices2100MHz
f
SYSCLKOUT
High-level input voltage, V
IH
60-MHz devices260MHz
All inputs except X12V
X10.7 * VDD– 0.05V
Low-level input voltage, V
IL
All inputs except X1VSS– 0.30.8V
X10.3 * VDD+ 0.05
High-level output source current,
VOH= 2.4 V, I
OH
Low-level output sink current,
VOL= VOLMAX, I
OL
All I/Os except Group 2–4mA
(1)
Group 2
All I/Os except Group 24mA
(1)
Group 2
A version–4085°C
Ambient temperature, T
A
S version–40125
Q version–40125
(Q100 Qualification)
(1) Group 2 pins are as follows: GPIO28, GPIO29, GPIO30, GPIO31, TDO, XCLKOUT, EMU0, and EMU1
3.143.33.47V
1.711.81.89V
0V
3.143.33.47V
1.711.81.89V
3.143.33.47V
DDIO
www.ti.com
+ 0.3V
DD
–8
8
6.3Electrical Characteristics
over recommended operating conditions (unless otherwise noted)
During flash programming, extra current is drawn from the VDDand V
•I2C
All PWM pins are toggled
at 100 kHz.
All I/O pins are left
unconnected.
Data is continuously
transmitted out of the
SCI-A, SCI-B, and
eCAN-A ports. The
hardware multiplier is
exercised.
Code is running out of
flash with 3 wait-states.
XCLKOUT is turned off.
Flash is powered down.
XCLKOUT is turned off.
The following peripheral
clocks are enabled:
•eCAN-A
•SCI-A
•SPI-A
•I2C
Flash is powered down.
Peripheral clocks are off.
Flash is powered down.
Input clock is disabled.
current is dependent on the electrical loading on the I/O pins.
DDIO
current indicated in this table is the flash read-current and does not include additional current for erase/write operations.
involves on-board flash programming, this extra current must be taken into account while architecting the power-supply stage.
(3) I
(4) I
(5) TYP numbers are applicable over room temperature and nominal voltage.
includes current into V
DDA18
clock to the ADC module must be turned off explicitly by writing to the PCLKCR0 register.
includes current into V
DDA33
DD1A18
DDA2
and V
and V
DD2A18
DDAIO
pins. In order to realize the I
pins.
(5)
I
DDIO
(1)
MAX
(6)
TYPMAX
rails, as indicated in Table 6-45. If the user application
DD3VFL
(2)
I
DD3VFL
DDA18
(6)
TYP
currents shown for IDLE, STANDBY, and HALT,
I
(5)
DDA18
(3)
MAX
(6)
TYP
(5)
I
DDA33
(4)
MAX
(6) MAX numbers are at 125°C and MAX voltage.
(6)
NOTE
The peripheral - I/O multiplexing implemented in the 280x devices prevents all available
peripherals from being used at the same time. This is because more than one peripheral
function may share an I/O pin. It is, however, possible to turn on the clocks to all the
peripherals at the same time, although such a configuration is not useful. If this is done, the
current drawn by the device will be more than the numbers specified in the current
consumption tables.
•I2C
All PWM pins are toggled at
100 kHz.
All I/O pins are left
unconnected.
Data is continuously
transmitted out of the SCIA, SCI-B, and eCAN-A
ports. The hardware
multiplier is exercised.
Code is running out of flash
with 3 wait-states.
XCLKOUT is turned off
Flash is powered down.
XCLKOUT is turned off.
The following peripheral
clocks are enabled:
•eCAN-A
•SCI-A
•SPI-A
•I2C
Flash is powered down.
Peripheral clocks are off.
Flash is powered down.
Input clock is disabled.
current is dependent on the electrical loading on the I/O pins.
DDIO
During flash programming, extra current is drawn from the VDDand V
current indicated in this table is the flash read-current and does not include additional current for erase/write operations.
involves on-board flash programming, this extra current must be taken into account while architecting the power-supply stage.
(3) I
(4) I
(5) TYP numbers are applicable over room temperature and nominal voltage.
includes current into V
DDA18
clock to the ADC module must be turned off explicitly by writing to the PCLKCR0 register.
includes current into V
DDA33
DD1A18
DDA2
and V
and V
DD2A18
DDAIO
pins. In order to realize the I
pins.
(1)
I
DDIO
(5)
MAX
(6)
TYP
rails, as indicated in Table 6-45. If the user application
DD3VFL
DDA18
I
DD3VFL
(5)
(2)
MAX
(6)
TYP
I
(5)
DDA18
(3)
MAX
I
TYP
DDA33
(5)
(6)
currents shown for IDLE, STANDBY, and HALT,
(4)
MAX
(6) MAX numbers are at 125°C and MAX voltage.
(6)
NOTE
The peripheral - I/O multiplexing implemented in the 280x devices prevents all available
peripherals from being used at the same time. This is because more than one peripheral
function may share an I/O pin. It is, however, possible to turn on the clocks to all the
peripherals at the same time, although such a configuration is not useful. If this is done, the
current drawn by the device will be more than the numbers specified in the current
consumption tables.
During flash programming, extra current is drawn from the VDDand V
•ADC
•I2C
All PWM pins are toggled at
100 kHz.
All I/O pins are left
unconnected.
Data is continuously
transmitted out of the SCI-A,
SCI-B, and eCAN-A ports.
The hardware multiplier is
exercised.
Code is running out of flash
with 3 wait-states.
XCLKOUT is turned off.
Flash is powered down.
XCLKOUT is turned off.
The following peripheral
clocks are enabled:
•eCAN-A
•SCI-A
•SPI-A
•I2C
Flash is powered down.
Peripheral clocks are off.
Flash is powered down.
Input clock is disabled.
current is dependent on the electrical loading on the I/O pins.
DDIO
current indicated in this table is the flash read-current and does not include additional current for erase/write operations.
involves on-board flash programming, this extra current must be taken into account while architecting the power-supply stage.
(3) I
(4) I
(5) TYP numbers are applicable over room temperature and nominal voltage.
includes current into V
DDA18
clock to the ADC module must be turned off explicitly by writing to the PCLKCR0 register.
includes current into V
DDA33
DD1A18
DDA2
and V
and V
DD2A18
DDAIO
pins. In order to realize the I
pins.
(1)
I
DDIO
(5)
MAX
DD3VFL
(6)
TYP
rails, as indicated in Table 6-45. If the user application
DDA18
I
DD3VFL
(5)
(2)
MAX
(6)
TYP
I
(5)
DDA18
(3)
MAX
I
TYP
DDA33
(5)
(6)
currents shown for IDLE, STANDBY, and HALT,
(4)
MAX
(6) MAX numbers are at 125°C and MAX voltage.
(6)
NOTE
The peripheral - I/O multiplexing implemented in the 280x devices prevents all available
peripherals from being used at the same time. This is because more than one peripheral
function may share an I/O pin. It is, however, possible to turn on the clocks to all the
peripherals at the same time, although such a configuration is not useful. If this is done, the
current drawn by the device will be more than the numbers specified in the current
consumption tables.
clock to the ADC module must be turned off explicitly by writing to the PCLKCR0 register.
(3) I
DDA33
(4) TYP numbers are applicable over room temperature and nominal voltage.
•ADC
•I2C
All PWM pins are toggled at
100 kHz.
All I/O pins are left unconnected.
Data is continuously transmitted
out of the SCI-A, SCI-B, and
eCAN-A ports. The hardware
multiplier is exercised.
Code is running out of ROM with
3 wait-states.
XCLKOUT is turned off.
XCLKOUT is turned off.
The following peripheral clocks
are enabled:
•eCAN-A
•SCI-A
•SPI-A
•I2C
Peripheral clocks are off.
Input clock is disabled.
current is dependent on the electrical loading on the I/O pins.
includes current into V
includes current into V
DD1A18
DDA2
and V
and V
DD2A18
DDAIO
DD
(4)
TYP
150 mA165 mA5 mA10 mA30 mA38 mA1.5 mA2 mA
MAX
(5)
TYP
pins. In order to realize the I
pins.
(1)
I
DDIO
(4)
(5)
MAX
currents shown for IDLE, STANDBY, and HALT,
DDA18
TYP
(4)
I
DDA18
(2)
MAX
(3)
I
TYP
(4)
DDA33
MAX
(5)
(5) MAX numbers are at 125°C and MAX voltage.
(5)
NOTE
The peripheral - I/O multiplexing implemented in the 280x devices prevents all available
peripherals from being used at the same time. This is because more than one peripheral
function may share an I/O pin. It is, however, possible to turn on the clocks to all the
peripherals at the same time, although such a configuration is not useful. If this is done, the
current drawn by the device will be more than the numbers specified in the current
consumption tables.
280x devices have a richer peripheral mix compared to the 281x family. While the McBSP has been
removed, the following new peripherals have been added on the 280x:
•3 SPI modules
•1 CAN module
•1 I2C module
The two event manager modules of the 281x have been enhanced and replaced with separate ePWM (6),
eCAP (4) and eQEP (2) modules, providing tremendous flexibility in applications. Like 281x, 280x DSPs
incorporate a unique method to reduce the device current consumption. Since each peripheral unit has an
individual clock-enable bit, significant reduction in current consumption can be achieved by turning off the
clock to any peripheral module that is not used in a given application. Furthermore, any one of the three
low-power modes could be taken advantage of to reduce the current consumption even further. Table 6-5
indicates the typical reduction in current consumption achieved by turning off the clocks.
TMS320F2809, TMS320F2808, TMS320F2806
TMS320F2802, TMS320F2801, TMS320C2802
TMS320C2801, TMS320F28016, TMS320F28015
SPRS230N –OCTOBER 2003–REVISED MAY 2012
Table 6-5. Typical Current Consumption by Various
Peripherals (at 100 MHz)
PERIPHERALIDDCURRENT
MODULEREDUCTION (mA)
ADC8
I2C5
eQEP5
ePWM5
eCAP2
SCI4
SPI5
eCAN11
(1) All peripheral clocks are disabled upon reset. Writing to/reading from
peripheral registers is possible only after the peripheral clocks are
turned on.
(2) For peripherals with multiple instances, the current quoted is per
module. For example, the 5 mA number quoted for ePWM is for one
ePWM module.
(3) This number represents the current drawn by the digital portion of
the ADC module. Turning off the clock to the ADC module results in
the elimination of the current drawn by the analog portion of the ADC
(I
) as well.
DDA18
(1)
(2)
(3)
NOTE
I
current consumption is reduced by 15 mA (typical) when XCLKOUT is turned off.
DDIO
NOTE
The baseline IDDcurrent (current when the core is executing a dummy loop with no
peripherals enabled) is 110 mA, typical. To arrive at the IDDcurrent for a given application,
the current-drawn by the peripherals (enabled by that application) must be added to the
baseline IDDcurrent.
Figure 6-2. Typical Operational Power Versus Frequency (F2808)
NOTE
Typical operational current for 60-MHz devices can be estimated from Figure 6-1. For I
current alone, subtract the current contribution of non-existent peripherals after scaling the
peripheral currents for 60 MHz. For example, to compute the current of F2801-60 device, the
contribution by the following peripherals must be subtracted from IDD: ePWM4/5/6, eCAP3/4,
eQEP2, SCI-B.