LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur.

Slides:



Advertisements
Présentations similaires
ARCHITECTURE INTERNE d’un MICROPROCESSEUR
Advertisements

Système d’exploitation : Assembleur
LES SYSTEMES AUTOMATISES
LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE
L'Unité centrale (CPU) Le CPU doit être rapide (mesuré en temps de CPU) UNITE DE CONTROLE Générer les signaux de control/temps Contrôler le décodage/exécution.
CHAftITREI ARCHITECTURE de BASE. Modèle de Von Neumann Langage d’assemblage1 John Von Neumann est à l'origine d'un modèle de machine universelle de traitement.
1 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 Cours microprocesseurs.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Fonctions ● Namespace ● Tests ● Boucles ● Pointeurs, références.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Types et opérations fondamentales ● Tests ● Boucles ● Pointeurs, références.
François Médevielle - UPSTI -. Introduction  Découvrir les éléments constitutifs d’un « ordinateur »  Comprendre l’organisation fonctionnelle d’une.
Programmation des microcontrôleurs PIC ENSET d'Oran / IUFM Aix Marseille - mai Les microcontrôleurs PIC.
Mode noyau Appels Systèmes Interruptions Grégory Seront Institut Paul Lambin
L’ordinateur et ses composants
Module de gestion des tournées de livraison
Acquisition Rapide Multivoies
1- Introduction :   En télécommunication , le signal transportant une information doit passer par un moyen de transmission entre un émetteur et un récepteur.
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Représentation des nombres réels
Quelques Termes INFORMATIQUE ? ORDINATEUR ( Système Informatique)?
Visite guidée - session 3 Les postes de charge et les gammes
Logique Combinatoire.
Pointeurs et langage C.
L’ordinateur: comment ça marche ? Ou comment avoir des idées justes sur le sujet... PCI SV I - STU I Alain Mille UFR d’Informatique UCBL.
Opérateurs Toute donnée informatique est stockée en mémoire sous la forme d'une combinaison de bits (mot machine). Les opérateurs bits permettent de modifier.
Représentation de l’information en binaire:
Chapitre 01: Structure d'un module VHDL
S.P.I BUS série synchrone à grande vitesse Cliquez ici pour avancer
Préparer par : Intissare et kaoutare
Evaluation de l'UE TICE 1 TRANSMISSION DES DONNEES INFORMATIQUES SABATIER Fabienne 1ère année de sciences du langage/sciences de l’éducation.
Fonctionnement de l'unité centrale
Evolution des machines Introduction à l’ARDUINO
Architecture de machines Le microprocesseur
Synthèse et implémentation de circuits arithmétiques sur FPGA
Traitement du Signal TC 1 6. Architecture des DSP 1. Caractéristiques générales 2. Unités de calcul 4. Architecture mémoire 5. Architecture pipeline.
Traitement du Signal TC 1 6. Architecture des DSP 1. Caractéristiques générales 2. Unités de calcul 4. Architecture mémoire 5. Architecture pipeline.
Codage et Représentation de l’Information
Jelassi Khaled Systèmes micro-programmés 1 Les systèmes micro-programmés Principe: Un système microprogramme est donc constitué de:  Un microprocesseur.
Programmation en C++ C++ de base
Traitement du Signal TC 6. Architecture des DSP 1. Caractéristiques générales 2. Unités de calcul 4. Architecture mémoire 5. Architecture pipeline 1.
Evaluation de l'UE TICE 1 TRANSMISSION DES DONNEES INFORMATIQUES SABATIER Fabienne 1ère année de sciences du langage/sciences de l’éducation.
Carte mère AD77 infinity : assemblage d'un ordinateur de bureau
Interruptions GIF-1001 Ordinateurs: Structure et Applications, Hiver 2015 Jean-François Lalonde.
À l’intérieur de l’ordinateur
Architecture de machines Le microprocesseur Cours
Bus et adressage GIF-1001: Ordinateurs: Structure et Applications
1 Copyright © 2004, Oracle. Tous droits réservés. Extraire des données à l'aide de l'instruction SQL SELECT.
Architecture de base d’un ordinateur
Communications séries synchrones
Communications séries synchrones
ARCHITECTURE DES ORDINATEURS
S.P.I BUS série synchrone à grande vitesse Cliquez ici pour avancer
Introduction aux microprocesseurs
SYSTèMES à évènements discrets
L’ordinateur: comment ça marche ? Ou comment avoir des idées justes sur le sujet... PCI SV I - STU I Alain Mille UFR d’Informatique UCBL.
1 Décodage d’adresses et mémoires Introduction Définition, Caractéristiques des mémoires Classification des mémoires La mémoire centrale Caractéristiques.
Chapitre 7 : Les mémoires
1 PROJET D’INFORMATIQUE les composants de l'ordinateur Gammoudi Rayéne 7 B 2.
TGV Trigger Générique Vme Face avant Tri d’événements de physique
BIOS- OS Environnement logiciel PC / Traitement numérique / Contrôle.
Architecture d’un ordinateur
1690 : Pascal invente la machine à calculer entièrement mécanique (addition et soustraction) 1800 : Jacquart invente le métier à tisser avec cartes perforées.
1 Architecture des ordinateurs Généralités. 2 Définition Informatique = Information + Automatique Ce terme a été introduit en France. Il est très répandu.
Commande embarquée de moteurs
Chapitre 2 : Représentation de l’information dans la machine Introduction Représentation des nombres négatifs –Signe / valeur absolue –Complément à 1 –Complément.
Evolution des machines Introduction au MSP-EXP432
Fonctionnement de l'unité centrale (rappels ? de 1ère Année)
Codification et représentation de l’information Enseignant: Mahseur mohammed Groupe FB: mi2016ua1 Chaine YT: Cours informatique.
Introduction aux Circuits Reconfigurables et FPGA.
Transcription de la présentation:

LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur

 Généralités sur les DSP - Caractéristiques - Structures - Comparaison entre  Processeur et DSP  Etude du processeur TMS 320LF2407  Application à la carte d’évaluation eZdsp LF Architecture - Gestion des interruptions - Programmation  Exemples de programmes  Codage des nombres  Applications LES PROCESSEURS DU SIGNAL (DSP) DANS LE CONTRÔLE NUMERIQUE Étude d’un DSP dédié au contrôle moteur

Définition  Un DSP :  Processeur particulier; - Intègre un ensemble de fonctions spéciales; - Bonnes performances; - Généralement conçu pour être utilisé sous la forme d’un monocircuit;  Intègre: - mémoire RAM et ROM - ports série rapides - ports d ’entrées / sorties  Il est destiné à être «embarqué»; Introduction

Avantages  Souplesse de la programmation;  Stabilité;  Reproductibilité; Introduction

Le marché en 1996 selon Forward Concepts Principaux constructeurs Texas Instruments 45% AT&T 29% Analogue Device 11% Motorola 8% Autres 7% Introduction

Domaines d’application  Télécommunications  Son  Vidéo  Instrumentation:  analyseurs de spectres;  générateurs de fonctions;  analyse des signaux et des images biologiques;  radar et sonar  Systèmes de commande:  commande de moteurs électriques;  synthèse des correcteurs de servomécanisme  équipement automobile; Introduction

Soit: Le (par ex.) a besoin de:  10 cycles d’horloges pour effectuer une addition  70 cycles d’horloges pour effectuer une multiplication Les DSP disposent de fonctions optimisées: Il peuvent effectuer simultanément les 3 opérations suivantes:  lecture d’une donnée en mémoire  effectuer une multiplication puis une addition  écrire en mémoire le résultat soit au total 80 cycles d’horloges Cette opération s’appelle MAC et prend 1 cycle d’horloge Différences entre un  Processeur et un DSP

Vitesse de calcul: Nombre d ’instructions par seconde Performances des DSP

Structure Von Neuman Différences entre un  Processeur et un DSP Mémoire Programme et Données Entrées Sorties Unité arithmétique et logique Adresse Donnée

Structure Harvard Différences entre un  Processeur et un DSP Mémoire Programme Entrées Sorties Unité arithmétique et logique Adresse Donnée Mémoire Données Adresse Donnée

Structure Harvard Modifiée Différences entre un  Processeur et un DSP Mémoire Données Entrées Sorties Unité arithmétique et logique Adresse Donnée MUX Mémoire Programme MUX

 Structure Von Newman   Processeurs  Structure Harvard   Processeurs spécialisés : DSP  Structure Harvard modifiée  Coût plus faible Différences entre un  Processeur et un DSP

Temps d ’accès à la mémoire: Un DSP peut simultanément: - chercher en mémoire une instruction et ses données - réaliser une opération MAC - ranger en mémoire le résultant du MAC précédent. gain de temps évident. Performances des DSP

Modes d’adressages des données: - Unité logique de génération d’adresse - travaille en parallèle avec UAL. Performances des DSP

Le choix dépend : - de la puissance de traitement nécessaire - du type de DSP à utiliser - des ressources mémoire utilisées -des besoins d’un ou de plusieurs Timers internes, de ports série - du coût par rapport au rapport « performance/prix » - de la qualité de la documentation - de la qualité du système de développement utilisé -de la possibilité d ’utiliser un langage de haut niveau ….etc Choix d ’un DSP

