Projet DSP Contrôleur TMS320LF2407, voltmètre, convertisseur analogique, numérique, mode de transmission série, module EVA
Pour mener à bien ce projet, nous aurons donc besoin :
- d'un DSP contrôleur TMS320LF2407 avec le boitier permettant d'accéder aux entrées/sorties ;
- d'un convertisseur analogique/numérique ;
- d'un afficheur série à 4 digits.
-> Détaillons l'afficheur série à 4 digits afin de mieux comprendre son fonctionnement :
L'afficheur série comporte 4 afficheurs 7 segments, constitués de 8 LEDs, dont les positions permettent par allumage ou extinction d'afficher des chiffres et certaines lettres.
Voici la représentation d'un afficheur 7 segments ainsi que la table correspondante à celui-ci...
[...] Ensuite, on reset l'ADCTRL2 et son flag, puis on stocke le résultat de la conversion dans une variable resultat Séparation des chiffres Maintenant qu'on a la valeur de la tension d'entrée (comprise entre 0V et 3,3V) stockée dans resultat, il faut séparer les chiffres des unités, des dixièmes, des centièmes et des millièmes afin de les afficher sur les 4 digits de l'afficheur. Dans un premier temps, on fait un produit en croix, pour trouver resultat2 (on multiplie par 3300 au lieu de 3,3 pour plus de précision. Par conséquent, resultat2 sera déclaré comme en long et non en int). Ensuite, pour l a séparation de chaque digit, on effectue des divisions et des modulos afin d'obtenir chaque chiffre séparément les uns des autres, puis on les sauvegarde dans les variables correspondantes. [...]
[...] Ainsi, on tronque la valeur pour ne garder que ce qui nous intéresse. Prenons un exemple : Pour une tension en entrée du CAN de 1.4 on a resultat = 433. Si on suit notre algorithme, on obtient : Variable 𝒓𝒆𝒔𝒖𝒍𝒕𝒂𝒕𝟐 𝒖𝒏𝒊𝒕 𝒅𝒊𝒙 𝒄𝒆𝒏𝒕 𝒎𝒊𝒍 Calcul 433 3300 = 𝑟𝑒𝑠𝑢𝑙𝑡𝑎𝑡 = = 𝑟𝑒𝑠𝑢𝑙𝑡𝑎𝑡 = = = (𝑟𝑒𝑠𝑢𝑙𝑡𝑎𝑡 1000) ( 1000) = = = ((𝑟𝑒𝑠𝑢𝑙𝑡𝑎𝑡 1000)% 100) = 1000) % 100) = 6.7 Valeur 𝑟𝑒𝑠𝑢𝑙𝑡𝑎𝑡2 = 1396.7 𝑢𝑛𝑖𝑡 = 1.3967 𝑑𝑖𝑥 = 3.967 𝑐𝑒𝑛𝑡 = 9.67 𝑚𝑖𝑙 = 6.7 On a donc réussi à séparer chaque digit - Contrôle d'une LED Nous avons vu comment on contrôle l'allumage ou l'extinction d'une LED, et le fait de devoir cadencer l'envoi de bit avec l'entrée SYN. [...]
[...] Au final, nous avons un programme qui tourne parfaitement bien et qui remplit l'objectif du TP qui était d'utiliser un afficheur 7 segments et des ports d'entrée/sortie pour afficher la tension mesurée par un convertisseur analogique/numérique Annexe - Programme complet #include "x24x_inc.h" #define taille 2000 #define Bit(n,x) fichier contenant les déclarations des registres du DSP Exemple de déclaration avec define ((x>>n)&0x0001) test le bit n de Initialisation du processeur void init_DSP(unsigned int PSWS, unsigned int DSWS, unsigned int ISWS) { asm(" SETC INTM"); Désactive globalement les interruptions SCSR1 = 0x0001; Désactive tous les périphériques. RAZ flag ILLADR SCSR2 = (SCSR2 0x000B) & 0x000F; Config. [...]
[...] GPTCONA - Réservé Read only Read only Réservés Start fin de comptage Pas de comparateur On n'utilise pas le timer 2 de bit Valeur Explication de bit Valeur Explication Réservés 10 - On n'utilise pas le timer 2 T1PIN en active low T1CNT : On le réinitialise à 0 T1CNT = 0 T1PR : On veut un délai de 200μs fECH = f CPU T1PR = ECH TECH = 200×10−3 = 𝟓𝐇𝐳, calculons maintenant T1PR : 1 = 𝟕. 𝟗𝟗 𝟏𝟎 𝟔 pour k = 1. On est largement au-dessus du maximum (65 535). Cherchons donc le k qui conviendrait : 8 122, On prend donc le k juste au-dessus, soit k = 128. [...]
[...] Voici la représentation d'un afficheur 7 segments ainsi que la table correspondante à celui-ci : du bit dans l'octet du segment de l'afficheur DP G F E D C B A Afin d'allumer un segment, il faut lui faire correspondre un 0 dans le mot de commande, et pour l'éteindre, il faut lui faire correspondre un 1. Sachant cela, on peut faire correspondre un code hexadécimal à chaque caractère : Caractère à A B C afficher Code C0 F9 A4 B F A7 hexadécimal D E F A 8E Remarque : Les codes donnés dans ce tableau n'affichent pas la virgule, pour l'afficher, il suffira de mettre le bit à 0. Pour réduire le nombre de connexions, on utilise un mode de transmission série. [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture