Travaux pratiques DSP et Applications 2ème année GE, Filière GSE Mohammed KHALDOUN 04/04/2021 TP DSP et Applications 2020/2021 TP & TD DSP Partie 1 : Configuration de l’Outil de développement Intégré pour processeurs DSP Texas Instrument (Code Composer Studio) & Tests fonctionnels de la plateforme DM6437EVM NB : La partie 1 ne nécessite pas de préparation préalable, elle sera traitée directement sur le matériel, la parties 2 et la partie 3 nécessiteront une préparation préalable. I – Procédure de Configuration du CCS, Ouverture d’un projet et Exécution d’un projet test I-Configuration du CCS pour Plateforme DM64M37EVM 1. Lancer Code Composer Studio en cliquant sur La fenêtre suivante apparait 2. Choisir la plateforme DM6437EVM et valider en cliquant sur <<ADD 1 Mohammed KHALDOUN TP DSP et Applications 2020/2021 3. Cliquer sur Save and Quit β’ Cliquer sur Oui pour démarrer CCS β’ Cliquer sur Non pour quitter CCS Supposons qu’on a quitté le CCS en cliquant sur Non, pour lancer à nouveau le CCS on procède comme suit : 4. Lancer Code Composer Studio pour la carte DM6437 EVM en cliquant sur Démarrage du CCS 2 Mohammed KHALDOUN TP DSP et Applications 5. Ouverture Fenêtre Principale CCS 2020/2021 Ouverture d’un projet CCS 6. Pointer vers le Dossier CCStudio_v3.3 pour ouvrir un projet. 7 . Ouvrir le Dossier boards 3 Mohammed KHALDOUN TP DSP et Applications 2020/2021 8 - Ouvrir le Dossier evmdm6437 9 - Ouvrir le Dossier ’’tests’’contenant les programmes tests de la carte DM6437EVM projets 4 Mohammed KHALDOUN TP DSP et Applications 2020/2021 10 - Ci-dessous, les différents dossiers des projets tests de la plateforme DM6437EVM 11- Ci-dessous Emplacement des circuits et périphériques Plateforme DM6437 EVM. 12 – Sélectionner par exemple le projet ’’Led’’ pour tester le fonctionnement des ’’leds’’ de la plateforme 5 Mohammed KHALDOUN TP DSP et Applications 2020/2021 13 - Le projet led.pjt est prêt pour l’exécution 14 - Les différents fichiers du projet 6 Mohammed KHALDOUN TP DSP et Applications 2020/2021 15 -Exemple de Codes Fonction main du projet ‘led.prj’ * Copyright 2006 by Spectrum Digital Incorporated. * All rights reserved. Property of Spectrum Digital Incorporated. */ * EVMDM6437 Test Suite * #include "stdio.h" #include "evmdm6437.h" /* ------------------------------------------------------------------------ * * * * Testing Function * * * * ------------------------------------------------------------------------ */ void TEST_execute( Int16 ( *funchandle )( ), char *testname, Int16 testid ) { Int16 status; /* Display test ID */ printf( "%02d Testing %s...\n", testid, testname ); /* Call test function */ status = funchandle( ); /* Check for test fail */ if ( status != 0 ) { /* Print error message */ printf( " FAIL... error code %d... quitting\n", status ); /* Software Breakpoint to Code Composer */ SW_BREAKPOINT; } else { /* Print error message */ printf( " PASS\n" ); } } extern Int16 led_test( ); /* ------------------------------------------------------------------------ * * * * main( ) * * * * ------------------------------------------------------------------------ */ void main( void ) { /* Initialize BSL */ EVMDM6437_init( ); 7 Mohammed KHALDOUN TP DSP et Applications 2020/2021 TEST_execute( led_test, "LEDs", 1 ); } printf( "\n***ALL Tests Passed***\n" ); SW_BREAKPOINT; Fonction Test Led.c * Copyright 2006 by Spectrum Digital Incorporated. * All rights reserved. Property of Spectrum Digital Incorporated. */ * LED Test * #include "evmdm6437_led.h" /* ------------------------------------------------------------------------ * * * * led_test( ) * * Running Four LED test * * * * ------------------------------------------------------------------------ */ Int16 led_test( ) { Int16 i, j; /* Initialize the LED module */ EVMDM6437_LED_init( ); /* Running Four LED test */ for ( j = 0 ; j < 5 ; j++ ) { for ( i = 0 ; i < 4 ; i++ ) { if ( EVMDM6437_LED_on( i ) ) return 1; } _waitusec( 125000 ); for ( i = 0 ; i < 4 ; i++ ) { if ( EVMDM6437_LED_off( i ) ) return 2; } _waitusec( 125000 ); } /* Turn on all Four LEDs to indicate a PASS */ for ( i = 0 ; i < 4 ; i++ ) EVMDM6437_LED_on( i ); 8 Mohammed KHALDOUN TP DSP et Applications 2020/2021 return 0; } Fichier Linker.cmd * Copyright 2006 by Spectrum Digital Incorporated. * All rights reserved. Property of Spectrum Digital Incorporated. */ * Linker command file * -l rts64plus.lib -l ..\..\lib\evmdm6437bsl.lib -stack -heap 0x00001000 0x00001000 /* Stack Size */ /* Heap Size */ MEMORY { L2RAM: o = 0x10800000 l = 0x00020000 DDR2: o = 0x80000000 l = 0x10000000 } SECTIONS { .bss > L2RAM .cinit > L2RAM .cio > L2RAM .const > L2RAM .data > L2RAM .far > L2RAM .stack > L2RAM .switch > L2RAM .sysmem > L2RAM .text > L2RAM 9 Mohammed KHALDOUN TP DSP et Applications 2020/2021 16- Construction du projet ’’Build’’ Build réussi 10 Mohammed KHALDOUN TP DSP et Applications 2020/2021 17 - Dans’Debug’ lancer Connect pour connecter CCS à la carte DM6437EVM La plateforme est maintenant connectée à CCS 11 Mohammed KHALDOUN TP DSP et Applications 2020/2021 18 -Chargement du fichier exécutable par ’’Load program’’ 19- Le fichier exécutable ’’led.out’’ est logé dans le répertoire Debug 12 Mohammed KHALDOUN TP DSP et Applications 2020/2021 20- Ouvrir du fichier exécutable ’’led.out’’ 21- Le fichier ’’led.out ’’ est chargé en mémoire pour l’exécution 13 Mohammed KHALDOUN TP DSP et Applications 2020/2021 22- Dans Debug, lancer ’’run’’ pour l’exécution 14 Mohammed KHALDOUN TP DSP et Applications 2020/2021 L’exécution est réussie ’’ voir ’’sorties LEDs de la carte DM6437EVM II-Tests fonctionnels périphériques de la plateforme DM6437EVM Objectifs : s’assurer du bon fonctionnement des principaux périphérique de la plateforme Travail demander : 1. Créer un répertoire de travail portant votre nom de votre choix ’’Mon_Projet_DSP’’ par exemple ; 2. Sous le répertoire C\CCStudio_v3.3\boards, copier le répertoire ’’evmdm6437_v2’’ dans votre répertoire de travail. 3. Dans le répertoire ’’evmdm6437_v2’’, renommer le projet LED sous un autre nom pour ne pas altérer les fichiers originaux, puis lancer l’exécution de votre nouveau projet. 15 Mohammed KHALDOUN TP DSP et Applications 2020/2021 4. Dans votre nouveau projet, Changer le code C pour assurer l’allumage des LEDs pendant 1.5 secondes. 5. Même travail pour le projet dip_pswich. 6. Même travail pour le projet video_colorbars. 7. Même travail pour tester le codec Audio. 16 Mohammed KHALDOUN TP DSP et Applications 2020/2021 Partie 2 : Traitement d’un signal audio On souhaite traiter un signal audio émanant d’un microphone professionnel ou d’un dispositif multimédia, fournissant des signaux audios stéréo (deux canaux droit et gauche) jusqu’à 22,050 kHz. La figure 1 représente un exemple de modèle adopté Figure 1 : Traitement d’un signal audio 1. Préparation a. On désire garder sur le canal droit les signaux de fréquences supérieures à f1 Hz et sur le canal gauche les signaux de fréquences inferieures à f2 KHz. Compléter le modèle en plaçant des filtres adéquats (et en spécifiant leur type) sur les deux canaux. Justifier votre réponse. b. Donner les fonctions de transfert π»π·ππππ‘π (z) et π»πΊππ’πβπ (z) des filtres numériques correspondants, à partir des fonctions de transfert π»π·ππππ‘π (p) et π»πΊππ’πβπ (p) des filtres analogiques du premier ordre (cellule RC par exemple). c. Donner le modèle du filtre sous forme de schéma block, en faisant apparaitre : les coefficients les multiplieurs les additionneurs et les lignes à retard. d. Donner les expressions littérales des coefficients du filtre du canal droit en fonction de la fréquence d’échantillonnage Fe (à choisir) et la fréquence de coupure Fc (que vous estimez valable). e. Donner une application numérique des coefficients du filtre retenu. 2. Modélisation, simulation et d’implémentation sur plateforme DSP : a. Donner le modèle Simulink du système étudié et reporter les valeurs des coefficients des filtres. b. Faire une simulation en virgule flottante et conclure. c. Faire une simulation en virgule fixe et conclure. d. Adapter les modèles précédents pour une implémentation sur plateforme DSP DM6437EVM sachant que l’ADC génère à sa sortie des données codées sur 16 bits signés in16 et le DAC accepte sur ses entrées des données 16 bits signés int16) . e. Déployer le modèle en temps réel sur DSP et conclure. 17 Mohammed KHALDOUN TP DSP et Applications 2020/2021 Partie 3 : Synthèse de signaux numériques On souhaite générer sur DSP (pour un système de démodulation numérique) deux signaux sinusoïdaux orthogonaux (sinus et cosinus), à partir d’une fréquence d’échantillonnage Fe. Le principe consiste à stoker en mémoire de profondeur 2N, les 2N échantillons d’une sinusoïde sin(Σ¨). N étant le nombre de bits nécessaire pour le codage d’une période. N désigne aussi la taille en bits de l’ACCIMULATEUR_ PHASE. Pour la synthèse d’un signal de période fréquence FOUT, il suffit de lire la mémoire avec un pas donné. Autrement dit, incrémenter l’ACCUMULATEUR_PHASE avec un INCREMENT_ PHASE adéquat. Figure 2 1. Donner l’expression de la fréquence de sortie, FOUT, en fonction de : INCREMENT_PHASE, Fe et N. 2. Calculer l’incrément de phase Delta PHI nécessaire pour avoir une fréquence de sortie de 320 Hz à partir d’un Fe= 8000 Hz et une résolution de fréquence de 0.05 Hz 3. Adapter le modèle pour une implémentation sur la plateforme DSP DM6437EVM sachant que l’ADC et le DAC audio du DSP n’acceptent que des données 16 bits signés int16 ; 4. Déployer le modèle en temps réel sur DSP et conclure. 5. Modifier le modèle pour un fonctionnement en modulateur de fréquence. Faire la simulation nécessaire, déployer le modèle sur DSP et conclure. 18 Mohammed KHALDOUN