Check for Samples: TMS320F28030, TMS320F28031, TMS320F28032, TMS320F28033, TMS320F28034, TMS320F28035
1TMS320F2803x ( Piccolo™) MCUs
1.1Features
123
• Highlights
– High-Efficiency 32-Bit CPU ( TMS320C28x™)
– 60-MHz Device
– Single 3.3-V Supply
– Integrated Power-on and Brown-out Resets
– Two Internal Zero-pin Oscillators
– Up to 45 Multiplexed GPIO Pins
– Three 32-Bit CPU Timers
– On-Chip Flash, SARAM, OTP Memory
– Code-Security Module
– Serial Port Peripherals
(SCI/SPI/I2C/LIN/eCAN)
– Enhanced Control Peripherals
•Enhanced Pulse Width Modulator (ePWM)
•High-Resolution PWM (HRPWM)
•Enhanced Capture (eCAP)
•Enhanced Quadrature Encoder Pulse
(eQEP)
•Analog-to-Digital Converter (ADC)
•On-Chip Temperature Sensor
•Comparator
– 64-Pin and 80-Pin Packages
• High-Efficiency 32-Bit CPU ( TMS320C28x™)
– 60 MHz (16.67-ns Cycle Time)
– 16 x 16 and 32 x 32 MAC Operations
– 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)
• Programmable Control Law Accelerator (CLA)
– 32-Bit Floating-Point Math Accelerator
– Executes Code Independently of the Main
CPU
• Low Device and System Cost:
– Single 3.3-V Supply
– No Power Sequencing Requirement
– Integrated Power-on Reset and Brown-out
• Serial Port Peripherals
– One SCI (UART) Module
– Two SPI Modules
– One Inter-Integrated-Circuit (I2C) Bus
– One Local Interconnect Network (LIN) Bus
– One Enhanced Controller Area Network
(eCAN) Bus
• Advanced Emulation Features
– Analysis and Breakpoint Functions
– Real-Time Debug via Hardware
• Community Resources
– TI E2E Community
– TI Embedded Processors Wiki
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.
2Piccolo, TMS320C28x, C28x, TMS320C2000, Code Composer Studio, XDS510 are trademarks of Texas Instruments.
3All other trademarks are the property of their respective owners.
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 testingof all parameters.
The F2803x Piccolo™ family of microcontrollers provides the power of the C28x™ core and Control Law
Accelerator (CLA) coupled with highly integrated control peripherals in low pin-count devices. This family
is code-compatible with previous C28x-based code, as well as providing a high level of analog integration.
An internal voltage regulator allows for single rail operation. Enhancements have been made to the
HRPWM module to allow for dual-edge control (frequency modulation). Analog comparators with internal
10-bit references have been added and can be routed directly to control the PWM outputs. The ADC
converts from 0 to 3.3-V fixed full scale range and supports ratio-metric V
REFHI/VREFLO
references. The
ADC interface has been optimized for low overhead/latency.
1.3Getting 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)
•TMS320F28x MCU Development and Experimenter's Kits (http://www.ti.com/f28xkits)
32-Bit CPU timers–333333
HiRES ePWM Channels1––67676767
Comparators with IntegratedDACs0333333
Inter-integrated circuit (I2C)0111111
Enhanced Controller AreaNetwork
(eCAN)
Local Interconnect Network(LIN)0111111
Serial Peripheral Interface(SPI)1121212121212
Serial Communications Interface
(SCI)
I/O pins
(shared)
External interrupts–333333
Supply voltage (nominal)–3.3 V3.3 V3.3 V3.3 V3.3 V3.3 V
Temperature
options
Product status
Channels141614161416141614161416
Temperature SensorYesYesYesYesYesYes
Dual
Sample-and-Hold
GPIO–334533453345334533453345
AIO–666666
T: –40°C to 105°C–YesYesYesYesYesYes
S: –40°C to 125°C–YesYesYesYesYesYes
Q: –40°C to 125°C
(3)
(1)
–YesYesYesYesYesYes
–1K1K1K1K1K1K
0111111
0111111
(2)
–YesYesYesYesYesYes
–TMSTMSTMSTMSTMSTMS
(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) "Q" refers to Q100 qualification for automotive applications.
(3) See Section 5.1 , Device and Development Support Tool Nomenclature, for descriptions of device stages. The "TMS" product status
Table 2-2 describes the signals. With the exception of the JTAG pins, the GPIO function is the default at
reset, unless otherwise mentioned. The peripheral signals that are listed under them are alternate
functions. Some peripheral functions may not be available in all devices. See Table 2-1 for details. Inputs
are not 5-V tolerant. All GPIO pins are I/O/Z 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 pullups on the PWM
pins are not enabled at reset. The pullups on other GPIO pins are enabled upon reset. The AIO pins do
not have an internal pullup.
Table 2-2. Terminal Functions
TERMINAL
NAME
TRST108Inormal device operation. An external pull-down resistor is required on this pin. The
TCKSee GPIO38ISee GPIO38. JTAG test clock with internal pullup (↑)
TMSSee GPIO36I
TDISee GPIO35I
TDOSee GPIO37O/Zregister (instruction or data) are shifted out of TDO on the falling edge of TCK. (8 mA
TEST23830I/OTest Pin. Reserved for TI. Must be left unconnected.
XCLKOUTSee GPIO18O/Z
XCLKINIpath must be disabled by bit 13 in the CLKCTL register.
X15241I
X25140O
PNPAG
PIN #PIN #
See GPIO19 and
GPIO38
I/O/ZDESCRIPTION
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: TRST is an active high test pin and must be maintained low at all times during
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. (↓)
See GPIO36. JTAG test-mode select (TMS) with internal pullup. This serial control
input is clocked into the TAP controller on the rising edge of TCK. (↑)
See GPIO35. JTAG test data input (TDI) with internal pullup. TDI is clocked into the
selected register (instruction or data) on a rising edge of TCK. (↑)
See GPIO37. JTAG scan out, test data output (TDO). The contents of the selected
drive)
FLASH
CLOCK
See GPIO18. 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 bits 1:0 (XCLKOUTDIV) in the XCLK register. At reset, XCLKOUT =
SYSCLKOUT/4. The XCLKOUT signal can be turned off by setting XCLKOUTDIV
to 3. The mux control for GPIO18 must also be set to XCLKOUT for this signal to
propogate to the pin.
See GPIO19 and GPIO38. External oscillator input. Pin source for the clock is
controlled by the XCLKINSEL bit in the XCLK register, GPIO38 is the default
selection. This pin feeds a clock from an external 3.3-V oscillator. In this case, the X1
pin, if available, must be tied to GND and the on-chip crystal oscillator must be
disabled via bit 14 in the CLKCTL register. If a crystal/resonator is used, the XCLKIN
NOTE: Designs that use the GPIO38/TCK/XCLKIN pin to supply an external clock for
normal device operation may need to incorporate some hooks to disable this path
during debug using the JTAG connector. This is to prevent contention with the TCK
signal, which is active during JTAG debug sessions. The zero-pin internal oscillators
may be used during this time to clock the device.
On-chip crystal-oscillator input. To use this oscillator, a quartz crystal or a ceramic
resonator must be connected across X1 and X2. In this case, the XCLKIN path must
be disabled by bit 13 in the CLKCTL register. If this pin is not used, it must be tied to
GND. (I)
On-chip crystal-oscillator output. A quartz crystal or a ceramic resonator must be
connected across X1 and X2. If X2 is not used, it must be left unconnected. (O)
(1)
(1) I = Input, O = Output, Z = High Impedance, OD = Open Drain, ↑ = Pullup, ↓ = Pulldown
ADCINB12419IADC Group B, Channel 1 input
ADCINB02318
VREFLO2217NOTE: VREFLO is always connected to V
PNPAG
PIN #PIN #
I/O/ZDESCRIPTION
RESET
Device Reset (in) and Watchdog Reset (out). Piccolo devices have a built-in
power-on-reset (POR) and brown-out-reset (BOR) circuitry. As such, no external
circuitry is needed to generate a reset pulse. During a power-on or brown-out
condition, this pin is driven low by the device. See the electrical section for thresholds
of the POR/BOR block. This pin is also driven low by the MCU when a watchdog reset
occurs. During watchdog reset, the XRS pin is driven low for the watchdog reset
duration of 512 OSCCLK cycles. If need be, an external circuitry may also drive this
pin to assert a device reset. In this case, it is recommended that this pin be driven by
an open-drain device. An R-C circuit must be connected to this pin for noise immunity
reasons. Regardless of the source, a device reset causes the device to terminate
execution. The program counter points to the address contained at the location
0x3FFFC0. When reset is deactivated, execution begins at the location designated by
the program counter. The output buffer of this pin is an open-drain with an internal
pullup. (I/OD)
ADC, COMPARATOR, ANALOG I/O
I
I/O
ADC Group A, Channel 0 input.
use is mutually exclusive to one another.
ADC External Reference – only used when in ADC external reference mode. See
ADC Section..
NOTE: VREFHI and ADCINA0 share the same pin on the 64-pin PAG device and their
use is mutually exclusive to one another.
2016Analog Power Pin. Tie with a 2.2-mF capacitor (typical) close to the pin.
2117
Analog Ground Pin.
NOTE: VREFLO is always connected to V
on the 64-pin PAG device.
SSA
75CPU and Logic Digital Power Pins – no supply source needed when using internal
5443
7259
3629
7057
VREG. Tie with 1.2 µF (minimum) ceramic capacitor (10% tolerance) to ground when
using internal VREG. Higher value capacitors may be used, but could impact
supply-rail ramp-up time.
Digital I/O and Flash Power Pin – Single Supply source when VREG is enabled
86
3528
5342
Digital Ground Pins
7158
VOLTAGE REGULATOR CONTROL SIGNAL
VREGENZ7360IInternal VREG Enable/Disable – pull low to enable VREG, pull high to disable VREG
GPIO AND PERIPHERAL SIGNALS
(1)
GPIO06956I/O/ZGeneral purpose input/output 0
EPWM1AOEnhanced PWM1 Output A and HRPWM channel
–––
–––
GPIO16855I/O/ZGeneral purpose input/output 1
EPWM1BOEnhanced PWM1 Output B
––
COMP1OUTODirect output of Comparator 1
GPIO26754I/O/ZGeneral purpose input/output 2
EPWM2AOEnhanced PWM2 Output A and HRPWM channel
––
––
GPIO36653I/O/ZGeneral purpose input/output 3
EPWM2BOEnhanced PWM2 Output B
SPISOMIAI/OSPI-A slave out, master in
COMP2OUTODirect output of Comparator 2
GPIO46351I/O/ZGeneral purpose input/output 4
EPWM3AOEnhanced PWM3 output A and HRPWM channel
––
––
GPIO56250I/O/ZGeneral purpose input/output 5
EPWM3BOEnhanced PWM3 output B
SPISIMOAI/OSPI-A slave in, master out
ECAP1I/OEnhanced Capture input/output 1
(1) The GPIO function (shown in bold italics) is the default at reset. The peripheral signals that are listed under them are alternate functions.
For JTAG pins that have the GPIO functionality multiplexed, the input path to the GPIO block is always valid. The output path from the
GPIO block and the path to the JTAG block from a pin is enabled/disabled based on the condition of the TRST signal. See the
TMS320x2803x Piccolo System Control and Interrupts Reference Guide (literature number SPRUGL8) for details.
GPIO164636I/O/ZGeneral purpose input/output 16
SPISIMOAI/OSPI-A slave in, master out
––
TZ2ITrip Zone input 2
GPIO174234I/O/ZGeneral purpose input/output 17
SPISOMIAI/OSPI-A slave out, master in
––
TZ3ITrip zone input 3
GPIO184133I/O/ZGeneral purpose input/output 18
SPICLKAI/OSPI-A clock input/output
LINTXAOLIN transmit
XCLKOUTO/ZOutput clock derived from SYSCLKOUT. XCLKOUT is either the same frequency,
GPIO195544I/O/ZGeneral purpose input/output 19
XCLKINExternal Oscillator Input. The path from this pin to the clock block is not gated by the
one-half the frequency, or one-fourth the frequency of SYSCLKOUT. This is controlled
by bits 1:0 (XCLKOUTDIV) in the XCLK register. At reset, XCLKOUT =
SYSCLKOUT/4. The XCLKOUT signal can be turned off by setting XCLKOUTDIV
to 3. The mux control for GPIO18 must also be set to XCLKOUT for this signal to
propogate to the pin.
mux function of this pin. Care must be taken not to enable this path for clocking if it is
being used for the other periperhal functions
NOTE: The SPI-B peripheral is only available in the PN package.
GPIO375846I/O/ZGeneral-Purpose Input/Output 37
TDOO/ZJTAG scan out, test data output (TDO). The contents of the selected register
GPIO385745I/O/ZGeneral-Purpose Input/Output 38
TCKIJTAG test clock with internal pullup
XCLKINIExternal Oscillator Input. The path from this pin to the clock block is not gated by the
In Figure 3-2 through Figure 3-5, the following apply:
•Memory blocks are not to scale.
•Peripheral Frame 0, Peripheral Frame 1 and Peripheral Frame 2 memory maps are restricted to data
memory only. A user program cannot access these memory maps in program space.
•Protected means the order of Write-followed-by-Read operations is preserved rather than the pipeline
order.
•Certain memory ranges are EALLOW protected against spurious writes after configuration.
•Locations 0x3D7C80 – 0x3D7CC0 contain the internal oscillator and ADC calibration routines. These
locations are not programmable by the user.
Table 3-1. Addresses of Flash Sectors in F28034/28035
ADDRESS RANGEPROGRAM AND DATA SPACE
0x3E 8000 – 0x3E 9FFFSector H (8K x 16)
0x3E A000 – 0x3E BFFFSector G (8K x 16)
0x3E C000 – 0x3E DFFFSector F (8K x 16)
0x3E E000 – 0x3E FFFFSector E (8K x 16)
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)
0x3F 7F80 – 0x3F 7FF5
0x3F 7FF6 – 0x3F 7FF7
0x3F 7FF8 – 0x3F 7FFF
Table 3-2. Addresses of Flash Sectors in F28031/28032/28033
ADDRESS RANGEPROGRAM AND DATA SPACE
0x3F 0000 – 0x3F 0FFFSector H (4K x 16)
0x3F 1000 – 0x3F 1FFFSector G (4K x 16)
0x3F 2000 – 0x3F 2FFFSector F (4K x 16)
0x3F 3000 – 0x3F 3FFFSector E (4K x 16)
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 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)
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 F28030
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)
•When the code-security passwords are programmed, all addresses between 0x3F 7F80
and 0x3F 7FF5 cannot be used as program code or data. These locations must be
programmed to 0x0000.
•If the code security feature is not used, addresses 0x3F 7F80 through 0x3F 7FEF may
be used for code or data. Addresses 0x3F 7FF0 – 0x3F 7FF5 are reserved for data and
should not contain program code.
Table 3-4 shows how to handle these memory locations.
Table 3-4. Impact of Using the Code Security Module
ADDRESS
0x3F 7F80 – 0x3F 7FEFApplication code and data
0x3F 7FF0 – 0x3F 7FF5Reserved for data only
CODE SECURITY ENABLEDCODE SECURITY DISABLED
Fill with 0x0000
FLASH
Peripheral Frame 1 and Peripheral Frame 2 are grouped together to enable these blocks to be write/read
peripheral block protected. The protected mode makes sure that all accesses to these blocks happen as
written. Because of the 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 CPU supports a block
protection mode where a region of memory can be protected so that operations occur as written (the
penalty is extra cycles are added to align the operations). This mode is programmable and by default, it
protects the selected zones.
The wait-states for the various spaces in the memory map area are listed in Table 3-5.
Table 3-5. Wait-States
AREAWAIT-STATES (CPU)COMMENTS
M0 and M1 SARAMs0-waitFixed
Peripheral Frame 00-wait
Peripheral Frame 10-wait (writes)Cycles can be extended by peripheral generated ready.
2-wait (reads)Back-to-back write operations to Peripheral Frame 1 registers will incur
Peripheral Frame 20-wait (writes)Fixed. Cycles cannot be extended by the peripheral.
2-wait (reads)
L0 SARAM0-wait data and programAssumes no CPU conflicts
L1 SARAM0-wait data and programAssumes no CPU conflicts
L2 SARAM0-wait data and programAssumes no CPU conflicts
L3 SARAM0-wait data and programAssumes no CPU conflicts
OTPProgrammableProgrammed via the Flash registers.
1-wait minimum1-wait is minimum number of wait states allowed.
FLASHProgrammableProgrammed via the Flash registers.
0-wait Paged min
1-wait Random min
Random ≥ Paged
FLASH Password16-wait fixedWait states of password locations are fixed.
The 2803x (C28x) family is a member of the TMS320C2000™ microcontroller (MCU) platform. The
C28x-based controllers have the same 32-bit fixed-point architecture as existing C28x MCUs. It is a very
efficient C/C++ engine, enabling users to develop not only their system control software in a high-level
language, but also enabling development of math algorithms using C/C++. The device is as efficient at
MCU math tasks as it is at 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 64-bit
processing capabilities enable the controller to handle higher numerical resolution problems efficiently.
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 device has an
8-level-deep protected pipeline with pipelined memory accesses. This pipelining enables it 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.3.2Control Law Accelerator (CLA)
The C28x control law accelerator is a single-precision (32-bit) floating-point unit that extends the
capabilities of the C28x CPU by adding parallel processing. The CLA is an independent processor with its
own bus structure, fetch mechanism, and pipeline. Eight individual CLA tasks, or routines, can be
specified. Each task is started by software or a peripheral such as the ADC, an ePWM, or CPU Timer 0.
The CLA executes one task at a time to completion. When a task completes the main CPU is notified by
an interrupt to the PIE and the CLA automatically begins the next highest-priority pending task. The CLA
can directly access the ADC Result registers and the ePWM+HRPWM registers. Dedicated message
RAMs provide a method to pass additional data between the main CPU and the CLA.
www.ti.com
3.3.3Memory Bus (Harvard Bus Architecture)
As with many MCU-type devices, multiple busses are used to move data between the memories and
peripherals and the CPU. The 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 prioritize memory accesses. Generally, the priority of memory bus
accesses can be summarized as follows:
Highest:Data Writes(Simultaneous data and program writes cannot occur on the
memory bus.)
Program Writes(Simultaneous data and program writes cannot occur on the
memory bus.)
Data Reads
Program Reads(Simultaneous program reads and fetches cannot occur on the
memory bus.)
Lowest:Fetches(Simultaneous program reads and fetches cannot occur on the
To enable migration of peripherals between various Texas Instruments (TI) MCU family of devices, the
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. Three versions of the peripheral bus are
supported. One version supports only 16-bit accesses (called peripheral frame 2). Another version
supports both 16- and 32-bit accesses (called peripheral frame 1).
3.3.5Real-Time JTAG and Analysis
The devices implement the standard IEEE 1149.1 JTAG
Additionally, the devices support real-time mode of operation allowing modification of the contents of
memory, peripheral, and register locations 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 device implements the real-time mode in
hardware within the CPU. This is a feature unique to the 28x family of devices, requiring no software
monitor. Additionally, special analysis hardware is provided that allows setting of hardware breakpoint or
data/address watch-points and generating various user-selectable break events when a match occurs.
These devices do not support boundary scan; however, IDCODE and BYPASS features are available if
the following considerations are taken into account. The IDCODE does not come by default. The user
needs to go through a sequence of SHIFT IR and SHIFT DR state of JTAG to get the IDCODE. For
BYPASS instruction, the first shifted DR value would be 1.
(1)
interface for in-circuit based debug.
3.3.6Flash
The F28035/34 devices contain 64K x 16 of embedded flash memory, segregated into eight 8K x 16
sectors. The F28033/32/31 devices contain 32K x 16 of embedded flash memory, segregated into eight
4K x 16 sectors. The F28030 device contains 16K x 16 of embedded flash memory, segregated into four
4K x 16 sectors. All 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. Addresses 0x3F 7FF0 – 0x3F 7FF5
are reserved for data variables and should not contain program code.
NOTE
The 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 TMS320x2803x Piccolo System Control and Interrupts Reference Guide (literature
number SPRUGL8).
(1) IEEE Standard 1149.1-1990 Standard Test Access Port and Boundary Scan Architecture
All 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.
3.3.8L0 SARAM, and L1, L2, and L3 DPSARAMs
The device contains up to 8K x 16 of single-access RAM. To ascertain the exact size for a given device,
see the device-specific memory map figures in Section 3.2. This block is mapped to both program and
data space. Block L0 is 2K in size and is dual mapped to both program and data space. Blocks L1 and L2
are both 1K in size and are shared with the CLA which can ultilize these blocks for its data space. Block
L3 is 4K (2K on the 28031 device) in size and is shared with the CLA which can ultilize this block for its
program space. DPSARAM refers to the dual-port configuration of these blocks.
3.3.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.
www.ti.com
Table 3-6. Boot Mode Selection
MODEGPIO37/TDOTRSTMODE
3110GetMode
2100Wait (see Section 3.3.10 for description)
1010SCI
0000Parallel IO
EMUxx1Emulation Boot
GPIO34/COMP2OUT/
COMP3OUT
3.3.9.1Emulation Boot
When the emulator is connected, the GPIO37/TDO pin cannot be used for boot mode selection. In this
case, the boot ROM detects that an emulator is connected and uses the contents of two reserved SARAM
locations in the PIE vector table to determine the boot mode. If the content of either location is invalid,
then the Wait boot option is used. All boot mode options can be accessed in emulation boot.
3.3.9.2GetMode
The default behavior of the GetMode option is to boot to flash. This behavior can be changed to another
boot option by programming two locations in the OTP. If the content of either OTP location is invalid, then
boot to flash is used. One of the following loaders can be specified: SCI, SPI, I2C, CAN, or OTP.
The 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 that matches the value stored in the password locations within the Flash.
In addition to the CSM, the emulation code security logic (ECSL) has been implemented to prevent
unauthorized users from stepping through secure code. Any code or data access to flash, user OTP, or L0
memory while the emulator is connected will trip the ECSL and break the emulation connection. To allow
emulation of secure code, while maintaining the CSM protection against secure memory reads, the user
must write the correct value into the lower 64 bits of the KEY register, which matches the value stored in
the lower 64 bits of the password locations within the flash. Note that dummy reads of all 128 bits of the
password in the flash must still be performed. If the lower 64 bits of the password locations are all ones
(unprogrammed), then the KEY value does not need to match.
When initially debugging a device with the password locations in flash programmed (i.e., secured), the
CPU will start running and may execute an instruction that performs an access to a protected ECSL area.
If this happens, the ECSL will trip and cause the emulator connection to be cut.
The solution is to use the Wait boot option. This will sit in a loop around a software breakpoint to allow an
emulator to be connected without tripping security. Piccolo devices do not support a hardware
wait-in-reset mode.
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.
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.
www.ti.com
3.3.11Peripheral Interrupt Expansion (PIE) Block
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 F2803x, 54 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.
The devices support three masked external interrupts (XINT1–XINT3). Each of the interrupts can be
selected for negative, positive, or both negative and positive edge triggering and can also be
enabled/disabled. These 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.
There are no dedicated pins for the external interrupts. XINT1, XINT2, and XINT3 interrupts can accept
inputs from GPIO0–GPIO31 pins.
3.3.13Internal Zero Pin Oscillators, Oscillator, and PLL
The device can be clocked by either of the two internal zero-pin oscillators, an external oscillator, or by a
crystal attached to the on-chip oscillator circuit. A PLL is provided supporting up to 12 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.3.14Watchdog
Each device contains two watchdogs: CPU-Watchdog that monitors the core and NMI-Watchdog that is a
missing clock-detect circuit. The user software must regularly reset the CPU-watchdog counter within a
certain time frame; otherwise, the CPU-watchdog generates a reset to the processor. The CPU-watchdog
can be disabled if necessary. The NMI-Watchdog engages only in case of a clock failure and can either
generate an interrupt or a device reset.
3.3.15Peripheral Clocking
The clocks to each individual peripheral can be enabled/disabled to reduce power consumption when a
peripheral is not in use. Additionally, the system clock to the serial ports (except I2C) can be scaled
relative to the CPU clock.
3.3.16Low-power Modes
The devices are full static CMOS devices. Three low-power modes are provided:
IDLE:Place CPU in 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:This mode basically shuts down the device and places it in the lowest possible power
consumption mode. If the internal zero-pin oscillators are used as the clock source,
the HALT mode turns them off, by default. To keep these oscillators from shutting
down, the INTOSCnHALTI bits in CLKCTL register may be used. The zero-pin
oscillators may thus be used to clock the CPU-watchdog in this mode. If the on-chip
crystal oscillator is used as the clock source, it is shut down in this mode. A reset or
an external signal (through a GPIO pin) or the CPU-watchdog can wake the device
from this mode.
The CPU clock (OSCCLK) and WDCLK should be from the same clock source before attempting to put
the device into HALT or STANDBY.
The device segregates peripherals into three sections. The mapping of peripherals is as follows:
PF0:PIE:PIE Interrupt Enable and Control Registers Plus PIE Vector Table
Flash:Flash Waitstate Registers
Timers:CPU-Timers 0, 1, 2 Registers
CSM:Code Security Module KEY Registers
ADC:ADC Result Registers
CLAControl Law Accelrator Registers and Message RAMs
PF1:GPIO:GPIO MUX Configuration and Control Registers
eCAN:Enhanced Control Area Network Configuration and Control Registers
LIN:Local Interconnect Network 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
Comparators:Comparator Modules
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 Configuration Registers
I2C:Inter-Integrated Circuit Module and Registers
XINT:External Interrupt 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.3.1932-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 0 is for general use and is connected to the PIE block. CPU-Timer 1 is also for general use
and can be connected to INT13 of the CPU. CPU-Timer 2 is reserved for DSP/BIOS. It is connected to
INT14 of the CPU. If DSP/BIOS is not being used, CPU-Timer 2 is available for general use.
CPU-Timer 2 can be clocked by any one of the following:
generation, adjustable dead-band generation for leading/trailing edges,
latched/cycle-by-cycle trip mechanism. Some of the PWM pins support the
HRPWM high resolution duty and period features. The type 1 module found on
2803x devices also supports increased dead-band resolution, enhanced SOC and
interrupt generation, and advanced triggering including trip functions based on
comparator outputs.
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. It has up to 13 single-ended channels pinned
out, depending on the device. It contains two sample-and-hold units for
simultaneous sampling.
Comparator:Each comparator block consists of one analog comparator along with an internal
10-bit reference for supplying one input of the comparator.
3.3.21Serial Port Peripherals
The devices support the following serial communication peripherals:
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 MCU 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. The SPI contains a 4-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. The SCI contains a 4-level receive and transmit FIFO
for reducing interrupt servicing overhead.
I2C:The inter-integrated circuit (I2C) module provides an interface between a MCU
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 MCU through the I2C module. The I2C contains a 4-level receive and
transmit FIFO for reducing interrupt servicing overhead.
eCAN:This is the enhanced version of the CAN peripheral. It supports 32 mailboxes, time
stamping of messages, and is CAN 2.0B-compliant.
LIN:LIN 1.3 or 2.0 compatible peripheral. Can also be configured as additional SCI
(0 wait read only)
CPU–TIMER0/1/2 Registers0x00 0C00 – 0x00 0C3F64No
PIE Registers0x00 0CE0 – 0x00 0CFF32No
PIE Vector Table0x00 0D00 – 0x00 0DFF256No
CLA Registers0x00 1400 – 0x00 147F128Yes
CLA to CPU Message RAM (CPU writes ignored)0x00 1480 – 0x00 14FF128NA
CPU to CLA Message RAM (CLA writes ignored)0x00 1500 – 0x00 157F128NA
(1) Registers in Frame 0 support 16-bit and 32-bit accesses.
(2) 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.
(3) The Flash Registers are also protected by the Code Security Module (CSM).