Você está na página 1de 10

ITSS MODULO PWM PARA CONTROL DE MOTORES

MODULO PWM PARA CONTROL DE MOTORES


Eduardo Luis Romero Len
e-mail: edurom.pollo@hotmail.com
anchura de pulso del tren de pulsos de la seal.
Periodo de la seal valor medio

1. INTRODUCCION.
Mtodos para regular la velocidad de un motor elctrico: Intercalar una resistencia, aunque este sistema desperdicia energa. Modular la tensin de alimentacin mediante el procedimiento de Modulacin por Anchuras de Pulsos (PWM). Actuar sobre una frecuencia cuando se trata de un motor de alterna, aunque esto no siempre es posible. 1.1 MODULACION POR ANCHURA DE PULSO (PWM) PWM son las siglas de <<Pulse Width Modulation>> o <<Modulacin por Anchura de Pulso>>. Los microcontroladores comerciales incorporan una funcin hardware se utiliza para conseguir una salida analgica a partir de una seal digital, atravez de la variacin del valor eficaz de la seal. Pulso mas ancho, valor eficaz es mayor que para un pulso mas estrecho por lo cual vara la

Anchura De pulso Variable

Tren de pulsos de anchura variable. 1.2 CONTROL DE MOTORES MEDIANTE PWM. El movimiento del motor elctrico se consigue por la variacin de un campo elctrico o magntico, dependiendo del tipo del motor y as obtener un campo rotatorio. Segn el tipo de motor, variando dicha corriente de alimentacin se consigue variar la velocidad del motor. 1.3 DISPOSITIVOS DSPIC30F PARA APLICACIONES DE CONTROL DE MOTORES. La familia de los dsPIC30F existe dos subfamilias destinadas al control de motores, una es de

ITSS MODULO PWM PARA CONTROL DE MOTORES

gama baja y la otra gama superior. Los dispositivos de la gama baja incorporan mdulos PWM de 6 salidas, mientras que los de gama superior son de 8 salidas. La diferencia entre los mdulos reside en el nmero de canales de PWM, el nmero de patitas de fallo y el nmero de generadores de tiempo muerto.

2. ESTRUCTURA GENERAL
El modulo PWM de gama superior dispone de 4 generadores PWM y cada uno de ellos dispone de dos patitas para la salida de las seales de anchura de pulso variable que controlaran el funcionamiento del motor. Tambin tiene 2 patitas de fallo y 2 generadores de tiempo muerto. 2.1 REGISTROS DE CONFIGURACION Y CONTROL

Caractersticas

PWM De 6 salidas

PWM De 8 salidas

Patitas E/S 6 8 Generadores 3 4 PWN Patitas de 1 2 fallo Generadores 1 2 de tiempo muerto Tipos de mdulos PWM Para la simplificar la descripcin del modulo PWM se hace referencia nicamente a los de gama superior. Las aplicaciones ms interesantes en el control de motores mediante los dsPIC30F se destacan: Motores de induccin trifsicos Motores sncronos de reluctancia variable Motores de corriente continua sin escobillas Sistemas de alimentacin interrumpida (UPS)

Los registros de configuracin y los registros que controlan recursos especficos del mdulo, registros se deberan carga con los valores apropiados en funcin del tipo de seal que se desee obtener. Estos registros estn conectados al bus de datos del sistema. Existen tres bits de configuracin para configurar el estado de Reset inicial y la polarizacin de las patitas de entrada y salida, estos bits se encuentran en el registro de configuracin de dispositivos FBORPOR. PTCON: Registro de control de la base de tiempo. PTEN: Cuando PTEN=1 la base de tiempo esta activada y cuando se pone a 0 se desactiva.
15 PTE N 13 9 0. 0 PTOP S 0 PTCKP S PTMO D

PTSID L

Registro PTCON

ITSS MODULO PWM PARA CONTROL DE MOTORES

PTSIDL: cuando PTSIDL=1 se para la base de tiempo y si se pone a 0 vuelve a funcionar. PTOPS: 4 bits que sirven para seleccionar el valor de preescalado (1:1, 1:2,.. 1:16) PTCKPS: 2 bits que sirven para seleccionar el preescalado del periodo de entrada del reloj (1:1, 1:4, 1:16, 1:64). PTMOD: 2 bits que sirven para seleccionar el modo de funcionamiento de la base de tiempo. Modo normal (00) Modo de evento nico (01) Modo ascendente/descendente (10) Modo ascendente/ descendente con doble interrupcin (11) PWMCONx: Registros de control 15 11 0 0 P M O D 4 P M O D 3 P M O D 2 P M O D 1 P U N 4 H P E N 3 H P E N 2 H P E N 1 H P E N 4 L P E N 3 L 0 P E N 2 L P E N 1 L

PWMCON2
15 12 7 2 0

0.0 SEVOPS 00 OSYNC UDIS SEVOPS: 4 bits que sirven para seleccionar el postescalado del disparador. OSYNC: Cuando se pone a 1, la salida esta sincronizada con la base de tiempo y si est a cero salida produce el siguiente ciclo. UDIS: cuando se pone a 1 deshabilita la actualizacin de PWM y si pone a 0 habilita. DTCON1
15 7 0

DTBPS

DTB

DTAPS

DPA

DTBPS: 2 bits para seleccionar el preescalado del tiempo muerto de la unidad B. DTB: 6 bits sin signo que indican el valor del tiempo muerto de la unidad B. DTAPS: 2 bits para seleccionar el preescalado del tiempo muerto de la unidad A. DTCON 2
15 8 7 0

PMOD4-PMOD1: Indica el modo de salida del par de patitas PWM. PEN4H-PEN1H: Activan las patitas PWMxH como salidas si se pone a 1. PEN4L-PEN1L: Activan las patitas PWMxL como salidas si se ponen a 1.

DTS4A

DTS3A

DTS2A

DTS1A

DTS41

DTS31

DTS21

DTS1I

0.0

ITSS MODULO PWM PARA CONTROL DE MOTORES

DTS4A: bit de seleccin del tiempo. DTS4I: bit de seleccin del tiempo para la seal inactiva PWM4. DTS3A: bit de seleccin del tiempo para la seal inactiva PWM3. DTS3I: bit de seleccin del tiempo para la seal inactiva PWM3. DTS2A: bit de seleccin del tiempo para la seal inactiva PWM2. DTS2I: bit de seleccin del tiempo para la seal inactiva PWM2. DTS1A: bit de seleccin del tiempo para la seal inactiva PWM1. DTS1I: bit de seleccin del tiempo para la seal inactiva PWM1.

PTDIR esta 1, lo har de forma descendente. La base de tiempo se activa o desactiva a travs del bit 15 de PTCON. El usuario podr definir la base de tiempo estableciendo el periodo y el ciclo de trabajo deseado, valores que debern cargar en los registros PTPER y PDCx. Hemos de recordar que el dsPIC posee 4 canales, por lo que puede disponer de hasta cuatro ciclos de trabajo diferentes. 3.1 PRINCIPIO DE FUNCIONAMIENTO DE LA BASE DE TIEMPO El temporizador empieza a contar incrementando el valor de su registro asociado (PTMR), con cada pulso de la seal de reloj que le llega. La frecuencia del reloj puede ser definida por el usuario y podr ser tan pequea con la frecuencia de trabajo del dsPIC (FCY). Este valor contenido en el registro PTMR se compara cada TCY (periodo de trabajo del dsPIC) con el periodo de la seal deseada introducido en el registro PTPER. En el momento en el que el valor del temporizador coincida con el valor cargado en PTPER, comenzara un nuevo periodo. Al mismo tiempo, el valor del temporizador se compara cada TCY/2 con el valor del ciclo de trabajo deseado en el registro PDCx. En el momento que el valor del temporizador coincida con el valor cargado en el registro PDCx, la salida cambiara de estado. Si estaba en el nivel alto, pasara a nivel bajo y viceversa.

3. GENERACION DE LA BASE DE TIEMPO


La base de tiempo establece los instantes en que finalizan los ciclos de trabajo, as como los instantes de comienzo de un nuevo periodo para la seal de salida deseada. La base de tiempo del PWM est provista de un temporizador de 15 bits con un preescalado y un postescalado. Los 15 bits del temporizador son accesibles a travs del registro PTMR. Adems el bit PTDIR de este registro indica la direccin de la cuenta del temporizador. Si PTDIR est 0, contara ascendentemente y si

ITSS MODULO PWM PARA CONTROL DE MOTORES

