Texas Instruments TMS320

Texas Instruments TMS320 is a blanket name for a series of digital signal processors (DSPs) from Texas Instruments. It was introduced on April 8, 1983 through the TMS32010 processor, which was then the fastest DSP on the market.

The processor is available in many different variants, some with fixed-point arithmetic and some with floating point arithmetic. The floating point DSP TMS320C3x, which exploits delayed branch logic, has as many as three delay slots.

The flexibility of this line of processors has led to it being used not merely as a co-processor for digital signal processing but also as a main CPU. Newer implementations support standard IEEE JTAG control for boundary scan and/or in-circuit debugging.

The original TMS32010 and its subsequent variants is an example of a CPU with a Modified Harvard architecture, which features separate address spaces for instruction and data memory but the ability to read data values from instruction memory. The TMS32010 featured a fast multiply-and-accumulate useful in both DSP applications as well as transformations used in computer graphics. The graphics controller card for the Apollo Computer DN570 Workstation, released in 1985, was based on the TMS32010 and could transform 20,000 2D vectors/second.[clarification needed]



The TMS320 architecture has been around for a while so a number of product variants have developed. The product codes used by Texas Instruments after the first TMS32010 processor have involved a very popular series of processor named TMS320Cabcd where a is the main series, b the generation and cd is some custom number for a minor sub-variant.

For this reason people working with DSPs often abbreviate a processor as "C5x" when the actual name is something like TMS320C5510, since all products obviously have the name "TMS320" and all processors with "C5" in the name are code compatible and share the same basic features. Sometimes you will even hear people talking about "C55x" and similar subgroupings, since processors in the same series and same generation are even more similar.

Outside the main series

C2000 Series

  • TMS320 C2000 series consists of 2 families: C240x, an older 16-bit line that is no longer recommended for new development and the C28xx 32-bit line. The newer C28xx family consists of a Delfino high-performance floating point line and a low-cost Piccolo line. The C2000 series is notable for its high performance set of on-chip control peripherals including PWM, ADC, quadrature encoder modules, and capture modules. The series also contains support for I2C, SPI, serial (SCI), CAN, watchdog, McBSP, external memory interface and GPIO. Due to features like PWM waveform synchronization with the ADC unit, the C2000 line is well suited to many real-time control applications. The C2000 family commonly used for digital motor control and power conversion. A line of low cost kits for digital power, renewable energy and digital motor control allow experimentation with the MCU.

C5000 Series

  • TMS320C54x 16-bit fixed point DSP, 5 stage pipeline with in-order-execution of opcodes, parallel load/store on arithmetic operations, multiply accumulate and other DSP enhancements. Internal multi-port memory. no cache unit.
    • A popular choice for 2G Software defined cellphone radios, particularly GSM, circa late 1990's when many Nokia and Ericsson cellphones made use of the C54x.
    • At the time, desire to improve the user interface of cellphones led to the adoption of ARM7 as a general purpose processor for user interface and control, off-loading this function from the DSP. This ultimately led to the creation of a dual core ARM7+C54x DSP, which later evolved into the OMAP product line.
  • TMS320C55x generation - fixed point, runs C54x code but adds more internal parallelism (another ALU, dual MAC, more memory bandwidth) and registers, while supporting much lower power operation
    • Today, most C55x DSPs are sold as discrete chips
    • OMAP1 chips combine an ARM9 (ARMv5TEJ) with a C55x series DSP
    • OMAP2420 chips combine an ARM11 (ARMv6) with a C55x series DSP

C6000 Series

  • TMS320 C6000 series, or TMS320C6x: VLIW based DSP's.
  • Other parts with C6000 series DSPs include
    • DaVinci chips include one or both of an ARM9 and a C64x+ fixed point DSP
    • OMAP-L13x chips include an ARM9 (ARMv5TEJ) and a C67x floating point DSP
    • OMAP243x chips combine an ARM11 (ARMv6) with a C64x series DSP
    • OMAP3 and OMAP4 chips include an ARM Cortex-A8 or A9 (ARMv7) and frequently a fixed point C64x+ DSP

DaVinci Series

  • The DaVinci series started with systems-on-a-chip using an embedded C6000 Series (C64x+) DSP, ARM9 application processors, and Digital Media peripherals. There are variants without ARMs, and without DSPs. Their marketing focuses on their video processing capabilities. Original chips supported NTSC and PAL, while newer ones support HDTV.

OMAP Variants

  • OMAP variants, these also have an ARM processor in the same chip, see main article on Texas Instruments OMAP. (There are also OMAP processors with other secondary processors, so these are not necessarily DSPs.)

DA Variants

  • DA variants (target "Digital audio")
    • DA25x is an ARM processor and a C55x core. It has some on-chip peripherals like a USB slave controller and security features. Documentation of this chip is only available after signing a Texas Instruments NDA. These variants are used exclusively in the Creative ZEN and Dell Digital Jukebox MP3 players, as the primary CPU and signal processor for all processing of MP3 data streams.
    • TMS320DA7xx Aureus chips are built around C67x+ DSPs
    • DA83x is another Aureus, essentially the same as the OMAP-L137 ... which derives from non-video DaVinci technologies. It includes a C67x floating point DSP and a relatively fast ARM9 core. [1]

about this platform The TMS320DA828 is much the same, but removes some I/O interfaces.

    • DA610/601 is a processor with a C67x core. It has on chip peripherals needed to connect to audio codecs for a 5.1 or 7.1 system. This chip is used in the YAMAHA high end receivers : RX-V1400, RX-V2400, RX-V1600, RX-V2600, RX-V2500. [2]

DM Variants


The TMS320 series can be programmed using C, C++, and/or assembly language. Most work on the TMS320 processors is done using Texas Instruments proprietary toolchain and their integrated development environment Code Composer Studio, which includes a mini operating system called DSP/BIOS. Additionally, a department at the Chemnitz University of Technology has developed preliminary support for the TMS320C6x series in the GNU Compiler Collection.[3]

In November 2007 TI released part of its toolchain as freeware for non-commercial users, offering the bare compiler, assembler, optimizer and linker under a proprietary license.[4][5] However, neither the IDE nor a debugger were included, so for debugging and JTAG access to the DSPs, users still need to purchase the complete toolchain.


  1. this LinuxDevices article includes more information
  2. this http://members.cox.net/alexhardware/IC_database1.htm site includes more information
  3. Jan Parthey and Robert Baumgartl, Porting GCC to the TMS320-C6000 DSP Architecture, Appeared in the Proceedings of GSPx’04, Santa Clara, September 2004, http://rtg.informatik.tu-chemnitz.de/docs/pubs/gspx04.pdf
  4. TI frees its DSP toolchain, http://www.linuxdevices.com/news/NS4338556106.html
  5. Free DSP Compiler Available,http://open.neurostechnology.com/node/1020