Basée sur la structure de Harvard modifiée: - les bus programme et données sont séparés - Accès simultané aux instructions programme et aux données Architecture du TMS 320 LF2407 Étude du processeur TMS 320 LF 2407

P bus I/F Event Managers (EVA and EVB) SPI SCICANWD ADC control Interrupts reset,etc I / O registers ADC P bus

Bus Programme Bus Données Registre instruction UA des pointeurs Registres pointeurs: AR0…AR7 Prédécaleur UAL Générale Accumulateur Postdécaleur Multiplieur Registre TREG Registre PREG Postdécaleur Unité centrale de calcul

MUX TREG Multiplieur 16x16 PREG Décalage -6,0,1,4 bits (Pscaler)Décalage 0-16bits (Prescaler) ALU Accumulateur Décalage 1-7 bits (Postscaler) C Bus de Données en écriture DWEB Bus de Données en lecture DRDB Bus de Programme en lecture PRDB

ARB ARP MUX Registre Instruction MUX ARAU AR7 AR6 AR5 AR4 AR3 AR2 AR1 AR0 Bus adresses données Bus de Données en lecture Générateur d ’adresses

Flash EEPROM DARAM B0 DARAM B1 / B2 Test Emulation Interface Mémoire Externe Géné. Temps d’attente Gestionnaire d’événement Timers Unités comparaison Captue /QEP Watchdog Interface SérieConvertisseur A/D Module Horloge Module Interface système ARAU Registre d’état Registres Aux. Registres mappés en mémoire Pré-décaleur ALU Accumulateur Post-décaleur Multiplieur TREG PREG Post-décaleur Registre Instruction Contrôleur Programme Bus Données Bus Programme Bus Périphérique

Le LF2407 est organisé autour de 3 types de mémoire  Mémoire programme: 64 Kmots de 16 bits  Mémoire données internes: 64 Kmots de 16 bits, parmi lesquels: 3 blocs de mémoire double accès (DARAM) B0, B1, B2 (544 mots de 16 bits)  Espace des entrées / sorties: 64 Kmots de 16 bits, pour l’interfaçage avec les périphériques extérieurs Au total un espace mémoire de 192 Kmots Architecture du TMS 320LF2407

Mémoire Programme: - Programme à exécuter - Le bloc B0 peut être en mémoire programme (CNF): CNF=0: Les 544 mots (B0+B1+B2)  mémoire données CNF=1: - Les 256 mots du bloc B0  mémoire programme - Les 288 mots de B1 et B2  mémoire données - Mémoire Flash (MP/MC): Se comporte comme une ROM Formée de 32 Kmots de 16 bits MP/MC = 0 :  le DSP est en mode  contrôleur MP/MC = 1 :  le DSP est en mode  processeur Bloc B0: 256 mots de 16 bits FE00h à FFFFh Bloc B1: 256 mots de 16 bits 0300h à 03FFh Bloc B2: 32 mots de 16 bits 0060h à 007Fh Architecture du TMS 320 F240

Mémoire Données internes: Comprend 3 Blocs de mémoire double accès - Le bloc B0 configurable en mémoire programme ou données selon la valeur du bit CNF - Les blocs B1 et B2 sont réservés à la mémoire données seulement  le mode d’adressage peut être direct ou indirect  en mode direct: adressage par blocs de 128 mots appelé page de données Il existe 512 pages de 0 à 511 Accès à une page: pointeur de page DP du registre d’état ST0  en mode indirect, adressage par l’un des 8 registres auxiliaires AR n Architecture du TMS 320 F240

Contenu de la page 0:  2 registres accessibles sans délai d’attente - registre de masques d’interruptions (IMR) - registre de drapeaux d’interruptions (IFR)  zone mémoire de travail: Bloc B2 (RAM: 32 mots de 16 bits)  une zone réservée pour le test et l’émulation Organisation de la mémoire

Modes d ’adressage  On dispose de 3 modes d ’adressage:  direct paginé  indirect et indirect indexé  immédiat  L ’adressage direct utilise le registre de page DP (9 bits de poids fort de l ’adresse)  L ’adressage indirect utilise les registres - pointeurs ARn  L ’adressage immédiat utilise le compteur ordinal pour repérer une donnée en mémoire de programme

Mode direct, adressage par blocs de 128 mots appelés pages de données Il existe 512 pages de 0 à 511 Accès à une page: pointeur de page DP du registre d’état ST0 Modes d ’adressage ldp#1 ; selection page 1 add00F0h ; le contenu de l’adresse 00F0h est ajouté au contenu de l’Accu add#0ED83h ; ajout de ED83 au contenu de l’Accu.

