Vous êtes sur la page 1sur 4

Université Sidi Mohamed Ben Abdallah

Ecole Nationale des Sciences Appliquées


FES

2ére Année G. systèmes embarqués


Et informatique industrielle

Compte rendu :
Architecture des DSP

TP-4: Interfaces du CCS et traitement du Son sur DSP

Réalisé par: Encadré par:


 Choua Khalid -Pr: Anas Mansouri
 Hourmat Allah Bakre

Année Universitaire 2014/2015


I- INTRODUCTION :

L’objectif de ce TP est de manipuler les effets sonores étant donné que ces effets sont considérés parmi les premières
applications du DSP, en exploitant les propriétés temps réels des DSP.

II- INTERFACE CCS :


Pour manipuler cette interface on va commencer le programme suivant :

#include « dsk6713_aic23.h »
Uint32 fs=DSK6713_AIC23_FREQ_8KHZ ;
#define DSK6713_AIC23_INPUT_LINE 0x0011 Uint16
inputsource=DSK6713_AIC23_INPUT_LINE ;
#define LOOPLENGTH 8 Short loopindex=0 ;
Short gain = 10 ;
Short sine_table[LOOPLENGTH]={0,707,1000,707,0,-707,-1000,-707} ;
Interruptvoid c_int11(){
Output_left_sample(sine_table[loopindex++]*gain) ;
If(loopindex>= LOOPLENGTH) loopindex=0 ;
Return ;}
Voidmain() {
comm_intr() ;
While() ; }

On exécute le programme l’amplitude est presque 1V et la fréquence dans l’ordre de 4khz. Pendant que le
programme s’exécute on ouvre Quick Watch puis on tape notre gain et on appuis Add to Watch.
En changeant le gain on remarque que la fréquence ne change pas et l’amplitude augmente.

III- METHODES DE CREATION D’UN GEL :


Le gel est un langage qui ressemble a C, il permet d’ajouter des fonctionnalités a CCS afin de rendre l’interface plus
convivial. Pour ce faire on appuis sur filenewSource file Et on tape le code suivant :

Menuitem « Sine Gain »


SliderGain(0,30,4,1,gain_parameter)
{ Gain = gain_parameter ;}

On enregistre ce fichier fileSave as nom gain.gel Après le chargement par loadGEl, on ouvre gain.gel puis
GELSineGainGain et on charge la valeur du gain.

IV- OUTILS DES TESTS CCS


Cette partie a pour but d’afficher le contenu d’un tableau(buffer) et le sauvegarder. On ajoute le programme précédant
un buffer dans lequel vont être enregistrés Dans ce buffer. Après l’exécution du programme, o l’arrête puis on
selectionneViewGraphTime/Frequency. Après le réglage des différentes fonctions on sauvegarde, puis
ViewMemory et on spécifie le nom de la variable out-buffer dans la case.

Année Universitaire 2014/2015


V- ENREGISTREMENT DU SON
Dans cette partie on utilise un buffer situé dans la mémoire externe pour sauvegarder/restituer une séquence audio. Pour
ce faire on tape le code suivant :

#include « dsk6713_aic23.h »
Uint32 fs=DSK6713_AIC23_FERQ_8KHZ ;
#define DSK6713_AIC23_FREQ_8KHZ ;
Uint16 inputsource=DSK6713_AIC23_INPUT_LINE ;
#define N 2400000 Long i ; Short buffer[N] ;
#pragma DATA_SECTION(buffer, «SDRAM »)
Voidmain(){
Short recording = 0, playing = 0 ;
For(i=0 ;i<N ;i++) buffer[i]=0 ;
DSK6713_DIP_init() ;
DSK6713_LED_init() ;
Comm_poll() ;
While(1){ If (DSK6713_DIP_get(3)==0)
{i=0 ; Recording = 1 ;
While(recording==1) {DSK6713_LED_on(3) ;
{i=0 ; Recording = 1 ;
While(recording==1) {DSK6713_LED_on(3) ;
Buffer[i++]=input_left_sample() ;
If(DSK6713_DIP_get(3)==1)
{recording=0 ;
DSK6713_LED_off(3) ;} }}
If(DSK6713_LED_off(0)==0)
{i=0 ; Playing=1 ;
While(playing==1)
{DSK6713_LED_on(0) ;
Output_left_sample(buffer[i++]) ;
If(i>2000) If(DSK6713_DIP_get(0)==1)
{playing=0 ; DSK6713_LED_off(0) ;}}}}}

On commande l’enregistrement par SW_3 comme il est indiqué dans le programme ci-dessus. Et la lecture par SW_0.

VI- EFFET DE L’ECHO OU LE FADING


Cette partie a comme but d’implanter l’effet de retard, echo et fading. Pour ce faire on tape le code suivant :

#include « DSK6713_AIC23.h »
Uint32 fs=DSK6713_AIC23_FREQ_8KHZ ;
#define DSK6713_AIC23_INPUT_LINE 0x0011
Uint16 inputsource=DSK6713_AIC23_INPUT_LINE ;
#define BUF_SIZE 8000 Short input, output,delayed ;

Année Universitaire 2014/2015


Short buffer[BUF_SIZE] ;
Int i ;
Interruptvoid c_int11()
{
Input = input_left_sample() ;
Delayed = buffer[i] ;
Output = delayed ;
Buffer[i]=input ;
If(++i >=BUF_SIZE) i=0 ;
Output_left_sample(output) ;
Return ;
}
Voidmain()
{ For(i=0 ; i<BUF_SIZE ;i++) buffer[i] ;
Comm_intr() ;
While(1) ;}

On diminue le du son puis on raccorde la sortie du lecteur MP3 à l’entrée LINE INPUT du DSK et on relie la sortie
LINE OUT à un hautparleur. Puis on lance notre programme on remarque qu’il ya un retard entre l’entrée du son et
sa sortie.

VII- CONCLUSION :
Ce TP nous a permis de se familiariser avec l’environnement du DSP et de bien manipuler la carte DSK6713 ainsi
d’essayer différents codes et tester plusieurs phénomènes de traitements de signal.

Année Universitaire 2014/2015