SPRACW5A April 2021 – December 2021 F29H850TU , F29H859TU-Q1 , TMS320F2800132 , TMS320F2800133 , TMS320F2800135 , TMS320F2800137 , TMS320F280021 , TMS320F280021-Q1 , TMS320F280023 , TMS320F280023-Q1 , TMS320F280023C , TMS320F280025 , TMS320F280025-Q1 , TMS320F280025C , TMS320F280025C-Q1 , TMS320F280033 , TMS320F280034 , TMS320F280034-Q1 , TMS320F280036-Q1 , TMS320F280036C-Q1 , TMS320F280037 , TMS320F280037-Q1 , TMS320F280037C , TMS320F280037C-Q1 , TMS320F280038-Q1 , TMS320F280038C-Q1 , TMS320F280039 , TMS320F280039-Q1 , TMS320F280039C , TMS320F280039C-Q1 , TMS320F280040-Q1 , TMS320F280040C-Q1 , TMS320F280041 , TMS320F280041-Q1 , TMS320F280041C , TMS320F280041C-Q1 , TMS320F280045 , TMS320F280048-Q1 , TMS320F280048C-Q1 , TMS320F280049 , TMS320F280049-Q1 , TMS320F280049C , TMS320F280049C-Q1 , TMS320F28075 , TMS320F28075-Q1 , TMS320F28076 , TMS320F28374D , TMS320F28374S , TMS320F28375D , TMS320F28375S , TMS320F28375S-Q1 , TMS320F28376D , TMS320F28376S , TMS320F28377D , TMS320F28377D-EP , TMS320F28377D-Q1 , TMS320F28377S , TMS320F28377S-Q1 , TMS320F28378D , TMS320F28378S , TMS320F28379D , TMS320F28379D-Q1 , TMS320F28379S , TMS320F28384D , TMS320F28384D-Q1 , TMS320F28384S , TMS320F28384S-Q1 , TMS320F28386D , TMS320F28386D-Q1 , TMS320F28386S , TMS320F28386S-Q1 , TMS320F28388D , TMS320F28388S , TMS320F28P650DH , TMS320F28P650DK , TMS320F28P650SH , TMS320F28P650SK , TMS320F28P659DH-Q1 , TMS320F28P659DK-Q1 , TMS320F28P659SH-Q1
C2000 and Code Composer Studio are trademarks of Texas Instruments.
All trademarks are the property of their respective owners.
A real-time benchmark gives a holistic view of signal chain performance. As illustrated in Figure 1-1, this includes interrupt response time, context save overhead, peripheral reads and writes along with control algorithms, all of which together compose a real-time control operation.
The C2000 architecture has unique capabilities that make it a microcontroller optimized for real-time control by minimizing the sample to output time. The benchmarking in this document demonstrates these C2000 features.
The ACI Motor Control Benchmark simulates the sensorless AC induction motor control application. The application performs all the typical operations: analog-to-digital converter (ADC) reads for sensing phase currents, transform blocks that operate on the sensed current and PWM writes to control phase voltages. No special external hardware is needed to provide stimulus as the application has a block of code that models the behavior of an induction motor. To simulate closed loop behavior, the expected current from the motor model is fed into the ADC via the DAC modules. A single ADC is configured to sense the phase A and phase B currents via two channels sequentially. Phase C current is not sensed as it can be derived from phase A and phase B currents. Three PWM writes simulate control of duty cycle of the three phase A, B and C voltages. Figure 2-1 represents the execution blocks in the control loop interrupt routine of the benchmark application. The control loop interrupt is triggered at a rate of 2 KHz and 1024 iterations of the control loop interrupt routine are executed before the application terminates.
In this block diagram, the dark gray blocks represent the peripheral accesses, the light gray blocks represent the control algorithms and the white blocks represent the code blocks that are not part of a real ACI motor control application but are used in the benchmark for simulating the behavior of the motor.
The software benchmark example is available in C2000Ware.
C28x CPU benchmark available in C2000Ware version 3.04.00.00 onwards
CLA accelerator benchmark available in C2000Ware version 4.00.00.00 onwards.
The example can be found at the following location within the C2000Ware installation.
<C2000Ware>\examples\demos\benchmark\aci_motor_benchmark
The top level folders are:
The source code is located in the 'common' and 'device_support' folders. The 'common' folder contains device independent code such as transform algorithms, motor modeling code, and so forth. The 'device_support' folder contains code that is specific to the particular device such as device configuration, peripheral read/write. and so forth within sub folders named for that device.
The application is supported in Code Composer Studio™ (CCS) for TMS320F28004x and TMS320F2837x devices and can be executed on TMS320F28004x Launchpad as well as TMS320F2837x Launchpad. The respective CCS projects are located in the sub-folder 'ccs' within the 'f28004x' and 'f2837x' top level folders.
The application has multiple implementation variants; one variant uses the math engine Trigonometric Math Unit (TMU) for performing trigonometric calculations needed by the Park, Inverse Park and Flux Estimator control algorithms, the other variant uses a software library called FastRTS to perform the trigonometric calculations. The FastRTS library is included in C2000Ware, the library and documentation can be found at <C2000Ware>\libraries\math\FPUfastRTS\c28\. The goal with these two variants is to show the performance boost the math engine TMU can provide as compared to a software library based implementation.
Another set of implementation variants involve the CLA. One variant is with the C28x CPU offloading part of the compute to CLA and another variant is with the benchmarking control code executing entirely from CLA only The goal of these two variants is to show how CLA can be used to aid in meeting real-time goals.