TMS320C6748 DSP BOARD Package Content
TMS320C6748 DSP BOARD Package Content
TMS320C6748 DSP BOARD Package Content
Package content:
The C6748 DSP Experimenter Kit packaged for Universities (TMDSEXPL138-UNV) provides
everything academics need to get started with teaching and projects using the TI TMS320C6000 DSP. The
TI TMS320C6000 family of DSPs is popular for use in Real-time DSP coursesThe Experimenter Kit for
Universities is a low-cost, flexible development platform for the OMAP-L138 which is a low-power dual
core processor based on C6748 DSP plus an ARM926EJ-S 32-bit RISC MPU.
The C6748 DSP kit has a TMS320C6748 DSP onboard that allows full-speed verification
of code with Code Composer Studio. The C6748 DSP kit provides:
A USB Interface
128MB DDRAM and ROM
An analog interface circuit for Data conversion (AIC) An I/O port
Embedded JTAG emulation support
Connectors on the C6748 DSP kit provide DSP external memory interface (EMIF) and peripheral
signals that enable its functionality to be expanded with custom or third party daughter boards.
The C6748 DSP kit includes a stereo codec. This analog interface circuit (AIC) has the
following characteristics:
• Programmable digital audio effects include 3D sound, bass, treble, EQ and de-emphasis Software Control
via TI McASP-Compatible Multiprotocol Serial Port. Glueless Interface to TI McASPs.
• Audio-Data Input/Output Via TI McASP-Compatible Programmable Audio Interface 16/20/24/32-Bit
Word Lengths.
The 6748 DSP KIT kit is a low-cost standalone development platform that enables customers to
evaluate and develop applications for the TI C67XX DSP family. The DSP KIT also serves as a hardware
reference design for the TMS320C6748 DSP. Schematics, logic equations and application notes are
available to ease hardware development and reduce time to market.
An on-board AIC3106 codec allows the DSP to transmit and receive analog signals. McASP is
used for the codec control interface and for data. Analog audio I/O is done through two 3.5mm audio
jacks that correspond to line input, and line. The analog output is be driven to the line out .McASP1 can
re-routed to the expansion connectors in software.
The DSP KIT includes 2 LEDs and 8 DIP switches as a simple way to provide the user with interactive
feedback.
An included 5V external power supply is used to power the board. On-board voltage regulators provide
the 1.26V DSP core voltage, 3.3V digital and 3.3V analog voltages. A voltage supervisor monitors the
internally generated voltage, and will hold the board in reset until the supplies are within operating
specifications and the reset button is released.
Code Composer communicates with the DSP KIT through an embedded JTAG emulator with a USB
host interface. The DSP KIT can also be used with an external emulator through the external JTAG
connector.
Highest-Performance Floating-Point Digital Signal Processor (DSP):
Eight 32-Bit Instructions/Cycle
32/64-Bit Data Word
375/456-MHz C674x Fixed/Floating-Point
Up to 3648/2746 C674x MIPS/MFLOPS
Rich Peripheral Set, Optimized for Audio
Highly Optimized C/C++ Compiler
Extended Temperature Devices Available
Advanced Very Long Instruction Word (VLIW) TMS320C67x™ DSP Core
Eight Independent Functional Units:
Two ALUs (Fixed-Point)
Four ALUs (Floating- and Fixed-Point)
Two Multipliers (Floating- and Fixed-Point)
Load-Store Architecture With 64 32-Bit General-Purpose Registers
Instruction Packing Reduces Code Size
All Instructions Conditional
Instruction Set Features
Native Instructions for IEEE
754
Single- and Double-Precision
Byte-Addressable (8-, 16-, 32-Bit Data)
8-Bit Overflow Protection
Saturation; Bit-Field
Extract, Set, Clear; Bit-Counting; Normalization
67x cache memory.
32K-Byte L1P Program Cache (Direct-Mapped)
32K-Byte L1D Data Cache (2-Way)
256K-Byte L2 unified Memory RAM\Cache.
Real-Time Clock with 32 KHz Oscillator and Separate Power Rail.
Three 64-Bit General-Purpose Timers
(DIT) Supports:
Integrated Digital Audio Interface Transmitter
S/PDIF, IEC60958-1, AES-3, CP-430 Formats
Up to 16 transmit pins
Enhanced Channel Status/User Data
Extensive Error Checking and Recovery
Two Inter-Integrated Circuit Bus (I 2 C Bus™) .
3 64-Bit General-Purpose Timers (each configurable as 2 32-bit timers)
Flexible Phase-Locked-Loop (PLL) Based Clock Generator Module
IEEE-1149.1 ) Boundary-Scan-Compatible
3.3-V I/Os,
-V Internal (GDP & PYP)
3.3-V I/Os, 1.4-V Internal (GDP)(300 MHz only)
LCD Controller
Two Serial Peripheral Interfaces (SPI) Each With Multiple Chip-Selects
Two
Multimedia Card (MMC)/Secure Digital (SD) Card Interface with Secure Data I/O (SDIO)
Interfaces
One Multichannel Audio Serial Port.
Two Multichannel Buffered Serial Ports
General Procedure to work on Code Composer Studio V4 for non-real time
projects
1. Launch ccs
Launch the CCS v4 icon from the Desktop or goto All Programs ->Texas Instruments -
>CCSv4
2.
Choose the location for the workspace, where your project will be saved.
3.
Click the CCS icon from the welcome page to go the workbench, it is marked in the
below picture.
4. Configure ccs to your target
A. From the Target menu select New target Configuration
Target -> New target Configuration.
It will open a window like given below.
Specify any arbitrary target name. For Eg., 6748config.ccxml (Extension should be
.ccxml).. Click Finish then you will get configuration window for the created target.
B.
1. Select the Connection: Texas instruments XDS100v1 USB Emulator
2. Select the Device: TMS320C6748. To make search easier type 6748 in device block.
*
Check the box
TMS320C67
4 8 and
finally Click
Save.
C. Next goto Advanced tab give the suitable Gel file path as shown below.
D.
Go to view option and select the Target Configuration:
View->Target Configuration.
A wizard will open in the workspace expand the User Defined folder and you can find your target,
Right click on 6748config.ccxml and select the Launch Selected Configuration.
Step P2:
Go to File New CCS Project.
Step P3:
Specify the name of the project in the
space provided .and Click Next
Click Next
*However our target is based on C6000 family, Based on the family we need to select the
Project
Type.
Set the project settings window as shown below.
Click finish
6. To write the program select one new file.
A.Go to File New Source File.
B. Specify the arbitrary source file name. It should be in the source folder (current project name.).
Note:
Extension of the source file must be the language what we preferred to write the code. Eg:
For c-> .c C++ -
> .cpp
Assembly -> .asm
warnings. Go to
Project Build active project.
If your code doesn‟t have any errors and warnings, a message will be printed in the console window
that
Goto Target Debug Active project.
Now press reset button on the 6748 hardware , then click on retry.
Once you click on retry ccs will load program on to processor and then ccs will guide
us to debug mode, if it is not done automatically.
Once you run the program the output will be printed in the Console
PROGRAM 1
Aim: To write the C code to perform Linear Convolution upon two given discrete time signals.
C Code:
int i=0,j;
/*Input Signal Samples*/
int x[15]={1,2,3,4,5,6,0,0,0,0,0,0};
/*Impulse Response Coefficients*/
int h[15]={1,2,3,4,5,6,0,0,0,0,0,0};
/*Calculate Values*/
for(i=0;i<m+n-1;i++)
{
y[i]=0;
for(j=0;j<=i;j++)
y[i]+=x[j]*h[i-j];
}
/* Display Values*/
printf("Sequence 1: \n");
for(i=0;i<m;i++)
printf("%d\t",x[i]);
printf("\nSequence 2: \n");
for(i=0;i<n;i++)
printf("%d\t",h[i]);
Sequence 1:
1 2 3 4 5 6
Sequence 2:
1 2 3 4 5 6
Convolved Sequence:
1 4 10 20 35 56 70 76 73 60 36
Procedure:
4. Create new source file and type the code linear.c and save it.(step 6)
5. Now perform steps 7, 8and 9.Once you run the program you can watch convolution
result in the console window.
a. Go to Tools Graph Single Time
7. Set the Graph Properties as shown
Buffer size : 11
Start Address: y
8. Click : Ok
9. Note down the output waveform.
NOTE : Follow the same procedure for the rest of the experiments.
PROGRAM 2
Aim: To write the C code to perform Circular Convolution upon two given discrete time signals.
C Code 1: Program with User Input Prompt and Fold-Shift Technique Implementation
for(k=1;k<n;k++)
{
y[k]=0;
/*circular shift*/
for(j=1;j<n;j++)
x2[j]=a[j-1];
x2[0]=a[n-1];
for(i=0;i<n;i++)
{
a[i]=x2[i];
y[k]+=x[i]*x2[i];
}
}
/* displaying the result */
printf("\nConvolved Sequence:\n");
for(i=0;i<n;i++)
printf("%d \t",y[i]);
}
C Code 2: Alternate Program with Modulus and without user input prompt
#include<stdio.h>
int y[20];
main()
{
int m=4; /*Length of i/p samples sequence*/ /*Length
int n=4; of impulse response Coefficients*/
int i=0,j;
/*Input Signal Samples*/
int x[15]={2,1,2,1};
/*Impulse Response Coefficients*/
int h[15]={1,2,3,4};
/*Calculate Values*/
for(i=0;i<m;i++)
{
y[i]=0;
for(j=0;j<n;j++)
w = i-j; if(w<0)
w+=4;
y[i]+=x[j]*h[w];
}
/* Display Values*/
printf("Sequence 1: \n");
for(i=0;i<m;i++)
printf("%d\t",x[i]);
printf("\nSequence 2: \n");
for(i=0;i<n;i++)
printf("%d\t",h[i]);
OUTPUT:
Enter the length of the first sequence 4
Enter the length of the second sequence 4
Enter the first sequence 2 1 2 1
Enter the second sequence 1 2 3 4
Convolved Sequence:
14 16 14 16
PROGRAM 3:
C Code:
#include<stdio.h>
#include<math.h>
int N,k,n,i;
float pi=3.1416,sumre=0, sumim=0,out_real[8]={0.0}, out_imag[8]={0.0};
int x[32];
void main(void)
{
printf("Enter the length of the sequence\n");
scanf("%d",&N);
printf("\nEnter the sequence\n");
for(i=0;i<N;i++)
scanf("%d",&x[i]);
for(n=0;n<N;n++)
{
sumre=sumre+x[n]* cos(2*pi*k*n/N);
sumim=sumim-x[n]* sin(2*pi*k*n/N);
}
out_real[k]=sumre;
out_imag[k]=sumim;
printf("X([%d])=\t%f\t+\t%fi\n",k,out_real[k],out_imag[k]);
}
}
OUTPUT:
Enter the length of the sequence 4
Enter the sequence 0 1 2 3
DFT of the Sequence
6.0
-2.0 + 2.0i
-2.0 - 0.0i
-2.0 - 2.0i
PROGRAM 4:
Aim: To Calculate the Impulse Response of the First Order and Second Order Systems.
C Code:
#include <stdio.h>
main()
{
int j,k;
float b[Order+1]={1, 3}; /*Input Coefficients*/
float a[Order+1]={1, 0.2}; /*Output
Coefficients*/ printf("Impulse Response
Coefficients:\n"); for(j=0;j<Len;j++)
{
sum = 0;
for (k=1;k<=Order;k++)
{
if ((j-k)>=0)
sum=sum+(b[k]*y[j-k]);
}
if(j<=Order)
y[j]=a[j]-sum;
else
y[j]=-sum;
printf("Response [%d] = %f\n",j,y[j]);
}
}
OUTPUT: