TP1 DSP

Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

République Algérienne Démocratique et Populaire

Ministère de l’enseignement Supérieur et de la Recherche Scientifique


Université des Sciences et de la Technologie Houari Boumediene

Faculté de génie électrique

Domaine Sciences et Technologie


Electronique systèmes
embarquée

Compte rendu du
TP1 :DSP
Présentation et prise en mains de l’outil de développement
CCS V 5.3 et Utilisation des Entrées / Sorties
GPIO DSP TMS320F28335

Par :

 Nom et Prénom : LADJOUZI Meriem
 Section / Sgrp : ESE / Sgrp 02
 Matricule : 191931069525

 Nom et Prénom : NOUIOUA Maroua
 Section / Sgrp : ESE / Sgrp 02
 Matricule : 191931069055

2022/2023
Proposition 1:

Proposition 2:
void main(void)
{
unsigned int i;
InitSystem(); // Basic Core Initialization

DINT; // Disable all interrupts

Gpio_select(); // GPIO9, GPIO11, GPIO34 and GPIO49 as output


// to 4 LEDs at Peripheral Explorer)

while(1)
{
for(i=0;i<6;i++)
{
switch (i)
{
case 0:
{
GpioDataRegs.GPASET.bit.GPIO9 = 1;
GpioDataRegs.GPACLEAR.bit.GPIO11 = 1;
GpioDataRegs.GPBCLEAR.bit.GPIO34 = 1;
GpioDataRegs.GPBCLEAR.bit.GPIO49 = 1;
break;
}
case 1:
{
GpioDataRegs.GPACLEAR.bit.GPIO9 = 1;
GpioDataRegs.GPASET.bit.GPIO11 = 1;
GpioDataRegs.GPBCLEAR.bit.GPIO34 = 1;
2
GpioDataRegs.GPBCLEAR.bit.GPIO49 = 1;
break;
}
case 2:
{
GpioDataRegs.GPACLEAR.bit.GPIO9 = 1;
GpioDataRegs.GPACLEAR.bit.GPIO11 = 1;
GpioDataRegs.GPBSET.bit.GPIO34 = 1;
GpioDataRegs.GPBCLEAR.bit.GPIO49 = 1;
break;
}
case 3:
{
GpioDataRegs.GPACLEAR.bit.GPIO9 = 1;
GpioDataRegs.GPACLEAR.bit.GPIO11 = 1;
GpioDataRegs.GPBCLEAR.bit.GPIO34 = 1;
GpioDataRegs.GPBSET.bit.GPIO49 = 1;
break;
}
case 4:
{
GpioDataRegs.GPACLEAR.bit.GPIO9 = 1;
GpioDataRegs.GPACLEAR.bit.GPIO11 = 1;
GpioDataRegs.GPBSET.bit.GPIO34 = 1;
GpioDataRegs.GPBCLEAR.bit.GPIO49 = 1;
break;
}
case 5:
{
GpioDataRegs.GPACLEAR.bit.GPIO9 = 1;
GpioDataRegs.GPASET.bit.GPIO11 = 1;
GpioDataRegs.GPBCLEAR.bit.GPIO34 = 1;
GpioDataRegs.GPBCLEAR.bit.GPIO49 = 1;
break;
}
default:
{
GpioDataRegs.GPACLEAR.bit.GPIO9 = 1;
GpioDataRegs.GPACLEAR.bit.GPIO11 = 1;
GpioDataRegs.GPBCLEAR.bit.GPIO34 = 1;
GpioDataRegs.GPBCLEAR.bit.GPIO49 = 1;
break;
}
} // end switch
delay_loop(1000000);
} // end for
} // end while(1)
} // end main

void delay_loop(long end)


{
long i;
for (i = 0; i < end; i++)
{
asm(" NOP");
EALLOW;
SysCtrlRegs.WDKEY = 0x55;
SysCtrlRegs.WDKEY = 0xAA;
EDIS;
3
}
}

void Gpio_select(void)
{
EALLOW;
GpioCtrlRegs.GPAMUX1.all = 0; // GPIO15 ... GPIO0 = General Puropse I/O
GpioCtrlRegs.GPAMUX2.all = 0; // GPIO31 ... GPIO16 = General Purpose I/O
GpioCtrlRegs.GPBMUX1.all = 0; // GPIO47 ... GPIO32 = General Purpose I/O
GpioCtrlRegs.GPBMUX2.all = 0; // GPIO63 ... GPIO48 = General Purpose I/O
GpioCtrlRegs.GPCMUX1.all = 0; // GPIO79 ... GPIO64 = General Purpose I/O
GpioCtrlRegs.GPCMUX2.all = 0; // GPIO87 ... GPIO80 = General Purpose I/O

GpioCtrlRegs.GPADIR.all = 0;
GpioCtrlRegs.GPADIR.bit.GPIO9 = 1; // peripheral explorer: LED LD1 at GPIO9
GpioCtrlRegs.GPADIR.bit.GPIO11 = 1; // peripheral explorer: LED LD2 at GPIO11

GpioCtrlRegs.GPBDIR.all = 0; // GPIO63-32 as inputs


GpioCtrlRegs.GPBDIR.bit.GPIO34 = 1; // peripheral explorer: LED LD3 at GPIO34
GpioCtrlRegs.GPBDIR.bit.GPIO49 = 1; // peripheral explorer: LED LD4 at GPIO49
GpioCtrlRegs.GPCDIR.all = 0; // GPIO87-64 as inputs
EDIS;
}

void InitSystem(void)
{
EALLOW;
SysCtrlRegs.WDCR = 0x0028; // Watchdog enabled, 4.3milliseconds
SysCtrlRegs.SCSR = 0x0000; // Watchdog will cause a reset
SysCtrlRegs.PLLSTS.bit.DIVSEL = 2;
SysCtrlRegs.PLLCR.bit.DIV = 10; // 30MHz * 10 / 2 = 150 MHz SYSCLK
SysCtrlRegs.HISPCP.all = 0x0001; // SYSCLK / 2
SysCtrlRegs.LOSPCP.all = 0x0002; // SYSCLK / 4
SysCtrlRegs.PCLKCR0.all = 0x0000;
SysCtrlRegs.PCLKCR1.all = 0x0000;
SysCtrlRegs.PCLKCR3.all = 0x0000;
SysCtrlRegs.PCLKCR3.bit.GPIOINENCLK = 1;
EDIS;
}
//===========================================================================
// End of SourceCode.
//===========================================================================

Explication du Programme:
On déclare 3 fonctions :
-GPIO_select : pour configuré les broches
-InitSystem: pour le systéme (configuré la fréquence 150 MHZ de DSP)
-delay_loop: pour créer une temporisation
- La fonction principale void main

Pour la première fonction :


-On va configuré l’horloge on a GPIO9,11 qui sont de groupe A et GPIO34,49 qui sont de
groupe B,On met 0 a l’ensemble de broche de groupe A sous groupe 1(9et 11) avec
4
l’instruction( .all)
-les instructions s’exécute de manière séquentielle donc on va utiliser les ports de groupe A
comme étant des sorties et pour GPIO34 ,49 on les met comme des entrées
Pour configuré le séléctionneur de GPIO34 sur le GPBMUX1 et pour GPIO49 ca sera le
GPBMUX2.

Pour la deuxieme fonction:


Dans module clock on va multiplier par 10 puis diviser sur 2 c’est a dire
30*10=300MHZ et puis 300/2= 150 MHZ

Pour la fonction principale:


Dans la void main on va initialiser un variable de type counter a 0, on met notre premiere
fonction pour initialiser le coeur de mon DSP

-Pour le while (1) c’est une boucle qui va tourner a l’infinie et la variable counter va
s’incrémenter chaque 100 ms
-Pour la 1 er condition c’est pour allumer LED ,on utilise le GPxCLEAR pou mettre a 0 et
je remplace x par A donc mettre GPIO9 a l’état logique 0v (état bas) donc LED
s’éteindra ,et c’est la même chose pour les autres broches connecter avec les 3 LED qui
restent
-Pour la période 100 ms les LEDS s’allument s’excessivement(l’une aprés l’autre)
- On met dir a 0 donc il commence a s’incrémenter jusqu’a qu’il arrive a LED8 ici donc il
va s’inverser car les LEDS sont 1,2,4,8.

Réponse a la qst Demandé dans le TP:


La méthode pour déterminer une période trés précise il faut utiliser les timers internes
Le Timer peut être piloté par une horloge externe à la broche d'entrée de timer (TINPL) ou
par la fréquence d'horloge de division de l'horloge interne. L'horloge interne est
généré par le contrôleur PLL1 et est une version divisée du CPU horloge.

5
Conclusion:
Donc a la fin on aura un espace de jeux de lumière des LED qui s’éteindrent et qui
s’allument

You might also like