Mode indirect, adressage par l’un des 8 registres auxiliaires AR n LAR AR1, # 00F0h ; AR1 pointe sur le contenu de la mémoire 00FH MAR *, AR1 ; choix de AR1, ARP=1 ADD * ; le contenu de la mémoire pointée par AR1 est ; ajouté à celui de l’Accumulateur Modes d ’adressage

Lorsqu’un registre-pointeur est utilisé, AR(ARP) représente toujours l’adresse d ’un des opérandes Modes d ’adressage

Registres d’état Le processeur dispose de 2 registres d’état ST0 et ST1 ARP: pointeur d’adresse ( registre auxiliaire courant) OV : indique la présence d’un dépassement OVM: le résultat est saturé lors d’un dépassement si 1 INTM: masquage global des interruptions si 1 DP: permet l’adressage par page Registre ST0

Registres d’état ARB: stocke le précédent ARP CNF: indique si la mémoire à double accès (B0) est en mode prog.ou données TC: bit indiquant le résultat d’un test logique SXM: (Sign eXtension Mode) extension du bit de signe lors des décalages à droite C: stocke le résultat de la retenue lors d’une opération arithmétique XF: (eXternal Flag) état de la broche XF du processeur PM: mode de décalage des produits 00: Aucun décalage PM01: Décalage d’un bit à gauche 10: Décalage de 4 bits à gauche 11: Décalage de 6 bits à droite avec extension du signe Registre ST1

Gestionnaire d’évènement 2 Gestionnaires d’évènements: EVA et EVB fonctionnent de manière identique Chacun comprend: 2 Timers; 3 Unités de comparaison; 1 Module de génération de signaux PWM avec temps mort et possibilité de SVPWM; 3 Unités de capture; 1 Circuit « Quadature Encoder Pulse : QEP » adapté aux codeurs incrémentaux pour la mesure de position Une logique de gestion des interruptions

Event Manager Block Diagram (EVA) PWM Circuits Output Logic GP Timer 1 Compare GP Timer 1 GP Timer 2 Compare GP Timer 2 Compare Unit 1 Compare Unit 2 Compare Unit 3 Capture Units MUX QEP Circuit Output Logic EV Control Registers / Logic Reset PIE TCLKINA / TDIRA / 2 ADC Start Data Bus CLK DIR T1CMP/T1PWM T2CMP/T2PWM PWM1 PWM2 PWM3 PWM4 PWM5 PWM6 CAP1/QEP1 CAP2/QEP2 CAP3/QEPI1

 Caractéristiques du LF2407: Fréquence 40 MHz : 40x10 6 instructions par seconde (40 MIPS) 2x2 Timers 2x3 unités de comparaison:  2x 6 signaux PWM (MLI) Circuits gérant les signaux PWM:  Fonctionnement en MLI vectorielle (SVPWM)  Gestion des temps morts 2x3 Compteurs d ’impulsions « Capture units » 2 modules avec des entrées « QEP » compatible avec des codeurs incrémentaux Faible niveau de tension : 3,3 V Récapitulatif

Les Timers 2 Timers par module  4 Bases de temps indépendantes: Génération d’une période d’échantillonnage dans un système de contrôle Bases de temps pour les compteurs d ’impulsions Bases de temps pour les circuits QEP (seulement les timers 2 et 4) Bases de temps pour la génération des signaux MLI  Chaque timer comprend: un registre compteur TxCNT accessible en lecture et écriture un registre de contrôle GPTCON un registre de comparaison TxCMPR accessible en lecture et écriture un registre période TxPR un registre de contrôle TxCON un diviseur de fréquence applicable aux horloges interne et externe une logique gérant les interruptions et leur contrôle une sortie (TxPWM / TxCMP) correspondant au résultat de la comparaison (TxCMPR)

MUX T2PR ou T4PR Registre période (Dédoublé) T1PR ou T3PR Registre période (Dédoublé) Logique de comparaison TxCMPR Registre comparaison (Dédoublé) Géné. dents scie Sym. / Asym. GPTCON Registre ctrl Timer Logique sorties TxPWM TxCNT Compteur Logique de contrôle TxCON Registre de contrôle Horloge CPU interne Démarrage Conversion ADC Drapeaux Interruption (Flags) TCLKINA/B TDIRA/B Fonctionnement des Timers

 TxCON qui détermine:  quel mode de comptage est utilisé;  si le Timer utilise une horloge interne ou externe;  quelle valeur du diviseur de fréquence utiliser;  dans quelle condition le registre de comparaison est rechargé;  si le Timer est valide ou pas;  si l’opération comparaison est valide ou pas;  si les Timers 2 et 4 utilisent leur propre période ou celle du Timer1 et Timer3 Registres de Contrôle des Timers

Registre de contrôle des Timers TxCON Bits 15,14: conditions d’arrêt du Timer Bits 13 : Réservé Bits 12-11: mode de comptage Bit 10-8 : valeur du diviseur de fréquence Bit 7 : Permet de démarrer le Timer 2 (ou le Timer4) en même temps que le Timer1 (ou le Timer3) Bit 6 : Démarrage du Timer Bits 5-4 : source de l’horloge des Timers Bits 3-2 : condition de chargement des registres de comparaison Bit 1 : validation de l’opération comparaison Bit 0 : choix de la période (concerne Timer 2 et 4) Configuration des Timers

 GPTCONA/B:  spécifie les actions à prendre en compte par le Timer;  indique le sens du comptage. Registres de Contrôle des Timers Configuration des Timers

Registre de contrôle des Timers GPTCONA/B Bits 15 : Réservé Bit 14 : Sens de comptage (concerne Timer 2 ou Timer 4) Bit 13 : Sens de comptage (concerne Timer 1 ou Timer 3) Bit : Réservés Bit 10-9 : démarrage du convertisseur ADC par un événement du Timer2 ou Timer 4 Bit 8-7 : démarrage du convertisseur ADC par un événement du Timer1 ou Timer 3 Bit 6 : permet de valider la sortie: comparaison des Timers Bits 5-4 : Réservés Bits 3-2 : polarité de la sortie du Timer 2 ou du Timer 4 Bits 1-0 : polarité de la sortie du Timer 1 ou du Timer 3 Configuration des Timers

 4 Interruptions par Timer:  Overflow: TxOFINT ( Compteur = FFFFh);  Underflow: TxUFINT ( Compteur = 0000h);  Compare match: TxCINT ( Compteur = Val TxCMPR));  Période match: TxPINT ( Compteur = Val (TxPR)); Interruptions Timer

Programmation des Timers 3 modes de fonctionnement sont possibles:  Mode 1: « Continuous up »  Signaux asymétriques  Mode 2: « Continuous up / down »  Signaux symétriques  Mode 3: « Directional up /down »  Signaux asymétriques Mode asymétrique Mode symétrique TxCMPR TxPWM TxCMPR TDIRA/B Mode 3: « Directional up /down »

Programmation des Timers

Exemple: Timer1 en mode asymétrique Période = 200 ns, soit 8*25 ns et Niveau comparaison: 100 ns, soit 4*25 ns

Configuration des Timers T1PR = 8-1=7 T1CMPR = 4-1=3 GPTCONA = b polarité de la sortie: Active High sorties des 2 Timers valides T1CON = b Validation du mode comparaison Recharge registre T1CMPR si compt.=0 Horloge interne Timer1 valide: démarrage Timer1 Mode continuous-up o pération non affectée par l’arrêt de l’émulation Timer1 en mode asymétrique: Période 8*25 ns Niveau comparaison:4*25 ns

Code assembleur: Timer1 en mode asymétrique GPTCONA.set7400h T1CNT.set7401h T1CMPR.set7402h T1PR.set7403h T1CON.set7404h LDP#0E8h SPLK#0042h,GPTCONA SPLK #0007h,T1PR SPLK #0003h,T1CMPR SPLK #0000h,T1CNT SPLK #9042h,T1CON Configuration des Timers

T1PR = 4 T1CMPR = 2 T1CNT = 0 GPTCONA = b polarité de la sortie: active high sorties des 2 Timers valides T1CON= b Validation du mode comparaison Recharge registre T1CMPR si compt.=0 Démarre Timer1 Horloge interne Mode continuous-Up/Down opération non affectée par l’arrêt de l’émulation Configuration des Timers Timer1 en mode symétrique: Période 4*2*25 ns Niveau comparaison: 2*2*25 ns

Configuration des Timers GPTCONA.set7400h T1CNT.set7401h T1CMPR.set7402h T1PR.set7403h T1CON.set7404h LDP#0E8h SPLK#0042h,GPTCONA SPLK#0004h,T1PR SPLK#0002h,T1CMPR SPLK#0000h,T1CNT SPLK#8842h,T1CON Code assembleur: Timer1 en mode symétrique

Gestion des sorties PWM  3 Unités de comparaison par module: compare units 1,2 et 3 dans EVA : Base de temps Timer1 compare units 4,5 et 6 dans EVB : Base de temps Timer3 Chaque unité est associée à 2 sorties PWM : 2x 6 sorties PWM Les registres de contrôle des sorties PWM EVACMPR1CMPR2CMPR3COMCONAACTRA EVB CMPR4CMPR5CMPR6COMCONBACTRB

Programmation des sorties PWM avec un temps mort Bit 15 : sens de rotation de la MLI (PWM) vectorielle Bits : définissent la position des vecteurs tension en MLI vectorielle Bits 11-0 : définissent les polarités des sorties PWM «Compare Action Control Register» ACTRA

Programmation du circuit PWM avec un temps mort Bit 15 : permet de valider l’opération comparaison Bits : définissent les conditions de chargement du registre CMPRx Bit 12 : validation du SVPWM (PWM vectorielle) Bits :définissent les conditions de chargement du registre ACTR Bit 9 : valident les sorties PWM Bit 8 : Etat de la broche PDPINTA Bit 7-0 : Réservés Registre de contrôle du mode comparaison COMCONA

Programmation du circuit PWM avec un temps mort Le temps mort est nécessaire pour éviter les court-circuits dans les structures en pont des onduleurs: Registre de contrôle du temps mort DBTCONA Bits 15-12: Réservés Bits : permet de définir la valeur du temps mort Bit 7 : Validation du temps mort pour PWM5 et PWM6 Bit 6 : Validation du temps mort pour PWM3 et PWM4 Bit 5 : Validation du temps mort pour PWM1 et PWM2 Bits 4-2 : Diviseur de fréquence 000 = x /1100 = x /16 x: Fréquence du CPU 001 = x /2 101 = x / = x /4 110 = x / = x /8 111 = x /32 Bits 1-0 : Réservés

Programmation du circuit PWM avec un temps mort Si DBTCONx [11-8] = m DBTCONx [4-2] correspond à x /p

Circuits PWM associés aux Unités de comparaison Géné Scie Sym / Asym SVPWM MUX Unité Temps mort Logique de sorties ACTRA Compare action registre DBTCONA dead-band timer control register ACTRA [12-15] COMCONA [11-13] COMCONA [12] COMCONA [9] PWM1 à PWM6 Comparaison

Programmation des sorties PWM avec un temps mort: Module EVA Procédure de programmation: - charger le registre T1PR - charger le registre ACTRA - charger le registre DBTCONA - initialiser les registres CMPR 1,2,3 - charger le registre COMCONA - charger le registre T1CON pour démarrer l’opération - charger les registres CMPR 1,2,3 avec les bonnes valeurs

PWM en mode symétrique 2 signaux PWM par unité de comparaison Base de temps utilisé: Timer1 Exemple: Période 250ns = 5*2*25 ns, Temps mort = 25 ns ACTRA = b sortie 1: active high sortie 2: active low DBTCONA = b Prescaler = x/1 Validation temps mort pour les 3 phases Temps mort = 25 ns Programmation des sorties PWM avec un temps mort: Module EVA

CMPR1 = 3h CMPR2 = 2h CMPR3 = 4h COMCONA = b Validation sorties PWM Chargement registres ACTR quand T1CNT=0 Chargement registres CMPRx quand T1CNT=0 Validation de l’opération comparaison T1PR = 5h T1CNT = 0h T1CON = 8842h Programmation des sorties PWM avec un temps mort: Module EVA

GPTCONA.set7400h T1CNT.set7404h T1PR.set7403h T1CON.set7404h COMCONA.set7411h ACTRA.set7413h DBTCONA.set7415h T1CON.set7404h CMPR1.set7417h CMPR2.set7418h CMPR3.set7419h LDP#00E8h SPLK#0666h,ACTRA SPLK#01E0h,DBTCONA SPLK#3h,CMPR1 SPLK#2h,CMPR2 SPLK#4h,CMPR3 SPLK#8200h,COMCONA SPLK#5h,T1PR SPLK#0h,T1CNT SPLK #8842h,T1CON Code assembleur: Timer1 en mode symétrique Programmation des sorties PWM avec un temps mort: Module EVA

Valeur du Timer Valeurs des registres comparaison. PWM1 Active high PWM2 Active low PWM3 Active high PWM4 Active low PWM5 Active high PWM6 Active low Temps mort

Circuit QEP « quadrature Encoder Pulse » pour EVA Utilisé pour décoder et compter les impulsions aux entrées QEP1 et QEP2 (EVA) ou QEP3 et QEP4 (EVB) Position & vitesse Prévu pour être interfacé avec un codeur incrémental ( mesure de position) Base de temps: Timer2 pour EVA et Timer4 pour EVB Les Timers doivent être programmés en mode « Directional up /down » Timer2 Prescaler QEP Decoder logic Capture Units1,2 CLKOUT CAP1/ QEP1 CAP2/ QEP2 T2CON[4,5] CLKOUT CAPCONA[13,14] T2CON[8,9,10] CLKIN CLK DIR TDIRA 2 2 2

