52
DSP HOW-TO GUIDE EC2306 DIGITAL SIGNAL PROCESSING LAB MANUAL FOR TMS320C6745 DSP

Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Embed Size (px)

DESCRIPTION

fhfyhghjg

Citation preview

Page 1: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

DSP HOW-TO GUIDE

EC2306 DIGITAL SIGNAL

PROCESSING LAB MANUAL FOR

TMS320C6745 DSP

Page 2: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

Contents at a Glance

EC2306 DIGITAL SIGNAL PROCESSING LAB SYLLABUS ........ 3

1. STUDY OF VARIOUS ADDRESSING MODES OF DSP

USING SIMPLE PROGRAMMING EXAMPLES ...................... 4

2. CONVOLUTION ............................................................ 9

a. LINEAR CONVOLUTION ................................................. 9

b. CIRCULAR CONVOLUTION .......................................... 15

3. SAMPLING OF INPUT AND DISPLAY ............................ 23

4. WAVEFORM GENERATION ......................................... 29

a. SINE WAVEFORM GENERATION .................................. 29

5. IMPLEMENTATION OF FIR FILTER ............................... 36

a. FIR LOW PASS FILTER ................................................. 36

b. FIR HIGH PASS FILTER ................................................. 43

Page 3: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

EC2306 DIGITAL SIGNAL PROCESSING LAB SYLLABUS

EC2306 DIGITAL SIGNAL PROCESSING LAB L T P C 0 0 3 2

USING TMS320C5X/ TMS320C67XX/ ADSP218X/219X/

BS531/532/561

1. Study of various addressing modes of DSP using simple

programming examples

2. Implementation of Linear and Circular Convolution

3. Sampling of input signal and display

4. Waveform generation

5. Implementation of FIR filter

USING MATLAB

1. Generation of Signals

2. Linear and circular convolution of two sequences

3. Sampling and effect of aliasing

4. Design of FIR filters

5. Design of IIR filters

6. Calculation of FFT of a signal

7. Decimation by polyphase decomposition.

TOTAL= 45 PERIODS

Page 4: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

1. STUDY OF VARIOUS ADDRESSING MODES OF DSP

USING SIMPLE PROGRAMMING EXAMPLES

Aim

To Study the various addressing mode of TMS320C6745 DSP

processor.

Addressing Modes

The addressing modes on the DSP are linear, circular using

BK0, and circular using BK1. The addressing mode is specified by

the addressing mode register (AMR).

All registers can perform linear addressing. Only eight

registers can perform circular addressing: A4-A7 are used by the

.D1 unit, and B4-B7 are used by the .D2 unit. No other units can

perform circular addressing. LDB(U)/LDH(U)/LDW, STB/STH/STW,

LDNDW, LDNW, STNDW, STNW, LDDW, STDW,

ADDAB/ADDAH/ADDAW/ADDAD, and SUBAB/SUBAH/SUBAW

instructions all use AMR to determine what type of address

calculations are performed for these registers. There is no SUBAD

instruction.

Page 5: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

Addressing Mode Register (AMR)

For each of the eight registers (A4-A7, B4-B7) that can

perform linear or circular addressing, the addressing mode

register (AMR) specifies the addressing mode. A 2-bit field for

each register selects the address modification mode: linear (the

default) or circular mode. With circular addressing, the field also

specifies which BK (block size) field to use for a circular buffer. The

mode select & block size fields are choose by writing values to

AMR. The register details about AMR is availble at TMS320C674x

DSP CPU and Instruction Set Reference Guide.

Linear Addressing Mode

LD and ST Instructions

For load and store instructions, linear mode simply shifts

the offsetR/cst operand to the left by 3, 2, 1, or 0 for doubleword,

word, halfword, or byte access, respectively; and then performs

an add or a subtract to baseR (depending on the operation

specified). The LDNDW and STNDW instructions also support

nonscaled offsets. In nonscaled mode, the offsetR/cst is not

shifted before adding or subtracting from the baseR.

Page 6: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

For the preincrement, predecrement, positive offset, and negative

offset address generation options, the result of the calculation is

the address to be accessed in memory. For postincrement or

postdecrement addressing, the value of baseR before the addition

or subtraction is the address to be accessed from memory.

ADDA and SUBA Instructions

For integer addition and subtraction instructions, linear

mode simply shifts the src1/cst operand to the left by 3, 2, 1, or 0

