You are on page 1of 8

2

TMS320C6713 DSK
TMS320C6713 DSK
TMS320C6713 DSK
1
kHz
DSP .
1. DS
.
DSK
:

TMS320C6713 1
HP OUT (Head Phones OUT).
USB
, mini USB TMS320C6713
USB , USB
USB ( USB
).
DSP DC 5V,
, .
( )
, PWR DSP
.
: USB
.
2.
DSP . 1kHz
DIP 0
, LED 0.
DSP
(Texas Instruments) Code Composer Studio.
3.1. Code Composer Studio v3.1
CCStudio 3.1 (
CCStudio PC-
). :

CCStudio c c++
C6713

DSP . DSP
.
2 .
:
Project->New
:
Project Name: Sine8_LED
Location: c:\CCStudio_v3.1\MyProjects\vezba_2\Sine8_LED
Project Type: Executable(.out)
Target: TMS320C67XX
vezba_2 Sine8_LED.
Sine8_LED glaven.c .
CCStudio Sine8_LED.pjt (Debug). :
Add Files to Project
glaven.c Open.
CCStudio Source +
.
, . glaven.c
:
//glaven.c generator na sinusoidalen signal so kontrola preku DIP switch
#include "dsk6713_aic23.h" //vklucuvanje na zaglavjata potrebni za kolata za pretvoranje

//na analogni vo digitalni signali i obratno


Uint32 fs = DSK6713_AIC23_FREQ_8KHZ;
//postavuvanje na frekvencijata za zemanje
//na primeroci
#define DSK6713_AIC23_INPUT_MIC 0x0015 //Definiranje na vrednosta koja ke se
// koristi kako opis za mikrofon
#define DSK6713_AIC23_INPUT_LINE 0x0011 //Definiranje na vrednosta koja ke se
// koristi kako opis za generator na signali
Uint16 inputsource=DSK6713_AIC23_INPUT_MIC; // definiranje na promenliva za
// vlez
#define LOOPLENGTH 8

// promenliva za goleminata na baferot vo koj e


// zapishana sinusoidata
short loopindex = 0;
// indeks za dvizhenje niz bafetor
short gain = 10;
// izlezno zasiluvanje
short sine_table[LOOPLENGTH]={0,707,1000,707,0,-707,-1000,-707}; // baferot
//so sinusoidata
void main()
{
comm_poll();

// inicijalizacija na DSP plochkata i na delovite za zemanje


// i isprakanje na primeroci
DSK6713_LED_init(); // inicijalizacija na LED diodite

DSK6713_DIP_init();
// inicijalizacija na DIP switch-ot
while(1)
// jamka so koja se ispraka sinusoidata na izlez
{
if(DSK6713_DIP_get(0)==0) // funkcija za otchituvanje I proverka dali DIP
{
// swith na pozicija 0 e pritisnat
DSK6713_LED_on(0);
// palenje na LED diodata so reden broj 0
output_left_sample(sine_table[loopindex++]*gain);
// isprakanje na
// vrednsota od baferot so sinusoidata kon slusalkite
if (loopindex >= LOOPLENGTH) loopindex = 0; // resetiranje na indeksot
// za otchituvanje od bafetor na sinusoidata
}
else DSK6713_LED_off(0);
// gasenje na LED diodata 0
}
}

. DSP
.
.
Sine8_LED.pjt (Debug), :
Add Files to Project
:
rts6700.lib (c:\CCStudio_v3.1\c6000\cgtools\lib)
dsk6713bsl.lib (c:\CCStudio_v3.1\c6000\dsk6713\lib)
csl6713.lib (c:\CCStudio_v3.1\c6000\csl\lib)

DSP :
c6713dskinit.c (c:\CCStudio_v3.1\myprojects\Support)

.
:
c6713dsk.cmd (c:\CCStudio_v3.1\myprojects\Support)

poll
, :
vectors_poll.asm (c:\CCStudio_v3.1\myprojects\Support)

:
(, DSP ,
) Files of ype
.
(
),
Sine8_LED.pjt (Debug) :
Scan All File Dependences
:

DSP ,
.
DSP . Build Options
Project. Compiler Basic ( )
e Target Version: C671X(-mv6710). Advanced Memory Models
Far (--mem_model:data=far). Preprocessor Pre-Define Symbol
CHIP_6713,

Include
Search
Path (-i)

c:\CCStudio_v3.1\C6000\dsk6713\include. Linker e Library Search
Path (-i) c:\CCStudio_v3.1\C6000\dsk6713\lib, a Include Libraries (-l)
rts6700.lib; dsk6713bsl.lib; csl6713.lib
.

: .
DSP
Project Build.
. 0 errors ( 0
Warnings). Debug ( Sine8_LED)
Sine8_LED.out .
Debug Connect.
CCStudio v3.1
File Load Program
Debug Sine8_LED.out
DSP ,
Debug Run.
DSP
. gel . CCStudio v3.1
GEL Files Load GEL

