Académique Documents
Professionnel Documents
Culture Documents
Introduction
Dfinition
Un DSP : Processeur particulier;
- Intgre un ensemble de fonctions spciales;
- Bonnes performances;
- Gnralement conu pour tre utilis sous la forme dun
monocircuit;
Intgre:
- mmoire RAM et ROM
- ports srie rapides
- ports d entres / sorties
Il est destin tre embarqu;
Introduction
Avantages
Souplesse de la programmation;
Stabilit;
Reproductibilit;
Introduction
Principaux constructeurs
Motorola 8%
Analogue Device 11%
Autres
7%
Texas
Instruments
45%
AT&T 29%
Introduction
Domaines dapplication
Tlcommunications
Son
Vido
Instrumentation:
analyseurs de spectres;
gnrateurs de fonctions;
analyse des signaux et des images biologiques;
radar et sonar
Systmes de commande:
commande de moteurs lectriques;
synthse des correcteurs de servomcanisme
quipement automobile;
Soit:
A ( B. C) D
DEFINITION
Million Floating-Point Operations Per Second
MFLOPS
MOPS
MIPS
MBPS
Adresse
Mmoire
Programme
et Donnes
Donne
Entres
Sorties
Unit arithmtique
et logique
Structure Harvard
Adresse
Mmoire
Programme
Donne
Adresse
Entres
Sorties
Unit arithmtique
et logique
Donne
Mmoire
Donnes
Mmoire
Programme
Adresse
MUX
Donne
Mmoire
Donnes
MUX
Entres
Sorties
Unit arithmtique
et logique
Harvard
Processeurs
Processeurs spcialiss : DSP
Choix d un DSP
Le choix dpend :
- de la puissance de traitement ncessaire
- du type de DSP utiliser
- des ressources mmoire utilises
-des besoins dun ou de plusieurs Timers internes, de
ports srie
- du cot par rapport au rapport performance/prix
- de la qualit de la documentation
- de la qualit du systme de dveloppement utilis
-de la possibilit d utiliser un langage de haut
niveau
.etc
C2xx CPU+JTAG
+544x16 DARAM
Logic
I/F
Flash / ROOM
(Up to 32Kx16)
SARAM
(up to 2Kx16)
Mem I/F
P bus I/F
P bus
Event
Managers
(EVA and EVB)
SPI
SCI
CAN
WD
ADC
control
ADC
Interrupts
reset,etc
I/O
registers
UA des pointeurs
Registre
instruction
Registres
pointeurs:
AR0AR7
Bus Donnes
Prdcaleur
Multiplieur
UAL Gnrale
Registre TREG
Accumulateur
Registre PREG
Postdcaleur
Postdcaleur
TREG
Multiplieur
16x16
MUX
PREG
MUX
ALU
Accumulateur
MUX
Gnrateur d adresses
Bus de Donnes en lecture
ARB
AR7
AR6
AR5
AR4
AR3
AR2
AR1
AR0
ARP
MUX
Registre Instruction
MUX
ARAU
Bus Donnes
Flash
EEPROM
DARAM
B1 / B2
DARAM
B0
Test
Emulation
Interface
Mmoire
Externe
Bus Programme
Contrleur
Programme
Registre
Instruction
ARAU
Pr-dcaleur
Multiplieur
Registre dtat
ALU
TREG
Registres Aux.
Accumulateur
PREG
Gn.
Temps
dattente
Gestionnaire
dvnement
Timers
Registres
mapps en
mmoire
Post-dcaleur
Post-dcaleur
Units
comparaison
Captue /QEP
Module Horloge
Bus Priphrique
Convertisseur A/D
Interface Srie
Watchdog
Mmoire Programme:
- Programme excuter
- Le bloc B0 peut tre en mmoire programme (CNF):
CNF=0: Les 544 mots (B0+B1+B2) mmoire donnes
CNF=1: - Les 256 mots du bloc B0 mmoire programme
- Les 288 mots de B1 et B2 mmoire donnes
- Mmoire Flash (MP/MC):
Se comporte comme une ROM
Forme de 32 Kmots de 16 bits
MP/MC = 0 : le DSP est en mode contrleur
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
Organisation de la mmoire
Contenu de la page 0:
2 registres accessibles sans dlai dattente
- registre de masques dinterruptions (IMR)
- registre de drapeaux dinterruptions (IFR)
zone mmoire de travail: Bloc B2 (RAM: 32 mots de 16 bits)
une zone rserve pour le test et lmulation
Modes d adressage
On dispose de 3 modes d adressage:
direct pagin
indirect et indirect index
immdiat
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 immdiat utilise le compteur ordinal pour reprer une donne en
mmoire de programme
Modes d adressage
Mode direct, adressage par blocs de 128 mots appels pages de donnes
Il existe 512 pages de 0 511
Accs une page: pointeur de page DP du registre dtat ST0
DP
0000 0000 0
0000 0000 0
0000 0000 1
0000 0000 1
.
.
.
1111 1111 1
1111 1111 1
ldp
add
add
#1
00F0h
#0ED83h
Offset
000 0000
111 1111
000 0000
111 1111
000 0000
111 1111
Mmoire donnes
Page 0 : 0000h - 007Fh
Page 1 : 0080h - 00FFh
; selection page 1
; le contenu de ladresse 00F0h est ajout au contenu de lAccu
; ajout de ED83 au contenu de lAccu.
Modes d adressage
Modes d adressage
Registres dtat
15 14 13 12
11
ARP
OV OVM
10
9
8 7 6 5 4 3 2 1 0
1 INTM
DP
Registres dtat
Registre ST1
15 14 13 12
11
ARB
CNF TC
10
9
SXM C
8
1
7
1
6 5 4 3 2 1 0
1 1 XF 1 1 PM
Gestionnaire dvnement
PIE
TCLKINA / TDIRA
ADC Start
Output Logic
T1CMP/T1PWM
Data Bus
Compare Unit 1
Compare Unit 2
Compare Unit 3
GP Timer 2 Compare
GP Timer 2
MUX
Capture Units
PWM1
PWM2
PWM3
PWM4
PWM5
PWM6
T2CMP/T2PWM
QEP
Circuit
CAP1/QEP1
CAP2/QEP2
CAP3/QEPI1
Rcapitulatif
Caractristiques du LF2407:
Frquence 40 MHz : 40x106 instructions par seconde (40 MIPS)
2x2 Timers
2x3 units de comparaison: 2x 6 signaux PWM (MLI)
Circuits grant les signaux PWM:
Fonctionnement en MLI vectorielle (SVPWM)
Gestion des temps morts
2x3 Compteurs d impulsions Capture units
2 modules avec des entres QEP compatible avec des codeurs
incrmentaux
Faible niveau de tension : 3,3 V
Les Timers
T2PR ou T4PR
Registre priode
(Ddoubl)
(Ddoubl)
GPTCON
Registre ctrl Timer
MUX
TxCMPR
Registre comparaison
(Ddoubl)
Logique de
comparaison
TxCNT
Compteur
Horloge CPU
interne
Logique de
contrle
TxCON
Registre de contrle
Logique
sorties
Drapeaux
Interruption (Flags)
Dmarrage Conversion
ADC
TCLKINA/B
TDIRA/B
TxPWM
GPTCONA/B:
spcifie les actions prendre en compte par le Timer;
indique le sens du comptage.
Bits 15
Bit 14
Bit 13
Bit 12-11
Bit 10-9
Bit 8-7
Bit 6
Bits 5-4
Bits 3-2
Bits 1-0
: Rserv
: Sens de comptage (concerne Timer 2 ou Timer 4)
: Sens de comptage (concerne Timer 1 ou Timer 3)
: Rservs
: dmarrage du convertisseur ADC par un vnement du Timer2 ou Timer 4
: dmarrage du convertisseur ADC par un vnement du Timer1 ou Timer 3
: permet de valider la sortie: comparaison des Timers
: Rservs
: polarit de la sortie du Timer 2 ou du Timer 4
: polarit de la sortie du Timer 1 ou du Timer 3
Interruptions Timer
TxCMPR
TxPWM
Mode asymtrique
Mode symtrique
TxCMPR
TDIRA/B
Mode 3: Directional up /down
T1PR = 8-1=7
T1CMPR = 4-1=3
GPTCONA = 0000 0000 0100 0010 b
polarit de la sortie: Active High
sorties des 2 Timers valides
.set
.set
.set
.set
.set
7400h
7401h
7402h
7403h
7404h
LDP
SPLK
SPLK
SPLK
SPLK
SPLK
#0E8h
#0042h,GPTCONA
#0007h,T1PR
#0003h,T1CMPR
#0000h,T1CNT
#9042h,T1CON
GPTCONA
T1CNT
T1CMPR
T1PR
T1CON
.set
.set
.set
.set
.set
7400h
7401h
7402h
7403h
7404h
LDP
SPLK
SPLK
SPLK
SPLK
SPLK
#0E8h
#0042h,GPTCONA
#0004h,T1PR
#0002h,T1CMPR
#0000h,T1CNT
#8842h ,T1CON
CMPR1
CMPR2
CMPR3
COMCONA
ACTRA
EVB
CMPR4
CMPR5
CMPR6
COMCONB
ACTRB
ACTRA
Bit 15
: sens de rotation de la MLI (PWM) vectorielle
Bits 14-12 : dfinissent la position des vecteurs tension en MLI vectorielle
Bits 11-0 : dfinissent les polarits des sorties PWM
Bit 15
: permet de valider lopration comparaison
Bits 14-13 : dfinissent les conditions de chargement du registre CMPRx
Bit 12
: validation du SVPWM (PWM vectorielle)
Bits 11-10 :dfinissent les conditions de chargement du registre ACTR
Bit 9
: valident les sorties PWM
Bit 8
: Etat de la broche PDPINTA
Bit 7-0
: Rservs
Le temps mort est ncessaire pour viter les court-circuits dans les structures en pont des onduleurs:
100 = x /16
101 = x /32
110 = x /32
111 = x /32
x: Frquence du CPU
x 40MHz
COMCONA [9]
Gn Scie
Sym / Asym
Comparaison
MUX
Unit
Temps mort
Logique de
sorties
DBTCONA
ACTRA
SVPWM
dead-band timer
control register
ACTRA [12-15]
COMCONA [12]
Compare action
registre
PWM1
PWM6
Procdure de programmation:
- charger le registre
- charger le registre
- charger le registre
- initialiser les registres
- charger le registre
- charger le registre
- charger les registres
T1PR
ACTRA
DBTCONA
CMPR1,2,3
COMCONA
T1CON
CMPR1,2,3
CMPR1 = 3h
CMPR2 = 2h
CMPR3 = 4h
COMCONA = 1000 0010 0000 0000 b
Validation sorties PWM
Chargement registres ACTR quand T1CNT=0
Chargement registres CMPRx quand T1CNT=0
Validation de lopration comparaison
T1PR = 5h
T1CNT = 0h
T1CON = 8842h
.set
.set
.set
.set
.set
.set
.set
.set
.set
.set
7400h
7404h
7403h
7404h
.set
7413h
7415h
7404h
7417h
7418h
7419h
LDP
SPLK
SPLK
SPLK
SPLK
SPLK
SPLK
SPLK
SPLK
SPLK
#00E8h
#0666h,ACTRA
#01E0h,DBTCONA
#3h,CMPR1
#2h,CMPR2
#4h,CMPR3
#8200h,COMCONA
#5h,T1PR
#0h,T1CNT
#8842h ,T1CON
7411h
Valeurs des
registres
comparaison.
Valeur du Timer
Temps mort
PWM1
Active high
PWM2
Active low
PWM3
Active high
PWM4
Active low
PWM5
Active high
PWM6
Active low
pour EVA
Prescaler
Timer2
T2CON[4,5]
TDIRA
T2CON[8,9,10]
CLK
DIR
QEP
Decoder
logic
CLKOUT CAPCONA[13,14]
2
Capture
Units1,2
CAP1/ QEP1
CAP2/ QEP2
Dcodeur
logique
Direction
Compteur
T2CNT
ou T4PR
T2CON
ou T4CON
CAPCONA ou CAPCONB
Source
dinterruption
Description
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
T2PINT
T2CINT
T2UNINT
T2OFINT
Timer 2 period
Timer 2 compare
Timer 2 underflow
Timer 2 overflow
CAP1INT
CAP2INT
CAP3INT
Capture unit 1
Capture unit 2
Capture unit 3
Interruption
INTx
A
INT2
INT3
INT4
Source
dinterruption
Description
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
T4PINT
T4CINT
T4UNINT
T4OFINT
Timer 4 period
Timer 4 compare
Timer 4 underflow
Timer 4 overflow
CAP4INT
CAP5INT
CAP6INT
Capture unit 4
Capture unit 5
Capture unit 6
Interruption
INTx
INT2
INT3
INT4
Registre Masque
EVAIFRA
EVAIMRA
EVAIFRB
EVAIMRB
EVAIFRC
EVAIMRC
EVBIFRA
EVBIMRA
EVBIFRB
EVBIMRB
EVBIFRC
EVBIMRC
Gestionnaire
dvnement
EVA
EVB
10
6-4
Rserves
T1OFINT
T1UFINT
T1CINT
T1PINT
Rservs
CMP3INT
CMP2INT
CMP1INT
PDPINT
A
EVAIMRB
15-4
Rserves
T2OFINT
T2UFINT
T2CINT
T2PINT
EVAIMRC
15-3
Rserves
CAP3INT
CAP2INT
CAP1INT
IMR
15-6
Rservs
INT6
INT5
INT4
INT3
INT2
INT1
INTM
INTM
ADCINA7
S/H
A
ADCINB1
...
ADCINB7
S/H
B
SOC1/
EOC1
SEQ1
Autosequencer
SEQ2
Autosequencer
MAX_CONV1
MAX_CONV2
CHSEL00 (state 0)
CHSEL01 (state 1)
CHSEL02 (state 2)
CHSEL08 (state 8)
CHSEL09 (state 9)
CHSEL10 (state 10)
CHSEL07 (state 7)
Start Sequence
Trigger
RESULT7
RESULT8
RESULT9
SOC2/
EOC2
...
(ADCSOC)
MUX
B
Result
Select
Sequencer
Arbiter
...
Software
EVA
Ext Pin
12-bit A/D
Converter
S/H
MUX
ADCINB0
RESULT0
RESULT1
...
...
ADCINA1
Result MUX
Result
Select
...
ADCINA0
RESULT15
Software
EVB
Bits15-12
Bits11-8
Bits7-4
Bits3-0
CHSELSEQ1
12
CHSELSEQ2
CHSELSEQ3
CHSELSEQ4
PWM1
A
R
PWM2
Vin
Shunt
resistor
GND
TMS320F2407
2R
ADCINx
VCCA
Int resultADC;
3.3 v
VSSA
Vin
ADCRESx
Data Mem
Signed Q15
0.15
0
-0.15
1111|1111|1100|0000
0111|1111|1100|0000
0000|0000|0000|0000
0111|1111|1100|0000
1111|1111|1100|0000
1000|0000|0000|0000
+0.999023
-0.000977
-1.000000
RESULTx
RESULTx,10
variable
En langage C
unsigned int tmp;
Float
entree=0.0;
tmp = RESULTx > 6
entree=((float)tmp/1023.0)*3.3
IMR
15-6
Rserv
5
INT6
3
INT4
2
1
0
INT3 INT2 INT1
IFR
Rserv
EVAIMRB
15-4
Rserv
4
INT5
T2OFINT
T2UFINT
T2CINT
T2PINT
Reprsentation en complment 2:
i=N-2
X= -2N-1.bN-1 + bi.2i
i=0
avec:
bN-1= 0 si X > 0
bN-1= 1 si X < 0
Xmax = 2N-1 -1
Xmin = - 2N-1
Le registre produit est sur 2N bits: Les 2 bits de poids fort sont identiques
Le MSB est inutile: Dcaler le rsultat dun bit gauche (PM)
Valeurs extrmes
Exemples :
I =0.816
cos =0.5
Format Q12
Format Q12
Adresses
Valeurs
ad_dbut
Val1
Val2
Val3
Val4
...
...
ad_donne
ad_rsultat
Val
xxxx
LAR
MAR
LT
MPY
PAC
SACH
Adresses
dbut
Valeurs
en Q13
Val1
Val2
Val3
Val4
...
...
...
23-20
19-16
15-12
11-8
7-4
3-0
Preg
31 30 29 28
27-24
23-20
19-16
15-12
11-8
7-4
3-0
Preg
LAR
MAR
LT
MPY
PAC
SACH
AR1, # ad_dbut
*, AR1
ad_donne
*
ad_rsultat ,3