3.2 MODOS DE FUNCIONAMIENTO DE BASE DE TIEMPO La base de tiempo del PWM se puede configurar para cuatro modos distintos de funcionamiento mediante los bits PTMOD del registro de control PTCON. Estos dos son: Modo normal. Modo de evento nico Modo de conteo ascendente/descendente Modo de conteo ascendente/descendente con doble interrupcin.

puesto a 0 con lo que la base de tiempo queda deshabilitada. El postescalado no tiene ningn efecto cuando se trabaja en este modo. 3.5 MODO DE ASCENDENTE/DESCENDENTE CONTEO

3.3 MODO NORMAL Este modo, la base de tiempo de PWM cuenta ascendentemente hasta que se alcanza el valor del periodo contenido en el registro PTPER. Cuando sucede esto, se resetea el registro PTMR, comienza de nuevo la cuenta y se genera una interrupcin. Esta secuencia se mantiene mientas en bit PTEN del registro PTCON est activo. El postescalado puede ser utilizado en este modo para reducir la frecuencia de las interrupciones. 3.4 MODO DE EVENTO NICO En este modo el temporizador comienza su cuenta ascendente en el que el bit PTEN del registro PTCON es puesto a 1. En el instante que el PTMR alcanza el valor del periodo (PTPER), el temporizador (PTMR) se resetea, se genera una interrupcin y el bit PTEN es

En este modo la base de tiempo cuenta en sentido ascendente hasta que se alcanza el valor del periodo contenido en el registro PTPER. En ese momento el temporizador comenzara a contar en sentido de descendente. Cuando el valor del registro PTMR alcanza el valor 0 se genera una interrupcin y comienza la cuenta ascendente. El bit PTDIR del registro PTMR que es de solo lectura, indica l direccin de conteo. En este modo se puede utilizar el postescalado para reducir la frecuencia de las interrupciones. 3.6 MODO DE ASCENDENTE/DESCENDENTE DOBLE INTERRUPCIN CONTEO CON

El funcionamiento en este modo es idntico al anterior con la nica diferencia que las interrupciones se generan cuando el temporizador llega a cero y tambin cuando alcanza el valor del periodo. 3.7 PREESCALADO Y POSTESCALADO DELA BASE DE TIEMPO Preescalado El prescalado lo soporta un divisor de pulsos que est a la salida del reloj y

ITSS MODULO PWM PARA CONTROL DE MOTORES

divide el nmero de pulsos de este, permitiendo hacer ms rpida la seal de salida PWM. El factor de divisin puede elegirse entre: 1:1; 1:4; 1:16; o 1:64 que se selecciona mediante los bits PTCKPS del registro de control PTCON. El contador del preescalado se pone a 0 cuando ocurre cualquiera de las siguientes situaciones: Escritura del registro PTMR Escritura del registro PTCON Reseteo de cualquier dispositivo 3.8 POSTESCALADO La salida del detector de cero (que es el que detecta cuando el PTMR llega a 0) puede ser posescalada de manera opcional con un control de 4 bits (que permite escalar desde1:1 hasta 1:16), con lo que se puede acelerar la frecuencia de generacin de la interrupciones. El postescalado es til cuando el ciclo de tarea de PWM no necesita ser actualizado cada ciclo PWM. Al igual que el preescalado, el contador del postescaldo se pone a 0 cuando se produce cualquiera de las siguientes situaciones: Escritura del registro PWM Escritura del registro PTCON Reset de cualquier dispositivo

Para calcular el valor adecuado que hay que cargar en PTPER y en PDCx para conseguir la seal de salida deseada se deben aplicar las siguientes formulas PTPER= -1

