Você está na página 1de 7

MODULOS PWM PARA CONTROL DE MOTORES

un campo elctrico o magntico, dependiendo del tipo de motor, para obtener as un campo rotatorio. Mediante el PWN se controla la corriente de alimentacin del motor . Variando el porcentaje de tiempo de la seal rectangular en estado alto y bajo , es decir variando la anchura de pulso e la seal. 1.3 DISPOSITIVOS DSPIC30F PARA APLICACIONES DE CONTROL DE MOTORES Dentro de la familia dsPIC30F existen dos subfamilias destinadas al control de motores , una es de gama baja y la otra de gama superior. Los dispositivos de la gama baja incorporan mdulos PWM de 6 salidas, mientras que los dispositivos de gama superior son de 8 salidas. Un mismo dispositivo dsPIC30F puede tener mas de un modulo PWM. 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. Entre las aplicaciones mas interesantes en el control de motores mediante los dsPIC30F destacan las siguientes: Motores de induccin trifsicos . Motores sncronos de reluctancia variable Motores de corriente continua sin escobillas Sistemas de alimentacin ininterrumpida

Xavier Aldemar Jumbo Sarango e-mail: xavieraldemarjumbo@hotmail.com RESUMEN: En el presente artculo se mostraran los conceptos fundamentales acerca de lo que es el modulo pwm para control de motores. El modulo pwm para control de motores es una parte fundamental de los dsPIC30F ya que son dispositivos electrnicos avanzados y programables. 1. INTRODUCCION Tenemos varios mtodos para poder regular la velocidad de un motor elctrico: Regular la tensin Intercalar una resistencia, aunque este sistema desperdicia energa Modular la tensin de alimentacin mediante el procedimiento de Modulacin por Anchura de Pulsos (PWM) Actuar sobre la frecuencia cuando se trata de un motor de alterna , aunque esto no siempre es posible

1.1 MODULACIN POR ANCHURA DE PULSO (PWM) PWM( Pulse Width Modulation) , hoy da muchos de los microcontroladores comerciales incorporan esta funcin hardware que se puede utilizar par conseguir una salida analgica a partir de una seal digital a travs de la variacin del valor eficaz de la seal. Para un pulso mas ancho, el valor eficaz de la seal es mayor que por un pulso mas estrecho, por lo que variando la anchura de pulso del tren de pulsos de la seal se puede conseguir una seal cuyo valor eficaz varia de la forma deseada 1.2 CONTROL DE MEDIANTE PWM MOTORES

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

El movimiento de un motor elctrico se consigue mediante la variacin continua de

Existen tres bits de configuracin par configurar el estado de Reset inicial y polaridad de las patitas de entrada y de salida. Estos bits se encuentran en el registro de configuracin de dispositivos FBORPOR. PTCON: Registro de control de la base de tiempo Los campos de registro de bits del registro PTCON tienes las siguientes funciones: PTEN: cuando PTEN=1 la base de tiempo esta activado y cuando se pone a 0 se desactiva 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)

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 DTBPS DTB 7 DTAPS DPA 0

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 DTCON 2 15 8 0 .0 DT S4 A 7 DT S4 1 DT S3 A DT S3 1 DT S2 A DT S2 1 DT S1 A 0 D T S

PWMCONx: Registros de control 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. PWMCON2 15 00 12 SEVOPS 7 00 2 OSYNC 0 UDIS

DTS4A: bit de seleccin del tiempo muerto para la seal activa PWM4 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. 2.2 REGISTRO PDCX Para generar una seal de pulsos de anchura de pulso variable lo primero que hay que determinar es el periodo de la propia seal y su ciclo de trabajo (anchura de pulso ) 2.3 REGISTRO PTPER En este registro de carga el periodo de la seal. El registro PTPER es nico para todos los canales, siendo el periodo de la seal el mismos para los cuatro canales de PWM (esto es especificado para el control de motores que no sean monofasicos) 15 14 0

periodo, estos cambios no afecten a la seal de salida de forma instantnea, sino que para que se lleven a cabo estos cambios se deben cumplir una serie de condiciones.. 2.6 PATITAS DE FALLO Su activacin provoca una interrupcin que lleva a las salidas a un estado prefijado por el programador, para poder colocar al motor en un estado seguro en caso de cualquier anomala. 2.7 DISPARO ESPACIAL Esta seal se utiliza para sincronizar el funcionamiento del convertidor analgicodigital (CAD) con el mdulo PWM. 2.3 GENERACIN TIEMPO DE LA BASE DE