for doubleword, word, halfword, or byte data sizes, respectively,

and then performs the add or subtract specified.

Circular Addressing Mode

The BK0 and BK1 fields in AMR specify the block sizes for circular

addressing

LD and ST Instructions

As with linear address arithmetic, offsetR/cst is shifted

left by 3, 2, 1, or 0 according to the data size, and is then added to

or subtracted from baseR to produce the final address. Circular

addressing modifies this slightly by only allowing bits N through 0

of the result to be updated, leaving bits 31 through N + 1

unchanged after address arithmetic.

Page 7: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

The resulting address is bounded to 2(N + 1) range, regardless of

the size of the offsetR/cst.

The circular buffer size in AMR is not scaled; for example, a block-

size of 8 is 8 bytes, not 8 times the data size (byte, halfword,

word). So, to perform circular addressing on an array of 8 words, a

size of 32 should be specified, or N = 4. Example 3-4 shows an

LDW performed with register A4 in circular mode and BK0 = 4, so

the buffer size is 32 bytes, 16 halfwords, or 8 words. The value in

AMR for this example is 0004 0001h

ADDA and SUBA Instructions

As with linear address arithmetic, offsetR/cst is shifted

left by 3, 2, 1, or 0 according to the data size, and is then added to

or subtracted from baseR to produce the final address. Circular

addressing modifies this slightly by only allowing bits N through 0

of the result to be updated, leaving bits 31 through N + 1

Page 8: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

unchanged after address arithmetic. The resulting address is

bounded to 2(N + 1) range, regardless of the size of the

offsetR/cst.

The circular buffer size in AMR is not scaled; for example, a block

size of 8 is 8 bytes, not 8 times the data size (byte, halfword,

word). So, to perform circular addressing on an array of 8 words, a

size of 32 should be specified, or N = 4.

Example shows an ADDAH performed with register A4 in circular

mode and BK0 = 4, so the buffer size is 32 bytes, 16 halfwords, or

8 words. The value in AMR for this example is 0004 0001h.

Result

Thus, the various addressing mode of DSP processor TMS320C6745 was studied.

Page 9: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

2. CONVOLUTION

a. LINEAR CONVOLUTION

Aim

To perform the Linear Convolution of two given discrete

sequence in TMS320C6745 KIT.

Requirements CCS v4 TMS320C6745 KIT USB Cable 5V Adapter Theory

Convolution is a formal mathematical operation, just as

multiplication, addition, and integration. Addition takes two

numbers and produces a third number, while convolution takes

two signals and produces a third signal. Convolution is used in the

mathematics of many fields, such as probability and statistics. In

linear systems, convolution is used to describe the relationship

between three signals of interest: the input signal, the impulse

response, and the output signal.

Page 10: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

If the input and impulse response of a system are x[n] and h[n] respectively, the convolution is given by the expression,

x[n] * h[n] = ε x[k] h[n-k]

Where k ranges between -∞ and ∞ If,

x(n) is a M- point sequence h(n) is a N – point sequence then, y(n) is a (M+N-1) – point sequence.

In this equation, x(k), h(n-k) and y(n) represent the input to and output from the system at time n. Here we could see that one of the inputs is shifted in time by a value every time it is multiplied with the other input signal. Linear Convolution is quite often used as a method of implementing filters of various types. Procedure

1. Open Code Composer Studio v4. 2. In Workspace Launcher. a. BROWSE Select the project location and make one new

folder, MAKE NEW FOLDER Type the Workspace name, OK OK.

3. FILE NEW CCS PROJECT a. Project name: Type your project name. b. Tick use default location. NEXT

Page 11: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

c. Project type: C6000. d. Tick Debug and Release. NEXT NEXT. e. Output type: Executable. f. Device Variant: generic C67XX Device. g. Device Endianness : little h. Code Generation Tools: TI v6.1.12. i. Run time support library: automatic. j. Target content: none. FINISH

4. FILE NEW SOURCE FILE a. Source file: Type your projectname.c(.c extension is must). b. Type the program. c. FILE SAVE.

5. Paste the following board library files in workspace location. a. Common folder (contains header files) b. Gel folder (contains gel file) c. Library folder(contains library files)

6. Paste the Linker file in the project location.(linker file is

available in cd) Note: Those folders and linker file are availble at cd.

