Real time DSP using the TI C5515
Duration: 5 Days
This is a course for embedded systems engineers who wish to extend their skillset to include DSP engineering skills, or whose DSP skills are "somewhat rusty" and who need to get up to speed for an upcoming project. It is also suitable for experienced embedded systems engineers who need to get up to speed with DSP programming using the TI fixed point DSP processor architecture.
Real-time digital signal processing (DSP) using general-purpose DSP processors is an exciting and challenging area to work in. It promises an effective way to design, experiment, and implement a variety of signal processing algorithms for real-world applications. With DSP being more and more widely used in various applications such as medical, industrial, security and telecommunications the demand for high-performance digital signal processors has expanded rapidly over the last decade.
Increasingly traditional analog systems are being replaced with digital systems.
The fast growth of DSP applications is not a surprise when considering the commercial advantages of DSP
in terms of potentially fast time to market, flexibility for upgrades to new technologies and standards,
and low design cost offered by various DSP devices. The rising demand from the digital handheld devices in
the consumer market to the digital networks and communication infrastructure coupled with
the emerging internet applications are the driving forces for DSP applications.
Many industrial companies are currently engaged in projects involving real-time DSP. Engineers are required to know, not onlyt the theory of DSP, but equally importantly, real-time DSP system design and implementation techniques.
This course is designed to impart practical knowledge and expertise for implementing real-time DSP applications using TI's C5515 processor. [The class will use the eZdsp USB Stick]. The course will follow a hands-on approach to teaching real-time DSP principles, system design and implementation that are oriented towards real-world applications. The C55x processor is designed for low power consumption, and high code density. Its dual multiply-accumulate (MAC) architecture provides twice the cycle efficiency in computing vector products. Its scalable instruction length significantly improves the code density. Furthermore, the C55x is source code compatible with C54x, which greatly reduces the migration cost from the C54x based systems to C55x based systems.
The course will cover the architecture and principles underlying fixed-point DSP Processors and their programming and how they are used in the programming of TI's DSP processors. Code development will use TI's software development tool CCS (Code Composer Studio). The course will also consider real time aspects underlying the implementation of DSP based systems
- Introduction to important DSP algorithms and their implementation using SCILAB.
- Architecture, Computational Aspects and Historical Development of DSP Processors
- Evolution of DSP Processors
- Basic architectural features of a generic DSP processor.
- TMS320C55x Architecture
- TMS320C55x CPU
- Memory Interface Unit
- Instruction Buffer Unit (I Unit)
- Instruction Buffer Queue
- Instruction Decoder
- Program Flow Unit (P Unit)
- Program-Address Generation and Program-Control Logic
- P-Unit Registers
- Address-Data Flow Unit (A Unit)
- Data Address Generation Unit
- A-Unit Arithmetic Logic Unit
- A-Unit Regitsers
- Data Computation Unit (D Unit)
- D-Unit Arithmetic Logic Unit
- Two Multiply and Accumulate Units
- D-Unit Registers
- TMS320C55x Buses
- TMS320C55x Memory Map
- Code Composer Studio and C Programming for the C55x
- Code Composer Studio (CCS) Development
- Developing a Simple Program
- Debugging a project using CCS
- Additional features of CCS
- Data formats and computational accuracy in DSP implementation.
- Fixed point data format and arithmetic
- Fixed point C programming
- DSP Algorithms and their Fixed Point C Implementation
- The C55x Instruction Set
- TMS320C55x Addressing Modes
- TMS320C55x Pipeline and Parallelism
- TMS320C55x Instruction Set
- Arithemetic Instructions
- Logic and Bits Manipulation Instructions
- Move Instructions
- Program Flow Control Instructions
- Mixed C and Assembly Language Programming (Interfacing C with assembly code)
- Using TMS320C55x DSP Library
- Practical Exercises - Labs
- Quantization of sinusoidal and speech signals
- Overflow and saturation arithmetic
- Quantization of coefficients
- Twiddle factor Generation
- Complex Data Operation
- Implementation of DFT
- Implementation of Block FIR filter
- Implementation of Symmetric FIR filter
- Implementation of FIR filter using Dual-MAC
- Implementation of IIR filter using floating-point C, fixed-point C using intrinsic functions and ASM programming.
- Radix-2 Complex FFT (using C program)
- Radix-2 Complex FFT using Assembly Language
- FFT and IFFT
- Fast Convolution
- Real Time DSP implementation using C5515 eZdsp USB Stick
- Interfacing with the on-board Audio Codec
- Interfacing with the on-board LED
- Interfacing with the on-board dip switches
- Interfacing with the on-board NOR flash
- Interfacing with the on-board SD card
- I2S interface between C5515 DSP processor and Audio Codec