0 PTPER Fig. Registro PTPER PTPER: 15 bits que contienen el valor del periodo de la seal.

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 PTDIR esta 1, lo har de forma descendente. La base de tiempo se activa o desactiva a travs del bit 15 de PTCON. 2.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.

2.4 REGISTRO PTMR Este registro es un temporizador de 15 bits que sirve para la generacin de la base de tiempo. El valor del temporizador e ira incrementando o decrementando con la seal de reloj que llega. Dicho temporizador juega un papel importantsimo en el funcionamiento del modulo, ya que su valor se ira comparando con el valor cargado en el PDCx (ciclo de trabajo) ya su ves con el valor de PTPER (periodo) para tener la anchura de pulso deseada. 15 14 0

PTDIR PTMR FIG 2. Registro PTMR PTDIR: indica si la base de tiempo cuenta ascendente (PTDIR=0) o descendentemente. PTMR: bits que indican el valor de conteo.

2.5 REGISTRO BUFFER Cada registro PDCx y el registro PTPER poseen un registro buffer asociado, cuya misin que cuando se produzca cambios en el ciclo de trabajo de la seal, o en su

2.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.

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. 2.3.3 PREESCALADO Y POSTESCALADO DELA BASE DE TIEMPO Preescalado El prescalado lo soporta un divisor de pulsos que esta a la salida del reloj y divide el numero de pulsos de este, permitiendo hacer mas 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

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. 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 puesto a 0 con lo que la base de tiempo queda deshabilitada. El postescalado no tiene ningn efecto cuando se trabaja en este modo. Modo de conteo ascendente/descendente 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.. Modo de conteo ascendente/descendente con doble interrupcin

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

2.4 SELECCIN DEL PERIODO Y CICLO DE TRABAJO Para calcular el valor adecuado que hay que cargar en PTPER y en PCDx 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 preescalado 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 Preescalado FPWM Mxima 10MHz 2.5MHz 625MHz 156MHz FPWM Mnima 610MHz 152.6MHz 38.2MHz 9.6MHz

seal de salida ser diferente, como se muestra en la figura siguiente. Modo de funcionamientode la base de tiempo Normal Evento nico Conteo ascendente/descendente Tipo de seal de salida Flanco alineado Pulso nico Pulso nico

Fig Tipos de seales de salida para cada modo de funcionamiento de la base de tiempo 2.5.1 FLANCO ALINEADO 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 2.5.2 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 2.5.3 CENTRO ALINEADO 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

1 4 16 64

Fig Frecuencias para el preescalado 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 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 le registro PDC1 es: 100100100111101 Nota: Se podra haber elegido otro preescalado para resolver el ejercicio 2.5 TIPOS DE SEALES DE SALIDA 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

en que el PTMR alcanza el valor del ciclo de trabajo de un canal PWM, la seal de dicho canal se desactiva 2.6 MODOS DE SALIDA Como se puede apreciar todos los PWM tienen dos salidas diferentes, la alta PWMxH y la baja PWMxL. El modulo PWM puede ser configurado. 2.6.1 MODO INDEPENDIENTE 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. 2.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. 2.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. 2.7.1 GENERADORES MUERTO DE TIEMPO

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). 2.7.2 CALCULO DE LOS VALORES DE TIEMPO MUERTO Los valores de tiempo muerto que se cargaran en DTB y en DTA viene definido por la formula:

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. 2.8 OTROS RECURSOS DEL MODULO PWM 2.8.1 CAMBIO MANUAL 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 a 0 por el programador manualmente. EL registro OVDCON encargado de controlar este recurso. Posee 8 bits (POVDxH y POVDxL) poor quin es controlada la salida, por el modulo PWM o por el programador y otros 8 bits (POUTxH y POUTxL). 2.8.2 PATITAS DE FALLO El modulo 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. 2.8.3 DISPARO ESPECIAL

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 esta 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

El modulo 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 modulo 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

3. CONCLUSION PWM Significa Modulacin por Anchura de Pulsos; Y este no sirve para controlar un motor elctrico 4. BIBLIOGRAFIA Microcontroladores avanzados dsPIC, mdulos de captura de entrada, capitulo 2

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 0 14

SEVTDIR
Fig: registro SEVTCMP

SEVTCMP

2.8.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 estaban antes de entrar en Sleep, es importante que este estado sea seguro, lo cual es responsabilidad del programador. El modo IDLE, anuque la CPU detenga la ejecucin de instrucciones, existe la posibilidad de que el modulo PWM siga funcionando poniendo a 0 el bit PTSILD del registro PTCON.

Você também pode gostar