Getting Start with TMS320F28335 on windows host

Introduction of C2000

The overview of C2000 series MCU can be found here and the PDF version brochure can be downloaded from here. C2000 is categorized as real-time control MCUs which are widely used in industrial, especially for motor drive and power supply applications. Typical real-time application has hard time constraints, which means the task must be finished in a specific duration. When the task spend more time then the specific duration, it will be treated as failed. For example, in the control design of a power converter, the duty cycle of the gate signals for active power devices must be calculated before the next triangular wave comes. Please be noted, this chapter does not try to give a thorough introduction of C2000, it only gives a brief description and let the readers have an overview of the C2000 MCUs.

C2000 has four families, they are:

  • C24x - 16bits series
  • F280x/1x - 32bits fixed-point series
  • Delfino series
  • Piccolo series

C24x series is the first product line of C2000 series. It has a 16 bits CPU, which is not that powerful from today's view. F280x/1x series is a update of C24x series with a 32 bits CPU, which enhance the computational capability of C2000. The up-to-date product line is Delfino and Piccolo series. Delfino series has a 32 bits CPU plus a floating point unit (FPU) and it supports single float point calculation. Users do not need to bother about float-point calculation which they have to worried about by using a fixed-point CPU. Delfino also comes with very high peak MMACS (million multiply accumulates per second) which can be up to 300 (equal to frequency of 300 MHz). Piccolo is more like targeted at a low-end market. The peak MMACS is lower (up to 120) and some models have a CLA (Control low accelerator) which could be treated as a core or a CPU that can operate without interrupting the main CPU to handle those real-time tasks. Now the latest Delfino series also comes with CLA which can benefit the firmware design.

Please note that there is another family (F28M3x series) with a C2000 core and arm core in a single chip that is not covered in this introduction.

Normally C2000 is used without OS (operating system) which equals to bare-metal of arm cores. Since it has limited resources, typically only a few hundreds KB, which makes it not very suitable for implementing a modern OS. Additionally, the task that is supposed to run on a C2000 MCU is not that complex. However, OS is still able to run in a C2000 MCU, like TI-RTOS. This OS support will not be covered in this book since it is treated as an advanced topic.

TMS320F28335, which will be used as an example in this book, is under Delfino series. The features of this chip can be found here:

Features:

  • High-Performance Static CMOS Technology
    • Up to 150 MHz (6.67-ns Cycle Time)
    • 1.9-V/1.8-V Core, 3.3-V I/O Design
  • High-Performance 32-Bit CPU (TMS320C28x)
    • IEEE-754 Single-Precision Floating-Point Unit (FPU) (F2833x only)
    • 16 x 16 and 32 x 32 MAC Operations
    • 16 x 16 Dual MAC
    • Harvard Bus Architecture
    • Fast Interrupt Response and Processing
    • Unified Memory Programming Model
    • Code-Efficient (in C/C++ and Assembly)
  • Six-Channel DMA Controller (for ADC, McBSP, ePWM, XINTF, and SARAM)
  • 16-Bit or 32-Bit External Interface (XINTF)
    • Over 2M x 16 Address Reach
  • On-Chip Memory
    • F28335, F28235: 256K x 16 Flash, 34K x 16 SARAM
    • F28334, F28234: 128K x 16 Flash, 34K x 16 SARAM
    • F28332, F28232: 64K x 16 Flash, 26K x 16 SARAM
  • 1K x 16 OTP ROM
  • Boot ROM (8K x 16)
    • With Software Boot Modes (via SCI, SPI, CAN, I2C, McBSP, XINTF, and Parallel I/O)
    • Standard Math Tables
  • Clock and System Control
    • Dynamic PLL Ratio Changes Supported
    • On-Chip Oscillator
    • Watchdog Timer Module
  • GPIO0 to GPIO63 Pins Can Be Connected to One of the Eight External Core Interrupts
  • Peripheral Interrupt Expansion (PIE) Block That Supports All 58 Peripheral Interrupts
  • 128-Bit Security Key/Lock
    • Protects Flash/OTP/RAM Blocks
    • Prevents Firmware Reverse Engineering
  • Enhanced Control Peripherals
    • Up to 18 PWM Outputs
    • Up to 6 HRPWM Outputs With 150 ps MEP Resolution
    • Up to 6 Event Capture Inputs
    • Up to 2 Quadrature Encoder Interfaces
    • Up to 8 32-Bit Timers (6 for eCAPs and 2 for eQEPs)
    • Up to 9 16-Bit Timers (6 for ePWMs and 3 XINTCTRs)
  • Three 32-Bit CPU Timers
  • Serial Port Peripherals
    • Up to 2 CAN Modules
    • Up to 3 SCI (UART) Modules
    • Up to 2 McBSP Modules (Configurable as SPI)
    • One SPI Module
    • One Inter-Integrated-Circuit (I2C) Bus
  • 12-Bit ADC, 16 Channels
    • 80-ns Conversion Rate
    • 2 x 8 Channel Input Multiplexer
    • Two Sample-and-Hold
    • Single/Simultaneous Conversions
    • Internal or External Reference
  • Up to 88 Individually Programmable, Multiplexed GPIO Pins With Input Filtering
  • JTAG Boundary Scan Support - (IEEE Standard 1149.1-1990 Standard Test Access Port and Boundary Scan Architecture)
  • 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 (RTOS)
    • Digital Motor Control and Digital Power Software Libraries
  • Low-Power Modes and Power Savings
    • IDLE, STANDBY, HALT Modes Supported
    • Disable Individual Peripheral Clocks
  • Endianness: Little Endian
  • Package Options:
    • Lead-free, Green Packaging
    • Low-Profile Quad Flatpack (PGF, PTP)
    • MicroStar BGA (ZHH)
    • Plastic BGA (ZJZ)
  • Temperature Options:
    • A: –40°C to 85°C (PGF, ZHH, ZJZ)
    • S: –40°C to 125°C (PTP, ZJZ)
    • Q: –40°C to 125°C (PTP, ZJZ)