Modulo 7
Modulo 7
Modulo7
Introducción a los Módulos ePWMs de DSCs C2000
G. A. Magallán
Fuentes utilizadas: Teaching Materials F2833x - 2010 TI - Module-07
TMS320F2837xD Microcontroller Workshop Rev2.0 2018
1
2022
DSP para el Control de Electrónica de Potencia
TEMARIO
2
Modulo 7
DSP para el Control de Electrónica de Potencia
EPWMxSYNCI EPWMxSYNCO
Period
Register EPWMxA
PWM Trip
Shadowed
Chopper Zone
SYSCLKOUT TBPRD . 15 - 0 EPWMxB
PCCTL . 10 - 0
TZy
TZSEL . 15 - 0
3
Modulo 7
ePWM modos de cuenta
TBCTR
TBPRD
Asymmetrical
Waveform
Count Up Mode
TBCTR
TBPRD
Asymmetrical
Waveform
TBCTR
TBPRD
Symmetrical
Waveform
Phase
=0°
En
o o
SyncIn
EPWM1A
o
CTR=zero o
CTR=CMPB o o EPWM1B
X o
SyncOut
To eCAP1
SyncIn
Phase
=120°
En
o o
SyncIn
EPWM2A =120°
o
CTR=zero o
CTR=CMPB o o EPWM2B
X o
SyncOut
Phase
=240°
En
o o
SyncIn
EPWM3A
=120°
o
CTR=zero o
CTR=CMPB o o EPWM3B
X o
SyncOut =240°
5
Modulo 7
Sincronización de fase entre modulos ePWM - F2837xD
6
Modulo 7
Eventos, y Sincronización de fase SYNCI
7
Modulo 7
Registros de configuración
8
Modulo 7
ePWM RegistroTBCTL : Time Base Control
Phase Direction
0 = count down after sync
1 = count up after sync TBCLK = SYSCLKOUT / (HSPCLKDIV * CLKDIV)
15 - 14 13 12 - 10 9-7
FREE_SOFT PHSDIR CLKDIV HSPCLKDIV
6 5-4 3 2 1-0
SWFSYNC SYNCOSEL PRDLD PHSEN CTRMODE
10
Modulo 7
ePWM RegistroTBSTS: Time Base Status
15 - 3 2 1 0
reserved CTRMAX SYNCI CTRDIR
11
Modulo 7
Proyecto:
Generar una señal de 1kHz ciclo de trabajo del
50% utilizando el modulo ePWM1A (utilizar eventos
de counter=cero y counter=período)
• Registros involucrados:
• TBPRD: define el periodo del PWM
• TBCTL: configura el modo y el prescaler
• AQCTLA: define la forma y polaridad del ePWM1A
12
Modulo 7
Proyecto:
Generar un sistema trifásico con señales cuadradas
de 1kHz , ciclo de trabajo del 50%, utilizando las
salidas ePWM1A, ePWM2A, ePWM3A desfasadas
120° entre si.
• Registros involucrados:
• TBPRD: define el periodo del PWM
• TBCTL: configura el modo y el prescaler
• AQCTLA: define la forma y polaridad
•TBPHS: registro para establecer la fase
13
Modulo 7
Modulación por ancho de pulso
t t
T
Señal original Representación PWM
14
Modulo 7
¿Porqué usar PWM en llaves de potencia?
DC Supply DC Supply
? PWM
Señal PWM approx.
deseada of desired
signal
Señal de base desconocida Señal conocida en la base usando
PWM
15
Modulo 7
ePWM Unidad de Comparación
CMPA . 15 - 0 CMPB . 15 - 0
TBCTL . 12 - 7
Shadowed Shadowed
Clock Compare Compare
Prescaler Register Register
AQCTLA . 11 - 0
TBCTR . 15 - 0
AQCTLB . 11 - 0 DBCTL . 4 - 0
16-Bit
Compare Action Dead
Time-Base
TBCLK Logic Qualifier Band
Counter
EPWMxSYNCI EPWMxSYNCI
Period
Register EPWMxA
PWM Trip
Shadowed
Chopper Zone
SYSCLKOUT TBPRD . 15 - 0 EPWMxB
PCCTL . 10 - 0
TZy
TZSEL . 15 - 0
16
Modulo 7
ePWM Unidad de Comparación
TBCTR = los eventos de comparación alimentan al Action Qualifier Module
TBPRD
CMPA
CMPB Asymmetrical
Waveform
Count Up Mode
TBCTR
TBPRD
CMPA
CMPB
Asymmetrical
Waveform
TBCTR
TBPRD
CMPA
CMPB
Symmetrical
Waveform
Modulo 7
ePWM Compare Control Register
Control de los registros “shadows”
15 - 10 9 8 7
reserved SHDWBFULL SHDWAFULL reserved
6 5 4 3-2 1-0
SHDWBMODE reserved SHDWAMODE LOADBMODE LOADAMODE
CMPA and CMPB Operating Mode CMPA and CMPB Shadow Load Mode
0 = shadow mode; 00 = load on CTR = 0
double buffer w/ shadow register 01 = load on CTR = PRD
1 = immediate mode; 10 = load on CTR = 0 or PRD
shadow register not used 11 = freeze (no load possible)
Modulo 7
ePWM Action Qualifier Module
CMPA . 15 - 0 CMPB . 15 - 0
TBCTL . 12 - 7
Shadowed Shadowed
Clock Compare Compare
Prescaler Register Register
AQCTLA . 11 - 0
TBCTR . 15 - 0
AQCTLB . 11 - 0 DBCTL . 4 - 0
16-Bit
Compare Action Dead
Time-Base
TBCLK Logic Qualifier Band
Counter
EPWMxSYNCI EPWMxSYNCO
Period
Register EPWMxA
PWM Trip
Shadowed
Chopper Zone
SYSCLKOUT TBPRD . 15 - 0 EPWMxB
PCCTL . 10 - 0
TZy
TZSEL . 15 - 0
Modulo 7
ePWM Action Qualifier Actions
Time-Base Counter equals: EPWM
S/W Output
Force Actions
Zero CMPA CMPB TBPRD
SW Z CA CB P
X X X X X Do Nothing
SW Z CA CB P
Clear Low
SW Z CA CB P
Set High
SW Z CA CB P
T T T T T Toggle
Modulo 7
Modulación independiente en EPWMA y B
TBCTR
TBPRD
Z P CB CA Z CB CA Z P
X X X X
EPWMA
Z P CB CA Z P CB CA Z P
X X X X X
EPWMB
Modulo 7
Pulso móvil en EPWMA
TBCTR
TBPRD
CA CB CA CB
EPWMA
Z Z Z
T T T
EPWMB
Modulo 7
Modulación independiente simétrica
en EPWMA y B
TBCTR
TBPRD
CA CA CA CA
EPWMA
CB CB CB CB
EPWMB
Modulo 7
ePWM – Registros del modulo Action Qualifier
Modulo 7
Registro de control del Action Qualifier
EPwmxRegs.AQCTLy (y = A o B)
Modulo 7
Action Qualifier- Registro de forzado por software
EPwmxRegs.AQSFRC
Modulo 7
Bits de forzado continuo por software
EPwmxRegs.AQCSFRC
15 - 4 3-2 1-0
reserved CSFB CSFA
Modulo 7
Resolución efectiva de PWM en función
del período (pizarrón)
Modulo 7
HRPWM - Modulo de alta resolución de PWM
Cuando la resolución cae por debajo de 9 -10bits
Modulo 7
Modulo 7
MEP: Micro Edge Positioner
Ej. MEPs 180ps (28335) y 100Mhz Sysclock, (Ójo en el 28379 es de 150ps)
Modulo 7
Lab 7_3: Señal de1 KHz con PWM 0-100% en
ePWM1A
Objetivo:
• Generar una onda señal cuadrada de1 KHz con el modulo ePWM1A
con ciclo de trabajo variable de 0 a 100%
• Verificar con osciloscopio
• Registros involucrados:
• TBPRD: define el periodo de la señal
• TBCTL: modo de operación y prescaler
• CMPA: control del ancho de pulso para ePWM1A
• AQCTLA: define flancos y polaridad de la forma de salida
en ePWM1A
Modulo 7
Lab 7_4: señales complementarias de 1KHz en
ePWM1A y ePWM1B
Objetivo:
• Generar una señal de onda cuadrada de 1 KHz en ePWM1A con ciclo
de trabajo variable entre 0 y 100%
• Generar una señal complementaria en ePWM1B
• Verificar con osciloscopio
• Registros involucrados:
Modulo 7
Lab 7_5: Modulación independiente en ePWMA
y ePWMB
TBCTR
TBPRD
CA CA CA CA
EPWMA
CB CB CB CB
EPWMB
Modulo 7
Inversor fuente de voltage
Upper & lower
devices can not
be turned on
simultaneously
(dead band)
PWM signal is
applied between
gate and source + + +
DC bus
capacitor - - - Three phase
outputs to drive
the motor
terminals
Power
Switching
Devices
Modulo 7
Necesidad de Dead-Band
Tiempos Muertos
+Vcc
Modulo 7
ePWM Modulo Dead-Band
CMPA . 15 - 0 CMPB . 15 - 0
TBCTL . 12 - 7
Shadowed Shadowed
Clock Compare Compare
Prescaler Register Register
AQCTLA . 11 - 0
TBCTR . 15 - 0
AQCTLB . 11 - 0 DBCTL . 4 - 0
16-Bit
Compare Action Dead
Time-Base
TBCLK Logic Qualifier Band
Counter
EPWMxSYNCI EPWMxSYNCO
Period
Register EPWMxA
PWM Trip
Shadowed
Chopper Zone
SYSCLKOUT TBPRD . 15 - 0 EPWMxB
PCCTL . 10 - 0
TZy
TZSEL . 15 - 0
Modulo 7
ePWM- Diagrama del Módulo de Dead-Band
PWMxA - IN
Rising
0
Edge 0 S1 PWMxA
0 Delay S2 RED
S4
1
In
(10-bit
Out
1
1
counter)
Falling
Edge 0
0 Delay S3 FED 1
S5 S0 PWMxB
1
In
(10-bit
Out
1
0
counter)
IN-MODE POLSEL OUT-MODE
PWMxB - IN
Modulo 7
ePWM- Registros del Modulo Dead-Band
Modulo 7
ePWM- Registro de Control de Dead Band
Polarity Select
00 = active high
01 = active low complementary (RED)
10 = active high complementary (FED)
11 = active low
Modulo 7
Lab 7_6: Uso de Dead-Band para
ePWM1A y ePWM1B
Objetivo:
• Agregar un delay en los flancos ascendentes de un par de
señales complementarias ePWM1A y ePWM1B
• Calificación de salida : Active High Complementary (AHC)
Mode
• La entrada a la unidad de dead-band será ePWM1A
• La unidad de dead-band generará las señales de salida
ePWM1A y ePWM1B
• Registros involucrados:
EPWMxSYNCI EPWMxSYNCO
Period
Register EPWMxA
PWM Trip
Shadowed
Chopper Zone
SYSCLKOUT TBPRD . 15 - 0 EPWMxB
PCCTL . 10 - 0
TZy
TZSEL . 15 - 0
Modulo 7
Propósito de la unidad de chopper en el
modulo ePWM
Permite generar una portadora de alta frecuencia que modula
la señal PWM luego que es entregada por las unidades de
Action Qualifier y Dead-Band.
Ej. Es utilizada para enviar señales a transformadores de pulso que
forman parte de drivers para el disparo de llaves de potencia.
EPWMxA
EPWMxB
CHPFREQ
EPWMxA
EPWMxB
Programmable
Pulse Width
OSHT (OSHTWTH)
Sustaining
EPWMxA Pulses
Modulo 7
ePWM Registro de control del chopper
EPwmxRegs.PCCTL
15 - 11 10 - 8 7-5 4-1 0
reserved CHPDUTY CHPFREQ OSHTWTH CHPEN
EPWMxSYNCI EPWMxSYNCO
Period
Register EPWMxA
PWM Trip
Shadowed
Chopper Zone
SYSCLKOUT TBPRD . 15 - 0 EPWMxB
PCCTL . 10 - 0
TZy
TZSEL . 15 - 0
Modulo 7
Características del sub-modulo deTrip-Zone
El Trip-Zone tiene una lógica rápida e independiente de clock para poner en
un estado particular los pines ePWMxA/B.
La latencia de interrupciones podría no proteger el hardware cuando la
respuesta a condiciones de sobrecorriente o cortocircuito son programadas
dentro de una ISR.
Soporta: #1) one-shot trip para grandes cortocircuitos o condiciones de
sobrecorrientes.
#2) cycle-by-cycle trip para operación de limite de corriente.
EPWM1A
Over
Current DSP EPWM1B
EPWM2A
P
Sensors core W
EPWM2B M
EPWM3A
TZ1 EPWMxTZINT EPWM3B O
TZ2 Cycle-by-Cycle U
EPWM4A
TZ3 Mode EPWM4B T
P
TZ4 EPWM5A U
TZ5 One-Shot EPWM5B T
TZ6 Mode EPWM6A S
EPWM6B
Modulo 7
ePWM Registros del sub-modulo deTrip-Zone
Modulo 7
ePWM Registro de Control del Trip-Zone
EPwmxRegs.TZCTL
15 - 4 3-2 1-0
reserved TZB TZA
Modulo 7
ePWM Registro Selector deTrip-Zone
EPwmxRegs.TZSEL
15 - 14 13 12 11 10 9 8
reserved OSHT6 OSHT5 OSHT4 OSHT3 OSHT2 OSHT1
7-6 5 4 3 2 1 0
reserved CBC6 CBC5 CBC4 CBC3 CBC2 CBC1
Modulo 7
ePWM Registro Habilitador de Interrupción
deTrip-Zone
EPwmxRegs.TZEINT
15 - 3 2 1 0
reserved OST CBC reserved
One-Shot Cycle-by-Cycle
Interrupt Enable Interrupt Enable
0 = disable 0 = disable
1 = enable 1 = enable
Modulo 7
Disparo de interrupciones y SOC en
eventos del modulo de ePWM
Modulo 7
TBCTR
TBPRD
CMPB
CMPA
EPWMA
EPWMB
CTR = 0
CTR = PRD
CTRU = CMPA
CTRD = CMPA
CTRU = CMPB
CTRD = CMPB
Modulo 7
ePWM Registros para el disparo de
eventos
Modulo 7
ePWM Event-Trigger Selection Register
EPwmxRegs.ETSEL
15 14 - 12 11 10 - 8 7-4 3 2-0
SOCBEN SOCBSEL SOCAEN SOCASEL reserved INTEN INTSEL
Modulo 7
Modulos de Captura y de Entrada de
Encoders
Modulo 7
eCAP Diagrama de bloques – Modo Captura
CAP1POL
CAP1 . 31 - 0 ECCTL . 0
Capture 1 Polarity
Register Select 1
CAP2POL
CAP2 . 31 - 0 ECCTL . 2
Event Logic
Register Select 2 ECCTL . 13 - 9
32-Bit CAP3POL Event
Time-Stamp CAP3 . 31 - 0 ECCTL . 4 Prescale
Counter ECAPx
Capture 3 Polarity pin
Register Select 3
SYSCLKOUT CAP4POL
CAP4 . 31 - 0 ECCTL . 6
Capture 4 Polarity
Register Select 4
Modulo 7
Unidad de Captura(eCAP)
Timer
Trigger
pin
Timestamp
Values
Modulo 7
Algunos usos de la unidad de captura
◆ Medición de tiempo del ancho de un pulso
◆ Estimación de velocidad de un encoder incremental
(en bajas velocidades).
Problema: a bajas velocidades, el calculo de de
xk - xk-1
velocidad basado en la medición del cambio de vk
posición a intervalos fijos de tiempo, produce t
grandes errores.
Modulo 7
eCAP Diagrama de Bloques– APWM Mode
Shadowed
Period CAP3 . 31 - 0
CAP1 . 31 - 0 Period Register shadow
immediate Register (CAP3) mode
mode (CAP1)
TSCTR . 31 - 0
32-Bit PWM
Time-Stamp Compare
Counter Logic ECAP
pin
SYSCLKOUT
CAP2 . 31 - 0 Compare
immediate Register Compare CAP4 . 31 - 0
mode (CAP2) Register shadow
Shadowed (CAP4) mode
Modulo 7
eCAP Registros
Name Description Structure
ECCTL1 Capture Control 1 ECapxRegs.ECCTL1.all =
ECCTL2 Capture Control 2 ECapxRegs.ECCTL2.all =
TSCTR Time-Stamp Counter ECapxRegs.TSCTR =
CTRPHS Counter Phase Offset ECapxRegs.CTRPHS =
CAP1 Capture 1 ECapxRegs.CAP1 =
CAP2 Capture 2 ECapxRegs.CAP2 =
CAP3 Capture 3 ECapxRegs.CAP3 =
CAP4 Capture 4 ECapxRegs.CAP4 =
ECEINT Enable Interrupt ECapxRegs.ECEINT.all =
ECFLG Interrupt Flag ECapxRegs.ECFLG.all =
ECCLR Interrupt Clear ECapxRegs.ECCLR.all =
ECFRC Interrupt Force ECapxRegs.ECFRC.all =
Modulo 7
eCAP Control Register 1
ECapxRegs.ECCTL1
Upper Register:
CAP1 – 4 Load
on Capture Event
0 = disable
1 = enable
15 - 14 13 - 9 8
FREE_SOFT PRESCALE CAPLDEN
11110 = divide by 60
11111 = divide by 62
Modulo 7
eCAP Control Register 1
ECapxRegs.ECCTL1
Lower Register:
7 6 5 4 3 2 1 0
CTRRST4 CAP4POL CTRRST3 CAP3POL CTRRST2 CAP2POL CTRRST1 CAP1POL
Modulo 7
eCAP Control Register 2
ECapxRegs.ECCTL2
Upper Register:
15 - 11 10 9 8
reserved APWMPOL CAP_APWM SWSYNC
Modulo 7
eCAP Registro de Control 2
ECapxRegs.ECCTL2
Lower Register:
Re-arm Continuous/One-Shot
Counter Sync-In (capture mode only) (capture mode only)
0 = disable 0 = no effect 0 = continuous mode
1 = enable 1 = arm sequence 1 = one-shot mode
7-6 5 4 3 2-1 0
SYNCO_SEL SYNCI_EN TSCTRSTOP REARM STOP_WRAP CONT_ONESHT
Modulo 7
eCAP Registro de Habilitación de Interrupción
ECapxRegs.ECEINT
15 - 8 7 6 5 4 3 2 1 0
reserved CTR=CMP CTR=PRD CTROVF CEVT4 CEVT3 CEVT2 CEVT1 reserved
Modulo 7
Encoders de cuadratura (incremental)
Ch. A
Ch. B
shaft rotation
Modulo 7
Como se determina la posición a partir de de las
señales en cuadratura
(00) (11)
increment decrement
(A,B) = counter 10 counter
(10) (01)
Illegal
Ch. A Transitions;
00 generate 11
phase error
interrupt
Ch. B
01
Quadrature Decoder
State Machine
Modulo 7
eQEP Diagrama de Bloques
Measure the elapsed time
between the unit position events;
used for low speed measurement
Quadrature
Generate periodic
Capture
interrupts for velocity Quadrature - Direction -
calculations clock mode count mode
Monitors the quadrature
clock to indicate proper
operation of the motion EQEPxA/XCLK
control system
32-Bit Unit EQEPxB/XDIR
Time-Base Quadrature
QEP Decoder EQEPxI
Watchdog
EQEPxS
SYSCLKOUT
Position/Counter
Compare
Generate the direction and
clock for the position counter
Generate a sync output in quadrature count mode
and/or interrupt on a
position compare match
Modulo 7