(vezba_2)
Sine8_LED.GEL Open
DSK6713.gel. GEL Sine Gain->Gain

.
DIP 0.
, LED 0
1 kHz.

( Flash
). CCStudio
Debug Disconect CCStudio
DSP CCStudio. DSP
.
3.
, DSP , o
.
2 . CCS
c6713 DSP
. ,
, ,
.
DSP , DSP (
), CCS, DSP ,
,
DSP .
vezba_2 CCStudio
razmena_na_podatoci.
2, () ,
.
glaven.c. :
c6713dsk.cmd
intvecs.asm
rtdx.lib
target.h
c6713dsk.cmd, target.h intvecs.asm Del3_dop_fajl
vezba_2.
razmena_na_podatoci .
rtdx.lib c:CCStudio_v3.1\c6000\rtdx\lib
( razmena_na_podatoci).
glaven.c c:
//razmena_na_podatoci.c MATLAB-DSK interfejs
#include <rtdx.h> // zaglavje so koe se ovozmozuva komunikacijata
#include "target.h" // zaglavje so koe se ovozmozuva da se povika plockata

RTDX_CreateInputChannel(ichan);
RTDX_CreateOutputChannel(ochan);
short buffer[10] = {0};

// kreiranje na kanal PC-->DSK


// kreiranje na kanal DSK-->PC
// bafer za vlezni podatoci od PC

void main(void)
{
int i;
TARGET_INITIALIZE();
//inicijalizacija na komunikacijata
while(!RTDX_isInputEnabled(&ichan)) //cekanje Matlab da kreira kanal
puts("\n\n Cekanje da se vcita "); // ispisuvana linija na CCS izlezot

RTDX_read(&ichan,buffer,sizeof(buffer)); // otchituvanje na podatoci


puts("\n\n Citanjeto e zavrsheno");
for (i = 0; i<10; i++)
buffer[i] = buffer[i] +4;

// obrabotka na podatocite dobieni od PC

while(!RTDX_isOutputEnabled(&ochan)) // chekanje Matlab da vospostavi kanal


puts("\n\n Cekanje da se zapishe");
// ispisuvana linija na CCS izlezot
RTDX_write(&ochan,buffer,sizeof(buffer)); // isprakanje na podatocite do PC
puts("\n\n Zapishuvanjeto e zavrsheno");
while(1)

{}
// beskonechna linija

DSP
(Build).
: 3 2006.
current directory razmena_na_podatoci (
3 ). m-file (File->New->M File)
matlab_dsk. :
%matlab_dsk.m MATLAB-DSK interfejs
indata(1:10) = [21:30];

%podatoci koi ke se isprakaat do DSK

ccsboardinfo
%dobivanje na podatoci za prikluchenite DSK plocki
cc = ccsdsp('boardnum',0);
%podiganje na object vo matlab i CCStudio
reset(cc)
%resetiranje na plockata
visible(cc,1);
%CCStudio stanuva vidliv
enable(cc.rtdx);
%ovozmozuvanje na komunikacija
if ~isenabled(cc.rtdx)
error('Komunikacijata ne e vopsostavena')
end
cc.rtdx.set('timeout', 20);
% 20 sekundi e time out-ot vo komunikacijata

open(cc,'razmena_na_podatoci.pjt'); % se otvora proektot


load(cc,'./debug/razmena_na_podatoci.out'); %se prenesuva kodot na plockata
run(cc);
%se startuva kodot
configure(cc.rtdx,1024,4);
open(cc.rtdx,'ichan','w');
open(cc.rtdx,'ochan','r');
pause(3)

% se konfiguriraat kanalite za komunikacija


% se otvora vlezniot kanal
%se otvora izlezniot kanal
% pauza za da se vospostavat kanalite

enable(cc.rtdx,'ichan');
% se aktivira kanalot do DSP plockata
if isenabled(cc.rtdx,'ichan')
writemsg(cc.rtdx,'ichan', int16(indata)) % se isprakaat podatocite do DSK
pause(3)
else
error('Channel ''ichan'' is not enabled')
end
enable(cc.rtdx,'ochan');
% se aktivira kanalot od DSP plockata
if isenabled(cc.rtdx,'ochan')
outdata = readmsg(cc.rtdx,'ochan','int16') ;% se isprakaat podatocite od DSK
pause(3)
else
error('Channel ''ochan'' is not enabled')
end
if isrunning(cc), halt(cc);

% Se prekinuva izvrzhuvanjeto na kod na plockata

end
disable(cc.rtdx);
% se deaktivira komunikacijata
close(cc.rtdx,'ichan');
% se zatvora vlezniot kanal
close(cc.rtdx,'ochan');
% se zatvora izlezniot kanal
plot(indata);
hold on;
plot(outdata, 'r')
axis([1 10 20 45]);
legend('Podatoci prateni do plockata', 'Podatoci primeni od plockata');
m-.
.
: ,
.