Circuit QEP « quadrature Encoder Pulse » La programmation du circuit nécessite les registres: T2PR ou T4PR T2CON ou T4CON CAPCONA ou CAPCONB Décodeur logique Compteur T2CNT K  QEP1 QEP2 CLK Direction

Gestion des interruptions Le LF2407 dispose de: -2 signaux externes non masquables: RS et NMI -6 interruptions masquables INT1, INT2,...., INT6 -3 instructions pour le déclenchement logiciel des interruptions: INTR, NMI et TRAP - Les interruptions INTx sont activées par des sources issues des EVA et EVB - Ces sources sont organisées en 3 groupes A,B et C

GroupeSource d’interruption DescriptionInterruption INTx A CMP1INT CMP2INT CMP3INT T1PINT T1CINT T1UNINT T1OFINT Compare unit 1 Compare unit2 Compare unit 3 Timer 1 period Timer 1 compare Timer 1 underflow Timer 1 overflow INT2 B T2PINT T2CINT T2UNINT T2OFINT Timer 2 period Timer 2 compare Timer 2 underflow Timer 2 overflow INT3 C CAP1INT CAP2INT CAP3INT Capture unit 1 Capture unit 2 Capture unit 3 INT4 GroupeSource d’interruption DescriptionInterruption INTx A CMP4INT CMP5INT CMP6INT T3PINT T3CINT T3UNINT T3OFINT Compare unit 4 Compare unit5 Compare unit 6 Timer 3 period Timer 3 compare Timer 3 underflow Timer 3 overflow INT2 B T4PINT T4CINT T4UNINT T4OFINT Timer 4 period Timer 4 compare Timer 4 underflow Timer 4 overflow INT3 C CAP4INT CAP5INT CAP6INT Capture unit 4 Capture unit 5 Capture unit 6 INT4 Les interruptions de EVA Les interruptions de EVB

Registre DrapeauRegistre MasqueGestionnaire d’évènement EVAIFRAEVAIMRA EVA EVAIFRBEVAIMRB EVAIFRCEVAIMRC EVBIFRAEVBIMRA EVB EVBIFRBEVBIMRB EVBIFRCEVBIMRC Gestion des interruptions

Réserves T1OFINTT1UFINTT1CINTT1PINTRéservésCMP3INTCMP2INTCMP1INTPDPINT A Réserves T2OFINTT2UFINTT2CINTT2PINT EVAIMRA EVAIMRB Réserves CAP3INTCAP2INTCAP1INT EVAIMRC RéservésINT6INT5INT4INT3INT2INT1 IMR Les masques d’interruption de EVA

Pour autoriser les interruptions de manière globale: CLRCINTM; armement du mécanisme des ITs pour toutes ; les sources masquables Pour les inhiber: SETCINTM; désarmement du mécanisme des ITs Gestion des interruptions

ADC Module Block Diagram (dual sequencer mode) 12-bit A/D Converter Software EVA Ext Pin (ADCSOC) Result Select Result MUX RESULT0... RESULT1 RESULT7 Result Select RESULT8... RESULT9 RESULT15 CHSEL00 (state 0) CHSEL01 (state 1) CHSEL02 (state 2) CHSEL07 (state 7)... MAX_CONV1 Autosequencer Start Sequence Trigger SOC1/ EOC1 SEQ1 CHSEL08 (state 8) CHSEL09 (state 9) CHSEL10 (state 10) CHSEL15 (state 15)... MAX_CONV2 Autosequencer Start Sequence Trigger SEQ2 Sequencer Arbiter SOC2/ EOC2 Software EVB Analog MUX MUX A ADCINA0 ADCINA1 ADCINA7... MUX B ADCINB0 ADCINB1 ADCINB7... S/H A S/H MUX S/H B

Convertisseur Analogique Digital ADC Les registres nécessaires à la programmation: ADCTRL1 ADCTRL2 MAXCONV CHSELSEQ1 CHSELSEQ2 CHSELSEQ3 CHSELSEQ4 RESULT0 ……RESULT15 Bits15-12 Bits11-8 Bits7-4 Bits CHSELSEQ1 x1276CHSELSEQ2 xxxxCHSELSEQ3 xxxxCHSELSEQ4

V in ADCRESxData MemSigned Q |1111|1100| |1111|1100| |1111|1100| |1111|1100| |0000|0000| |0000|0000| Int resultADC; resultADC = ADCRESx ^ 0x8000; Exemple de mesure d’un courant via l’ADC ADCINx V CCA V SSA TMS320F2407 V in 3.3 v - + R R 2R V < V in < V PWM1 PWM2 + DC_BUS GND Shunt resistor A 0 V < V ADCin < +3.3 V

