DSP Project - TMS 320 Family

Part of my thesis (University of Stuttgart/Germany) was to design for and implement filters on the Texas Instruments TMS320 DSP. I was lucky obtaining a prototype chip from TI, the TMX32010. Having a prototype chip instead of the actual production version added some hurdles to the project (some instructions did not work as expected/described).

The exact task was to develop filters for digital tone control similar to what analogue stereo amplifiers have (bass/treble/volume knobs). Here, the control of the DSP was performed by a separate Z80-board, which updated the DSP memory with coefficients according to user keyboard input.

I must apologise for two things about the material presented below. First, the 'scan' quality of the paper document is not terrific. Second, the content is written in German language as was  required then. However, the diagrams should be understood universally. I have added comments to the pages below on what is being discussed on them.

Page 8
Digital Tone Control Filters: Two solutions are discussed with their impact on signal levels on the 16-bit fixed point digital signal path.

Page  9
Array of curves for the frequency response of method (1).
Method (2) and its array of curves for the frequency response.
Structure of the implemented filter chain including correction factor K.

Page 10
Discussion of advantages of method (2): better signal/noise ratio, less loss of signal quality.
Design of the filters and their frequency responses.

Page 11
Transfer functions and coefficients of the individual filters.

Page 12
Table of coefficients of the digital filters derived from the analog filter coefficients.
The amplitude correction 'K' needs to be determined according to the combinations of bass/treble attenuation/amplification.

Page 13
Calculation of 'K'. Comments regarding use of the external DSP control system (using a Z80-board). The Z80-board rewrites the filter coefficients and then resets the DSP. This did not lead to any audible click sounds as the interruption was very short and the filters' node values were all reset too. It was shown that the Z80-board could rewrite 100 words in the DSP memory without generating any audible clicks.

Page 14
Page 15
Page 16
Assembler listing of the implementation on the TMS32010. I also wrote the cross assembler running on CP/M-80.

Page 30
Example of a realisation of 2nd order digital IIR filters for the TMS32010.
Discussion of whether to use subroutines or inline code and its effect on the maximum sample frequency.
Discussion on the data layout for using the the automatic z^-1 operation of the TMS32010.

Page 31
Data layout and inline code for a 2nd order IIR filter.
The example shows that the DSP is able to perform some operations in parallel.
The execution time of the subroutine, at the DSP's maximum clock frequency, is 2.6us.

Page 32
Subroutine to perform a 2nd order IIR filter employing the indirect addressing mode of the TMS32010.
Example of how to invoke the subroutine. The inline code saves 1.4us compared to using the subroutine.