Escolar Documentos
Profissional Documentos
Cultura Documentos
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
para
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. Para simplificar la descripcin del modulo PWM se hace referencia nicamente a los de la gama superior. 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
1.2
El movimiento de un motor elctrico se consigue mediante la variacin continua de 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
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 de dos patitas de fallo y dos generadores de tiempos muertos.
Modo ascendente/ descendente con doble interrupcin (11) PWMCONx: Registros de control 15 0 0 P M O D 4 11 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 0 P E N 3 L P E N 2 L P E N 1 L
de
configuracin
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 tienen las siguientes funciones: PTEN: cuando PTEN=1 la base de tiempo esta activo y cuando se pone a 0 se desactiva 15 0 PT EN 0 PTSI DL 0 .0 13 9
Figura3. 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 0.0 12 SEVOPS 7 00 Figura4. 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 DTB DTAPS Figura5. DPA 0 2 OSYNC UDIS 0
PTO PS
PTCK PS
PTM OD
Figura2: Registro PTCON 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)
DTBPS
. 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. 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. PTPER: 15 bits que contienen el valor del periodo de la seal.
Figura7: Registro PTMR PTDIR: indica si la base de tiempo cuenta ascendente (PTDIR=0) o descendentemente. PTMR: bits que indican el valor de conteo.
0 15
. Esta seal se utiliza para sincronizar el funcionamiento del convertidor analgico- digital (CAD) con el mdulo PWM. 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.
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. 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
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
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. 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. 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. 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
PERIODO
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
1 4 16 64
. 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 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.
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 ascendente/descendente Tipo de seal de salida Flanco alineado Pulso nico Pulso nico
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.
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
7. GENERACION MUERTO
DE
TIEMPO
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.
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). 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.
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 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).
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.
Los valores de tiempo muerto que se cargaran en DTB y en DTA viene definido por la formula:
El modulo PWM tiene un disparador especial que le permite sincronizar la base de tiempo con el convertidor analgico-digital. 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. 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 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 14 0 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. 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, aunque 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.
9.
CONCLUCIONES
controlar motores
SEVTDIR
SEVTCMP
10.
BIBLIOGRAFIA:
Microcontroladores avanzados dsPIC, controladores digitales de seales arquitectura programacin y aplicaciones, capitulo 17, la memoria de datos.
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