Mediante esta frmula se obtiene el valor del periodo de la seal de salida deseada que hay que cargar en el registro PTPER en funcin de la frecuencia de trabajo de Dspic (FCY, la frecuencia deseada para la seal (FPWM) y el pre escalado seleccionado PDCx=PTPER. Ciclo trabajo (%) Mediante esta frmula se calcula el valor del ciclo de trabajo de la seal de salida deseada que hay que cargar en el registro PDCx, o lo que es lo mismo, la anchura deseada de los pulsos de la seal de salida. Este valor es funcin del ciclo de trabajo, dado en tanto por ciento del periodo de la seal y del valor cargado en PTPER hallado la formula anterior. En la figura siguiente se muestra las frecuencias mximas y mnimas que se pueden conseguir para la seal de salida Pre escalado 1 4 16 64 FPWM Mxima 10MHz 2.5MHz 625MHz 156MHz FPWM Mnima 610MHz 152.6MHz 38.2MHz 9.6MHz

4. SELECCIN DE PERIODO Y DEL CICLO DE TRABAJO

Fig. Frecuencias para el pre escalado

ITSS MODULO PWM PARA CONTROL DE MOTORES

EJEMPLO 1 Se desea obtener de 50Hz de frecuencia, con un ciclo de trabajo del 75% por el canal 1 del mdulo PMW de un Dspic que trabaja a 20MHz. Calcular los valores con lo que hay que cargar el registro de periodo PTPER y el registro PDCx correspondiente PTPER= -1=24.999

ascendente/descendente Fig. Tipos de seales de salida para cada modo de funcionamiento de la base de tiempo

5.1

FLANCO ALINEADO

El valor que hay que cargar en el registro PTPER Es: 110000110100111 2. Ciclo de trabajo PDC1=24.999*75=18.749 El valor que hay que cargar en el registro PDC1 es: 100100100111101 Nota: Se podra haber elegido otro pre escalado para resolver el ejercicio

El periodo y el ciclo de tarea de las seales de salida de los canales PWM, viene especificados en los registros PTPER y PDCx respectivamente. El periodo es el mismo para todos los canales pero el ciclo de trabajo es especfico de cada uno de ellos Si el valor cargado en el registro PDCx es cero, la salida correspondiente estar inactiva durante todo el periodo PWM y ducho valor es mayor que el contenido en el registro PTPER, la salida estar durante todo el periodo 5.2 PULSO NICO

5. TIPOS DE SALIDA

SEALES

DE

Este tipo de salida de los generadores PWM depende del modo de funcionamiento establecido para la base de tiempo. Para cada modo de funcionamiento, el tipo de seal de salida ser diferente, como se muestra en la figura siguiente. Modo de funcionamiento de la base de tiempo Normal Evento nico Conteo Tipo de seal de salida Flanco alineado Pulso nico Pulso nico

Cuando la base est configurada en el modo de funcionamiento en el modo de funcionamiento de evento nico, lavase de tiempo a funcionar en el instante en el que el bit PTEN sea puesto en 1. En ese momento, el PTMR comienza su cuenta ascendente y al mismo tiempo se activa por el nivel alto las seales se salida de los canales que se encuentran habilitados, Estas seales permanecern activas hasta que el temporizador PTMR alcance el valor del ciclo de trabajo de cada canal. Por lo tanto, la duracin de los pulsos de la seal de salida de cada canal est determinada por el valor del registro PDCx correspondiente 5.3 CENTRO ALINEADO

ITSS MODULO PWM PARA CONTROL DE MOTORES

Las Seales de centro alineado son generadas por el mdulo PWM cuando la base de tiempo est configurada en cualquier de los dos modos ascendente/ descendente. Cuando el temporizador PTMR comienza la cuenta ascendente, se activa las salidas de los canales PWM habilitados: En el momento en que el PTMR alcanza el valor del ciclo de trabajo de un canal PWM, la seal de dicho canal se desactiva

7. GENERACION DE TIEMPO MUERTO


La generacin de tiempo muerto se habilita automticamente siempre que el dsPIC trabaja en modo complementario. El dsPIC no puede ser las salidas PWMxH y PWMxL conmuten al mismo tiempo, por ello introduce un tiempo muerto o tiempo de espera entre la activacin /desactivacin de una y la desactivacin/activacin de la otra. 7.1 GENERADORES MUERTO DE TIEMPO

6. MODOS DE SALIDA
Como se puede apreciar todos los PWM tienen dos salidas diferentes, la alta PWMxH y la baja PWMxL. El mdulo PWM puede ser configurado. 6.1 MODO INDEPENDIENTE

Cada canal de PWM tiene un generador de tiempo muerto en el cual se puede cargar dos valores diferentes para determinar dicho tiempo muerto. El tiempo muerto est determinado por los bits DTSxA (seal activa) y DTSxI (seal inactiva e inversa) del registro DTCON2. En funcin de estos bits se carga el valor de la unidad A o B en un contador descendente de 6 bits. De esta forma cuando comienza un ciclo de trabajo (flanco ascendente) se podr en marcha el contador y se retrasar el inicio de la seal activa (PWMxH) hasta que este llegue a cero de la misma manera se retrasara el final de la seal inactiva (PWMxL).
Imagen. Efecto del tiempo sobre la salida PWM.

En el modo independiente las salidas de un mismo canal son iguales. Este modo es seleccionado activando el bit PMOD correspondiente en el registro PWMCON1. Los generadores de tiempos muertos son deshabilitados cuando se trabaja en este modo. 6.2 MODO COMPLEMENTARIO

En el modo complementario, la salida PWMxL, es la inversa de PWMxH. Este modo se selecciona poniendo a cero el bit PMODx correspondiente del registro PWMCON1. Cuando el dsPIC trabaja en este modo se puede introducir en la seal tiempos muertos, que son cortos periodos de tiempo durante los cuales ambas salidas estarn inactivas

7.2 CALCULO DE LOS VALORES DE TIEMPO MUERTO Los valores de tiempo muerto que se cargaran en DTB y en DTA vienen definido por la frmula:

ITSS MODULO PWM PARA CONTROL DE MOTORES 10.3 DISPARO ESPECIAL El mdulo PWM tiene un disparador especial que le permite sincronizar la base de tiempo con el convertidor analgico-digital. El tiempo de adquisicin y conversin A/D puede ser programado para que se produzca en cualquier punto del periodo PWM. El mdulo PWM siempre producir la seal de disparo y puede ser utilizada opcionalmente por el mdulo A/D. Este disparador tiene asociado un post escalado que permite un escalado de 1:1 a 1:16. El post escalado es til cuando no se realiza conversiones A/D cada ciclo PWM. Se escribe en el registro SEVTCMP. Se representa un dispositivo

Existen cuatro posibles valores de pre escalado (1:1, 1:2, 1:4, 1:8) para la entrada de reloj que permiten establecer el rango adecuado para los tiempos muertos.

8. OTROS RECURSOS MODULO PWM


10.1 CAMBIO MANUAL

DEL

Las seales de salida de los canales de PWM (PWMxH y PWMxL) normalmente evolucionan de manera automtica segn el tipo de configuracin que se haya cargado en los registros correspondientes. Estas salidas pueden ser 1 o a0 por el programador manualmente. EL registro OVDCON encargado de controlar este recurso. Posee 8 bits (POVDxH y POVDxL) por quin es controlada la salida, por el mdulo PWM o por el programador y otros 8 bits (POUTxH y POUTxL). El cambio manual se puede sincronizar con la generacin de la base de tiempo para que las salidas evolucionen segn el tiempo controlado por el registro PTMR. 10.2 PATITAS DE FALLO El mdulo PWM dispone de 2 patitas de fallo FLTA# y FLTB# que son patitas de entrada activas por nivel bajo. Cada patita tiene su propio vector de interrupcin. Los registros que controlan este recurso son FLTACON y FALTBCON. Estos registros son idnticos y cada uno controla a su patita correspondiente.

El dsPIC posee un registro dedicado a este recurso, es el SEVTCMP dispone de 15 bits en los que se carga el valor que se compara con PTMR (recordar que PTMR es un temporizador de 15 bits). El bit SEVDIR slo se utiliza en caso de que la base de tiempo trabaje en modo ascendente/descendente e indica si el disparo se produce en la cuenta ascendente (SEVDIR=0) o en las descendentes (SEVDIR=1). 15 SEVTDIR Figura: registro SEVTCMP 10.4 MODOS SLEEP E IDLE Cuando el dsPIC funciona en modo Sleep, el reloj del sistema se detiene y la CPU deja de ejecutar instrucciones. En cuanto al mdulo PWM, mantendr las seales de salida en el mismo estado en el mismo estado en el que 14 SEVTCMP 0

ITSS MODULO PWM PARA CONTROL DE MOTORES estaban antes de entrar en Sleep, es importante que este estado sea seguro, lo cual es responsabilidad del programador. Para entrar en sleep es PWRSAV y una de las formas de despertar del sleep es a travs de las interrupciones provocadas por las patitas de fallo. El modo IDLE, anuqu la CPU detenga la ejecucin de instrucciones, existe la posibilidad de que el mdulo PWM siga funcionando poniendo a 0 el bit PTSILD del registro PTCON.