Convertisseur Analogique Digital ADC Le convertisseur étant sur 10 bits, le résultat de la conversion est:

Bit 15-6 : résultat de la conversion sur 10 bits Lecture du résultat d’une conversion En assembleur LACCRESULTx,10 ; décalage de 10 bits à gauche pour récupérer le résultat SACH variable ; récupérer la partie haute de l’accu. En langage C unsigned int tmp; Float entree=0.0 ; tmp = RESULTx > 6 entree=((float)tmp/1023.0)*3.3 Les registres résultats RESULTx Gestion des convertisseurs A/N (ADC)

/* Programmation d’une interruption avec le Timer2 */

Codage des nombres Représentation en complément à 2: Soit X un nombre codé sur N bits en complémént à 2 X= -2 N-1.b N-1 +  b i.2 i avec: b N-1 = 0 si X > 0 b N-1 = 1 si X < 0 X max = 2 N-1 -1 X min = - 2 N-1 i=0 i=N-2

Codage des nombres Addition de 2 nombres de N bits  Résultat sur N+1 bits au moins Produit de 2 nombres de N bits  Résultat nécessite 2N-1 bits Le registre produit est sur 2N bits : Les 2 bits de poids fort sont identiques Le MSB est inutile: Décaler le résultat d’un bit à gauche (PM)

Codage des nombres Représentation en virgule fixe: On utilise le terme «Format Q k » : K bits après la virgule Si X est codé sur N bits en format Q k. X = - b N-1-K.2 N-1-K + b N-2-K.2 N-2-K b 0 + b b -K.2 -K Erreur < 2 -K Pour éviter de traiter les puissances négatives, on multiplie X par 2 K. Cela correspond à la représentation de l’entier Y tq Y= round ( X.2 K )

Codage des nombres Représentation en virgule fixe: Valeurs extrêmesX max = 2 N-1-K - 2 -K X min = - 2 N-1-K | X min | = 2 -K Exemples : en format Q5 sur 8 bits soit: = = Représentation sur 8 bits en format Q 5

Codage des nombres Addition: Aligner les parties entières et les parties décimales Multiplication: Le produit de 2 nombres sur N bits donne un résultat sur 2N bits Les 2 bits de poids forts sont identiques ( bits de signe) Seuls 2N-1 bits sont nécessaires pour le résultat Produit de 2 nombres en formats différents: Q K1 x Q K2 : Résultat en Q K1+K2 Si on souhaite un résultat en format Q K3, on doit effectuer: - un décalage vers la droite de K1+K2-K3 - ou un décalage vers la gauche de 16 - (K1+K2-K3 )

Exemple: soit la multiplication suivante: I.cos  Avec:I =0.816 Format Q12 cos  =0.5 Format Q12 I = x 2 12 =3342 d  D0E h cos  = 0.5 x 2 12 =2048 d  800 h D0E h x 800 h = h au format Q24 Résultat en Q12: Décalage à droite de 24-12=12 et prendre la partie basse ou décalage à gauche de 16-( 24-12)=4 et prendre la partie haute h après décalage : b  alors que I.cos  = x 0.5 = Codage des nombres

Calcul en virgule fixe Multiplication de 2 nombres en format Q 15 LARAR1, #ad_début ; AR1= adresse de Val1 MAR*, AR1 ; Choix de AR1 comme pointeur LT ad_donnée ; Treg =Val = valeur pointée par ad_donnée MPY* ; Preg = Treg x Val1: Q 30 sur 32 bits PAC ; Transfert de Preg dans l’accu. SACHad_résultat,1 ; Décalge du résultat de 1 bit à gauche ; et stockage de la partie haute de l’accu ; dans ad_résultat. Résultat en Q 15 [ ]

Codage des nombres Calcul en virgule fixe: Multiplication de 2 nombres en format Q 15 et Q 13 Valeurs du tableau en format Q 13 Contenu de l’adresse ad_donnée en format Q 15 Le résultat sera en Q 28 sur 32 bits. P our ramener le résultat en Q 15  il faut diviser par 2 13 et ne conserver que les bits de poids faibles  ou multiplier par 2 3 et ne conserver que les bits de poids forts c-à-d effectuer un décalage de 3 bits à gauche

LARAR1, # ad_début ; AR1= adresse de Val1 MAR*, AR1 ; Choix de AR1 comme pointeur LT ad_donnée ; Treg = valeur pointée par ad_donnée MPY* ; Preg = Treg x Val1: Q 30 sur 32 bits PAC ; Transfert de Preg dans l’accu. SACH ad_résultat,3 ; Décalge du résultat de 3 bit à gauche ; et stockage de la partie haute de l’accu ; dans ad_résultat. Résultat en Q 15 [ ] Codage des nombres