7. PROJECT PROPERTIES C/C++ BUILD BASIC OPTION a. Target processor version(--silicon version, -mv) : 6400+ OK.

Page 12: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

b. IN C/C++ BUILD, INCLUDE OPTIONS (Add dir to #include search path(--include_path,-I)) select this add icon and add the following three path by indivdually "${Diag}../../common/header" "${XDAIS_CG_ROOT}/packages/ti/xdais" "${C6000_CSL_CG_ROOT}/include"

8. FILE NEW TARGET CONFIGURATION FILE a. file name: projectname. ccxml (.ccxml extension is must) b. Connection: Texas Instrument XDS100 v1 USB Emulator. c. Device: TMS320C6745. SAVE TARTGET CONFIGURATION C674X_0 BROWSE, browse the workspace location, open the gel folder and select the GEL file. OPEN SAVE.

9. In C/C++ Project window, Right click the project REBUILD PROJECT.

10. Connections : a. Connect the usb cable, PC to KIT. b. Connect the 5v adapter. c. Power on the kit.

11. TARGET DEBUG ACTIVE PROJECT. 12. VIEW MEMORY. 13. In right side, memory window will open. Type the adrress and

give the input at particular location.

Page 13: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

Give the input as follow: X(n) h(n) 0xC0001000 – 00000001 0xC0001030 – 00000001 0xC0001004 – 00000001 0xC0001034 – 00000001 0xC0001008 – 00000001 0xC0001038 – 00000001 0xC000100C – 00000001 0xC000103C – 00000001

14. TARGET RUN. 15. TARGET HALT.

See the Output at Particular location: Example :

0xC0001050 – 00000001 0xC0001054 – 00000002 0xC0001058 - 00000003 0xC000105C - 00000004 0xC0001060 - 00000003 0xC0001064 - 00000002 0xC0001068 – 00000001

Program #include<stdio.h> #define xn 4 #define hn 4

Page 14: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

void main() { int *x,*h,*y,i,n,k; x = (int *)0xc0001000; h = (int *)0xc0001030; y = (int *)0xc0001050;

for(i=0;i<(xn+hn-1);i++) { y[i]=0; x[xn+i]=0; h[hn+i]=0;

} for(n=0;n<(xn+hn-1);n++) { for(k=0;k<=n;k++) y[n] = (y[n]) + ((x[k])*(h[n-k])); } while(1); }

Page 15: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

Result

Thus, the Linear Convolution of two given discrete sequence has performed and the result is stored at memory location(0xC0001050).

b. CIRCULAR CONVOLUTION

Aim

To perform the Circular Convolution of two given discrete

sequence in TMS320C6745 KIT.

Requirements CCS v4 TMS320C6745 KIT USB Cable 5V Adapter Theory

The circular convolution, also known as cyclic convolution. A

convolution operation that contains a circular shift is called

circular convolution. Circular convolution of two sequences x1[n]

and x2[n] is given by

x1[n]*x2[n] = εk x1[k] x2((n-k))N, 0≤ n ≤N-1

Page 16: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

where k ranges between 0 and N-1

One of the methods to find circular convolution....

In circular convolution the length of the output sequence will be

equal to length of the input sequence ie. length(y)=length(x)

So first perform linear convolution using any of the methods u

find easier.

If m is the length of 'x' and n is the length of the 'h' then length of

'yl' from linear conv is m+n-1.

Since length of output from circular conv is m, we will bring the

last n-1 terms from 'yl' and add them to first n-1 terms.

So the obtained output is circularly convoluted output.

For eg. if x= 1, 2, 3, 4 and h= 2,3,1

lin conv op ie. yl= 2,7,13,19,15,4

bring last two (n-1) terms to first two terms

so circularly convluted op is yc= 17, 11,13,19

Page 17: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

Procedure

1. Open Code Composer Studio v4 .

2. In WorkSpace Launcher.

BROWSE Select the project location and make one new folder,

MAKE NEW FOLDER Type the Workspace name, OK OK.

2. FILE NEW CCS PROJECT

a.Project name: Type your project name.

b.Tick use default location. NEXT

c.Project type: C6000.

d.Tick Debug And Release. NEXT NEXT.

e.Output type: Executable.

f.Device Variant : generic C67XX Device.

g.Device Endianness : little

h.Code Generation Tools: TI v6.1.12.

i.Run time support library: automatic.

j.Target content: none. FINISH

4.FILE NEW SOURCE FILE

Page 18: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

A.Source file: Type your projectname.c( .c extension is must ).

b.Type the program.

c.FILE SAVE.

5. Paste the following board library files in workspace location.

a.Common folder (contains header files)

b.Gel folder (contains gel file)

c.Library folder(contains library files)

6. Paste the Linker file in the project location.(linker file is

available in cd)

Note: Those folders and linker file are availble at cd.

7. PROJECT PROPERTIES C/C++ BUILD BASIC OPTION

a.Target processor version(--silicon version, -mv) : 6400+

OK.

b. IN C/C++ BUILD, INCLUDE OPTIONS (Add dir to #include search path(--include_path,-I)) select this add icon and add the following three path by indivdually

"${Diag}../../common/header" "${XDAIS_CG_ROOT}/packages/ti/xdais" "${C6000_CSL_CG_ROOT}/include"

Page 19: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

8. FILE NEW TARGET CONFIGURATION FILE

a.file name: projectname. ccxml (.ccxml extension is must)

b.Connection: Texas Instrument XDS100 v1 USB Emulator.

c.Device: TMS320C6745. SAVE TARTGET

CONFIGURATION C674X_0 BROWSE, browse the workspace

location, open the gel folder and select the GEL file. OPEN

SAVE.

9. In C/C++ Project window, Right click the project REBUILD

PROJECT.

10. Connections :

a.Connect the usb cable, PC to TMS320C6745 KIT.

b.Connect the 5v adapter.

c.Power on the kit.

11. TARGET DEBUG ACTIVE PROJECT.

12. VIEW MEMORY 13. In right side, memory window will open. Type the adrress and give the input at particular location. Give the input as follow:

Page 20: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

X(n) h(n) 0xC0001000 – 00000001 0xC0001030 – 00000001 0xC0001004 – 00000001 0xC0001034 – 00000001 0xC0001008 – 00000001 0xC0001038 – 00000001 0xC000100C – 00000001 0xC000103C – 00000001 14. TARGET RUN.

15. TARGET HALT.

See the Output at Particular location: Example :

0xC0001050 – 00000004 0xC0001054 – 00000004 0xC0001058 - 00000004 0xC000105C - 00000004

Program

#include <stdio.h>

int rot(int *x);

void main()

{

Page 21: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

int *in1,*in2,*out,*temp,i,sum=0,j;

in1 = (int *)0xc0001000;

in2 = (int *)0xc0001030;

out = (int *)0xc0001050;

temp = (int *)0xc0002000;

for(i=0;i<4;i++)

{

if(i == 1)

temp[i+2] = in1[i];

else if(i == 3)

temp[i-2] = in1[i];

else

temp[i] = in1[i];

}

for(i=0;i<4;i++)

{

sum = 0;

for(j=0;j<4;j++)

Page 22: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

{

sum+=(in2[j] * temp[j]);

}

out[i] = sum;

rot(temp);

}

while(1);

}

rot(int *x)

{

int t;

t = x[0];

x[0] = x[3];

x[3] = x[2];

x[2] = x[1];

x[1] = t;

}

Page 23: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

Result

Thus, the Circular Convolution of two given discrete sequence

has performed and the result is stored at memory

location(0xC0001050).

3. SAMPLING OF INPUT AND DISPLAY

Aim

To Sample the input sinewave waveform using TMS320C6745

DSP KIT.

Requirements CCS v4 TMS320C6745 KIT USB Cable 5V Adapter Theory Sampling is the process of converting a signal (for example, a

function of continuous time or space) into a numeric sequence (a

function of discrete time or space) at the regular time interval.

Page 24: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

The sampling frequency should be greater than or equal to

2*input frequency, and the frequency should be bounded..

i,e., fs = 2 * finput

where fs= sampling frequency. To avoid alias, always our input

frequency is lesser than the half the sampling frequency. The

input Sinusoidal signal is sampled through ADC (MCP3202) at

regular interval. Then the generated sample is stored to to display

in CCS Graph Tool.

Procedure

1. Open Code Composer Studio v4 .

2. In WorkSpace Launcher.

BROWSE Select the project location and make one new

folder, MAKE NEW FOLDER Type the Workspace name, OK

OK.

3. FILE NEW CCS PROJECT

a.Project name: Type your project name.

b.Tick use default location. NEXT

c.Project type: C6000.

Page 25: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

d.Tick Debug And Release. NEXT NEXT.

e.Output type: Executable.

f.Device Variant : generic C67XX Device.

g.Device Endianness : little

h.Code Generation Tools: TI v6.1.12.

i.Run time support library: automatic.

j.Target content: none. FINISH

4.FILE NEW SOURCE FILE

a.Source file: Type your projectname.c( .c extension is must ).

b.Type the program.

c.FILE SAVE.

5. Paste the following board library files in workspace location.

a.Common folder (contains header files)

b.Gel folder (contains gel file)

c.Library folder(contains library files)

6. Paste the Linker file and spiadc.h in the project location.(linker

file is available in cd)

Page 26: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

Note: Those folders and linker file are availble at cd.

7. PROJECT PROPERTIES C/C++ BUILD BASIC OPTION

a.Target processor version(--silicon version, -mv) : 6400+

OK.

b. IN C/C++ BUILD, INCLUDE OPTIONS (Add dir to #include search path(--include_path,-I)) select this add icon

and add the following three path by indivdually "${Diag}../../common/header" "${XDAIS_CG_ROOT}/packages/ti/xdais" "${C6000_CSL_CG_ROOT}/include"

8. FILE NEW TARGET CONFIGURATION FILE

a.file name: projectname. ccxml (.ccxml extension is must)

b.Connection: Texas Instrument XDS100 v1 USB Emulator.

c.Device: TMS320C6745. SAVE TARTGET

CONFIGURATION C674X_0 BROWSE, browse the workspace

location, open the gel folder and select the GEL file. OPEN

SAVE.

Page 27: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

9. In C/C++ Project window, Right click the project REBUILD

PROJECT.

10. Connections :

a.Connect the usb cable, PC to TMS320C6745 KIT.

b.Connect the 5v adapter.

c.Power on the kit.

11. TARGET DEBUG ACTIVE PROJECT.

Note: Connect the Function generator probe positive terminal to

Adc input pin and negative terminal to ground. Set the frequency

as 1Khz & Amplitude as 3V.

12. TARGET RUN.(wait few seconds read samples)

13. TARGET HALT.

14. TOOLS GRAPH SINGLE TIME

a.Acquirstion buffer size : 500

b.Index increment : 1

c.Start address : adc_value.

d.Display data size : 500 Ok.

Page 28: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

Program #include "stdio.h" #include "c6745.h" #include "spiadc.h" signed int adc_value[1000]; void main( void ) { static Uint8 spiadcbuf[3]; unsigned int j; short *out,i=0; C6745_init( ); out = (short *)0xc0000000; spiadc_init(); for(i=0;i<500;i++) { spiadcbuf[0] = 0x01; // setup command spiadcbuf[1] = 0xBF;

spiadcbuf[2] = 0x00; spiadc_cycle(spiadcbuf, 3); // Execute spiadc read cycle adc_value[i] = ((spiadcbuf[1]&0x0f) << 8)| spiadcbuf[2]; //for(j=0;j<100000;j++); }

Page 29: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

printf("ALL PROCESSED");

while(1); } Result Thus, the Sampling of input sine waveform was sampled and

Displayed the sampled signal in Graph.

4. WAVEFORM GENERATION

a. SINE WAVEFORM GENERATION

Aim

To Generate a sinewave form using TMS320C6745 DSP KIT.

Requirements CCS v4 TMS320C6745 KIT USB Cable 5V Adapter

Page 30: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

Theory The simplest method to generate Sine wave is to use

Trignometric Sin function. The Sin function will generate the

samples from our specific parameter like sampling frequency,

number of samples, input frequency. In this project, generating

the correct sample is important. The library function "sin()" does

all of the work.

Its most basic form as a function of time (t) is:

where:

A, the amplitude, is the peak deviation of the function from its

center position.

ω, the angular frequency, specifies how many oscillations occur in

a unit time interval, in radians per second

φ, the phase, specifies where in its cycle the oscillation begins at t

= 0.

Page 31: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

When the phase is non-zero, the entire waveform appears to be

shifted in time by the amount φ/ω seconds. A negative value

represents a delay, and a positive value represents an advance.

Procedure 1. Open Code Composer Studio v4 .

2. In WorkSpace Launcher.

BROWSE Select the project location and make one new

folder, MAKE NEW FOLDER Type the Workspace name, OK

OK.

4. FILE NEW CCS PROJECT

a.Project name: Type your project name.

b.Tick use default location. NEXT

c.Project type: C6000.

d.Tick Debug And Release. NEXT NEXT.

e.Output type: Executable.

f.Device Variant : generic C67XX Device.

g.Device Endianness : little

Page 32: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

h.Code Generation Tools: TI v6.1.12.

i.Run time support library: automatic.

j.Target content: none. FINISH

4.FILE NEW SOURCE FILE

a.Source file: Type your projectname.c( .c extension is must ).

b.Type the program.

c.FILE SAVE.

5. Paste the following board library files in workspace location.

a.Common folder (contains header files)

b.Gel folder (contains gel file)

c.Library folder(contains library files)

6. Paste the Linker file in the project location.(linker file is

available in cd)

Note: Those folders and linker file are availble at cd.

7. PROJECT PROPERTIES C/C++ BUILD BASIC OPTION

a.Target processor version(--silicon version, -mv) : 6400+

OK.

Page 33: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

b. IN C/C++ BUILD, INCLUDE OPTIONS (Add dir to #include search path(--include_path,-I)) select this add icon

and add the following three path by indivdually "${Diag}../../common/header" "${XDAIS_CG_ROOT}/packages/ti/xdais" "${C6000_CSL_CG_ROOT}/include"

8. FILE NEW TARGET CONFIGURATION FILE

a.file name: projectname. ccxml (.ccxml extension is must)

b.Connection: Texas Instrument XDS100 v1 USB Emulator.

c.Device: TMS320C6745. SAVE TARTGET

CONFIGURATION C674X_0 BROWSE, browse the workspace

location, open the gel folder and select the GEL file. OPEN

SAVE.

9. In C/C++ Project window, Right click the project REBUILD

PROJECT.

10. Connections :

a.Connect the usb cable, PC to TMS320C6745 KIT.

b.Connect the 5v adapter.

c.Power on the kit.

11. TARGET DEBUG ACTIVE PROJECT.

Page 34: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

12. TARGET RUN.(wait to generate samples)

13. TARGET HALT.

14. TOOLS GRAPH SINGLE TIME

a.Acquirstion buffer size : 256

b.Index increment : 1

c.Start address : 0xC0000000.

d.Display data size : 256 Ok.

Program #include<stdio.h> #include<math.h> #define PI 3.14 void main() { const float sampf = 1024000.0;// Sampling frquency is fixed const int inpf = 4000; // change the input frquency from 1khz to 8khz(1000 to 8000) float sampt;

Page 35: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

double teta; short value,*sinout; int i,count,nsamp,value1; sinout = (short *)0xc0000000; sampt = 1/sampf; nsamp = sampf/inpf; printf("\n Sampling Frequency is : %f",sampf); printf("\n Sampling Time is :%f",sampt); printf("\n Input Frequency is : %d",inpf); printf("\n The number of Sample is : %d",nsamp);

for(i=0;i<400;i++) *(sinout+i)=0; for(count=0;count<nsamp;count++) { teta = (2 * PI * inpf * sampt * count); printf("\nteta = %lf",teta); value = sin(teta)*1024; printf("\t sin %lf Value is : %d",teta,value); value1 = value&0x0000FFFF;

Page 36: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

*sinout++ = value1; } } Result

Thus, the Sine waveform generation was generated and the sine

samples is stored at memory location(0xc0000000).

5. IMPLEMENTATION OF FIR FILTER

a. FIR LOW PASS FILTER

Aim

To Implement the FIR Low pass filter using TMS320C6745 KIT

Requirements

CCS v4 TMS320C6745 KIT USB Cable 5V Adapter

Page 37: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

Theory In signal processing, a finite impulse response (FIR) filter is a

filter whose impulse response (or response to any finite length

input) is of finite duration, because it settles to zero in finite time.

This is in contrast to infinite impulse response (IIR) filters, which

may have internal feedback and may continue to respond

indefinitely (usually decaying).

The impulse response of an Nth-order discrete-time FIR filter (i.e.,

with a Kronecker delta impulse input) lasts for N + 1 samples, and

then settles to zero.

The output y of a linear time invariant system is determined by

convolving its input signal x with its impulse response b.

For a discrete time FIR filter, the output is a weighted sum of the

current and a finite number of previous values of the input. The

operation is described by the following equation, which defines

the output sequence y[n] in terms of its input sequence x[n]:

where:

is the input signal,

Page 38: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

is the output signal,

are the filter coefficients, also known as tap weights, that make

up the impulse response,

is the filter order; an th-order filter has terms on the right-

hand side. The in these terms are commonly referred to as

taps, based on the structure of a tapped delay line that in many

implementations or block diagrams provides the delayed inputs to

the multiplication operations. One may speak of a 5th order/6-tap

filter, for instance.

Procedure 1. Open Code Composer Studio v4 . 2. In WorkSpace Launcher.

BROWSE Select the project location and make one new

folder, MAKE NEW FOLDER Type the Workspace name, OK

OK.

3. FILE NEW CCS PROJECT

a.Project name: Type your project name.

b.Tick use default location. NEXT

Page 39: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

c.Project type: C6000.

d.Tick Debug And Release. NEXT NEXT.

e.Output type: Executable.

f.Device Variant : generic - TMS320C6745.

g.Device Endianness : little

h.Code Generation Tools: TI v6.1.12.

i.Run time support library: automatic.

j.Target content: none. FINISH

4.FILE NEW SOURCE FILE

a.Source file: Type your projectname.c( .c extension is must ).

b.Type the program.

c.FILE SAVE.

5. Paste the following board library files in workspace location.

a.Common folder (contains header files)

b.Gel folder (contains gel file)

c.Library folder(contains library files)

Page 40: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

6. Paste the Linker file in the project location.(linker file is

available in cd)

Note: Those folders and linker file are availble at cd.

7. PROJECT PROPERTIES C/C++ BUILD BASIC OPTION

a.Target processor version(--silicon version, -mv) : 6400+

OK.

b. IN C/C++ BUILD, INCLUDE OPTIONS (Add dir to #include search path(--include_path,-I)) select this add icon

and add the following three path by indivdually "${Diag}../../common/header" "${XDAIS_CG_ROOT}/packages/ti/xdais" "${C6000_CSL_CG_ROOT}/include"

8. FILE NEW TARGET CONFIGURATION FILE

a.file name: projectname. ccxml (.ccxml extension is must)

b.Connection: Texas Instrument XDS100 v1 USB Emulator.

c.Device: TMS320C6745. (Tick the TMS320C6745) SAVE

TARTGET CONFIGURATION C674X_0 BROWSE, browse the

workspace location, open the gel folder and select the GEL file.

OPEN SAVE.

Page 41: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

9. In C/C++ Project window, Right click the project REBUILD

PROJECT.

10. Connections :

a.Connect the usb cable, PC to TMS320C6745 KIT.

b.Connect the 5v adapter.

c.Power on the kit.

11. TARGET DEBUG ACTIVE PROJECT.

12. TARGET RUN.(wait few seconds)

13. Output is displayed at Console Window.

14. TARGET HALT.

Program // ideal low pass filter

#include<stdio.h>

#include<math.h>

#define PI 3.14

Page 42: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

void main()

{

const int sampf=10000;

const int cutf=1000;

float value,a,b,output;

int nyqf,n,c0;

int *coeff;

coeff = (int *)0xc0001000;

nyqf=sampf/2;

c0=cutf/nyqf;

for(n=-5;n<6;n++)

{

if(n==0)

{

output = 0.5;

}

else

a = (n * PI)/2;

Page 43: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

b = n * PI;

value = sin(a);

output = value/b;

printf("\n The Fir Low pass filter coefficient : %f",output);

}

}

Result

Thus, the FIR Low pass filter was Implemented and displayed

the results in console window.

b. FIR HIGH PASS FILTER

Aim

To Implement the FIR High pass filter using TMS320C6745 KIT

Requirements

CCS v4 TMS320C6745 KIT

Page 44: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

USB Cable 5V Adapter Theory In signal processing, a finite impulse response (FIR) filter

is a filter whose impulse response (or response to any finite length

input) is of finite duration, because it settles to zero in finite time.

This is in contrast to infinite impulse response (IIR) filters, which

may have internal feedback and may continue to respond

indefinitely (usually decaying).

The impulse response of an Nth-order discrete-time FIR filter (i.e.,

with a Kronecker delta impulse input) lasts for N + 1 samples, and

then settles to zero.

The output y of a linear time invariant system is determined by

convolving its input signal x with its impulse response b.

For a discrete time FIR filter, the output is a weighted sum of the

current and a finite number of previous values of the input. The

operation is described by the following equation, which defines

the output sequence y[n] in terms of its input sequence x[n]:

Page 45: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

where:

is the input signal,

is the output signal,

are the filter coefficients, also known as tap weights, that make

up the impulse response, is the filter order; an th-order filter has

terms on the right-hand side. The in these terms are

commonly referred to as taps, based on the structure of a tapped

delay line that in many implementations or block diagrams

provides the delayed inputs to the multiplication operations. One

may speak of a 5th order/6-tap filter, for instance.

Procedure 1. Open Code Composer Studio v4 .

2. In WorkSpace Launcher.

BROWSE Select the project location and make one new

folder, MAKE NEW FOLDER Type the Workspace name, OK

OK.

Page 46: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

3. FILE NEW CCS PROJECT

a.Project name: Type your project name.

b.Tick use default location. NEXT

c.Project type: C6000.

d.Tick Debug And Release. NEXT NEXT.

e.Output type: Executable.

f.Device Variant : generic - TMS320C6745.

g.Device Endianness : little

h.Code Generation Tools: TI v6.1.12.

i.Run time support library: automatic.

j.Target content: none. FINISH

4.FILE NEW SOURCE FILE

a.Source file: Type your projectname.c( .c extension is must ).

b.Type the program.

c.FILE SAVE.

5. Paste the following board library files in workspace location.

a.Common folder (contains header files)

Page 47: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

b.Gel folder (contains gel file)

c.Library folder(contains library files)

6. Paste the Linker file in the project location.(linker file is

available in cd)

Note: Those folders and linker file are availble at cd.

7. PROJECT PROPERTIES C/C++ BUILD BASIC OPTION

a.Target processor version(--silicon version, -mv) : 6400+

OK.

b. IN C/C++ BUILD, INCLUDE OPTIONS (Add dir to #include search path(--include_path,-I)) select this add icon

and add the following three path by indivdually "${Diag}../../common/header" "${XDAIS_CG_ROOT}/packages/ti/xdais" "${C6000_CSL_CG_ROOT}/include"

8. FILE NEW TARGET CONFIGURATION FILE

a.file name: projectname. ccxml (.ccxml extension is must)

b.Connection: Texas Instrument XDS100 v1 USB Emulator.

c.Device: TMS320C6745. (Tick the TMS320C6745) SAVE

TARTGET CONFIGURATION C674X_0 BROWSE, browse the

Page 48: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

workspace location, open the gel folder and select the GEL file.

OPEN SAVE.

9. In C/C++ Project window, Right click the project REBUILD

PROJECT.

10. Connections :

a.Connect the usb cable, PC to TMS320C6745 KIT.

b.Connect the 5v adapter.

c.Power on the kit.

11. TARGET DEBUG ACTIVE PROJECT.

12. TARGET RUN.(wait few seconds)

13. TARGET HALT.(AUTO halt)

14. Output is displayed at Console Window.

Program // ideal high pass filter coefficients

#include<stdio.h>

#include<math.h>

#define PI 3.14

Page 49: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

void main()

{

const int sampf=10000;

const int cutf=1000;

double value,a,b,output,final;

int nyqf,n,c0;

int *coeff;

coeff = (int *)0xc0001000;

nyqf=sampf/2;

c0=cutf/nyqf;

for(n=-5;n<6;n++)

{

if(n==0)

{

output = 0.5;

}

Page 50: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

else

a = (n * PI)/2;

b = n * PI;

value = sin(a);

output = value/b;

final = 1 - output;

printf("\n The Fir High pass filter coefficient : %f",final);

}

}

Result

Thus, the FIR High pass filter was Implemented and displayed

the results in console window.

Page 51: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

Pantech solutions creates information packed technical

documents like this one every month. And our website is a rich

and trusted resource used by a vibrant online community of

more than 1,00,000 members from organization of all shapes

and sizes.

Did you enjoy the read?

Page 52: Ec2306 Digital Signal Processing Lab Manual for TMS320C6745

Join the Technical Community Today! http://www.pantechsolutions.net

What do we sell?

Our products range from Various Microcontroller

development boards, DSP Boards, FPGA/CPLD boards,

Communication Kits, Power electronics, Basic electronics,

Robotics, Sensors, Electronic components and much more . Our

goal is to make finding the parts and information you need

easier and affordable so you can create awesome projects and

training from Basic to Cutting edge technology.