Autor Tema: sincronizar PWM  (Leído 7250 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
sincronizar PWM
« en: 30 de Septiembre de 2013, 10:08:53 »
hola.estoy con un 18f2550 y en asm.nunca habia usado el PWM y queria saber si hay alguna forma de disparar la señal a mi antojo.queria sincronizarla
con el cruzamiento por cero de una señal alterna.y modularla al mismo tiempo.

se me ocurre activar/desactivar el modulo PWM en cada sincronizacion.pero no se si sera lo mas efectivo o si la señal modulada puede que no fuera
la que tubiera configurada.

mi intencion es generar una señal sincronizada con cada cresta de la señal alterna.y modular el ancho de este pulso para abarcar parte o la totalidad
de un semiciclo desde el centro de este.
para ello tendre que realizar unos calculos partiendo de la deteccion del cruze por cero y adelantando/atrasando el disparo del pulso,teniendo en cuenta
la anchura del pulso que quiero obtener.
eso si.el pulso independientemente de su anchura,debe de estar centrado en el semiciclo de la señal alterna.
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado Tisco

  • PIC16
  • ***
  • Mensajes: 108
Re: sincronizar PWM
« Respuesta #1 en: 30 de Septiembre de 2013, 11:38:02 »
Igual te es más cómodo usar el módulo en modo comparación. A mí personalmente, para disparar un pulso 'x' tiempo después de un trigger, normalmente me es más cómodo hacerlo así.

Un saludo.

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: sincronizar PWM
« Respuesta #2 en: 30 de Septiembre de 2013, 17:00:25 »
te refieres a poner el valor: 1011 = Compare mode: trigger special event, reset timer, start A/D conversion on CCP2 match (CCPxIF bit is set)

del registro CCPxCON? que es lo que hace?



Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado Tisco

  • PIC16
  • ***
  • Mensajes: 108
Re: sincronizar PWM
« Respuesta #3 en: 01 de Octubre de 2013, 03:31:18 »
te refieres a poner el valor: 1011 = Compare mode: trigger special event, reset timer, start A/D conversion on CCP2 match (CCPxIF bit is set)

del registro CCPxCON? que es lo que hace?





El "compare mode" se puede configurar para que cuando el registro CCPRx y el TMRx coincidan; un pin se ponga a '1', a '0' o cambie su estado.
Normalmente, cuando se trabaja con corriente alterna, es mejor trabajar con un disparo a partir de un cruce por cero mediante este modo.
Si se usa el PWM, aunque se sincronice en el cruce por cero, poco a poco se iría desincronizando de la red (fallos en frecuencia del uC y de la red).

Usando el pin denominado "CCPx ouput" y la interrupción, puedes precargar el valor que deseas temporizar antes de que se produzca el trigger y lanzar el TMRx sólo cuando éste se produzca. Así, la latencia sería muy baja, sólo el tiempo de entrar en la interrupción y lanzar el TMRx. Si necesitas mucha precisión, se puede tener en cuenta la latencia en el valor de comparación del registro CCPRx.

No sé si me he explicado bien. Para cualquier duda o aclaración seguro que entre la gente del foro la damos resuelto  :)

Un saludo,

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: sincronizar PWM
« Respuesta #4 en: 02 de Octubre de 2013, 17:02:21 »
hola Tisco.

para que haya una idea de lo que quiero hacer. mi intencion es diseñar un regulador PWM que controle la carga de una baterias con la
energia producida por un alternador trifasico de un aerogenerador.este regulador tiene dos salidas.una de ellas es la encargada de cargar unas bateias.
la otra se encarga de desviar la energia sobrante de la que no consumen las baterias.a unas resistencias para calentar agua.

las revoluciones dependen de la velocidad del viento.pero dire que a unas 200rpm el alternador generaria unos 14v en vacio.es decir
que apartir de estas revoluciones apareceria un pequeño inpulso centrado en cada semiciclo.que sera el que excite el transistor fet hacia la carga.
que estaran las baterias a cargar.

cuando el generador gire a mas rpm,el voltage subira de 14.4 que automaticamente se estabilizara al ensanchar el pulso de control.mediante
la comparacion de un valor prefijado con el valor de voltage producido por el alternador.que es comparado por una entrada A/D del pic.

una caracteristica de todos los alternadores es que cuanto mayor es la carga mas se frena este.por eso la elice no girara a excesiva velocidad
manteniendo una carga constante.claro que dentro de unos valores aceptables de la velocidad del aire.

en una prueba que hize.consegui 14,8v con una carga de 3,3A a 730rpm. y a mas revoluciones se produciria mas potencia.y esto en una sola de
las fases.



realmente no se como se comportara una bateria cuando este plenamente cargada.se que cuando estan muy descargadas,no se produce mucha intensidad
hasta que empieza a cargarse.luego empieza a subir el amperage de carga.y cuando esta cargada y se sigue cargando,se empieza a calentar.
por eso la segunda salida para las resistencias de calentamiento del agua.estoy pensando en desbiar la energia cuando la anchura del pulso de control
sea la maxima.ya que de lo contrario el voltage subiria de los 14.4v si no hay una descarga de energia.y tambien he pensado en desviar la energia
de carga de la bateria cuando la bateria este sobrecalentada.

me parece que este proyecto me va a suponer un gran desafio.ya que lo mas que he hecho en el control de señales alternas es un dimmer.y la frecuencia era
fija.no variable.




lo primero que tendria que hacer es configurar un pin del pic para producir una interrucion por cruce por cero.en este momento resetearia el TMR1  y esperaria al siguiente
cruce por cero para determinar la duracion de un semiciclo de una de las fases.cuando tenga el tiempo de un semiciclo,lo dividire por 3 para determinar
el centro de cada semiciclo de las 3 fases.

una vez determinado el centro de cada semiciclo.quedaria determinar la anchura del pulso PWM centrado en cada semiciclo.para esto tengo que comparar
un valor prefijado de 14.4v  con una entrada analogica del pic.y apartir de aqui el ancho del pulso aumentara cuando el voltaje del alternador supere este limite.
y disminuira cuando el voltage este por debajo del limite de 14.4v

como esto se realiza a mucha velocidad.pues solo notariamos una regulacion instantanea.pero me da que me va a costar trabajo hacer esto.

como dato confirmo que el alternador es de 12 polos.es decir que cada vuelta del alternador se produciran 12 semiciclos de la corriente alterna.6 positivos
y 6 negativos.que rectificados daran 12 semiciclos positivos en cada fase.y como hay 3 fases,se producirian un total de 36 semiciclos positivos.
solo que cuando se unen semiciclos de diferentes fases,estos estan en parte superpuestos.
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: sincronizar PWM
« Respuesta #5 en: 03 de Octubre de 2013, 09:54:01 »
se me ha ocurrido otra idea que seria menos laboriosa y no necesitaria de la deteccion del cruce por cero.
seria comparar una entrada analogica del voltage del alternador con otro de limite de tension.en este caso 14.4v
y cuando coincida, que una interrupcion comienze la modulacion del pulso.por encima de este valor el pulso se ensancha y por devajo se estrecha.el rango seria desde
la desaparicion del pulso hasta la activacion completa.

veremos a ver que usar para que esto funcione.
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: sincronizar PWM
« Respuesta #6 en: 03 de Octubre de 2013, 10:16:36 »
Con una entrada analógica del pic y con una salida pwm lo podrías hacer, con un divisor resistivo a la entrada analógica, lees el valor de tensión del alterador, sí sube de 1,44v después del divisor, hace el calculo mediante una regla de 3, y le asigna el valor al módulo pwm
siempre y cuando el valor obtenido en la entrada analogica supere los 1,44v se calculará un valor proporcional para el pwm, sí no es así, el valor del pwm que sea 0
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: sincronizar PWM
« Respuesta #7 en: 04 de Octubre de 2013, 18:38:10 »
si funcionaria.el problema es que necesito que las comparaciones se hagan con interrupciones.por eso quería usar el modulo comparador.que creo que
si que salta una interrupción cuando coinciden dos valores.

asi he configurado los registros del modulo con estos valores:

movlw   b'00001110'
movwf   CMCON
         
         
pero no logro que funcione.no se si este modulo sirve para esto.tambien he configurado el modulo de voltage de referencia.

movlw   b'11101000'
movwf   CVRCON

en el isis he conectado dos resistencias variables a RA2 y RA3 .(Vref- y Vref+) respectvamente
y he puesto dos led a RA4 y RA5. (C1out y C2out) respectivamente.

tengo una simulacion de un generador trifasico.pero no esta conectado al pic.y aun asi el led que he puesto en C1out esta en intermitente.y he visto
que esta sincronizado con la frecuencia del generador.


Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: sincronizar PWM
« Respuesta #8 en: 05 de Octubre de 2013, 04:29:48 »
si funcionaria.el problema es que necesito que las comparaciones se hagan con interrupciones.por eso quería usar el modulo comparador.que creo que
si que salta una interrupción cuando coinciden dos valores.

asi he configurado los registros del modulo con estos valores:

movlw   b'00001110'
movwf   CMCON
         
         
pero no logro que funcione.no se si este modulo sirve para esto.tambien he configurado el modulo de voltage de referencia.

movlw   b'11101000'
movwf   CVRCON

en el isis he conectado dos resistencias variables a RA2 y RA3 .(Vref- y Vref+) respectvamente
y he puesto dos led a RA4 y RA5. (C1out y C2out) respectivamente.

tengo una simulacion de un generador trifasico.pero no esta conectado al pic.y aun asi el led que he puesto en C1out esta en intermitente.y he visto
que esta sincronizado con la frecuencia del generador.




y con que criterio quieres establecer la modulación por pulsos? Cuando llegue a 14,4v empezar a funcionar el pwm?
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: sincronizar PWM
« Respuesta #9 en: 05 de Octubre de 2013, 11:20:31 »
Si se pasa del voltage de referencia. el ancho del pulso aumenta.si se quedaa corto disminuye
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado AcoranTf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1093
Re: sincronizar PWM
« Respuesta #10 en: 05 de Octubre de 2013, 14:38:08 »
Si solo quieres cargar las baterias, ¿no seria mucho mas simple trabajar directamente con continua?. La tension generada por el alternador se rectifica y filtra y a partir de ahi haces un PWM, que te proporcione una tension fija en la salida. Con eso te quitas tantas comparaciones y complicaciones y sobretodo te olvidas de comparar y regular en alterna, que siempre es mas complejo.
Ese es el sistema que utilizan los cargadores industriales.
Por otro lado comentarte que si la bateria es de plomo/acido, la tension para maxima carga, o sea para carga 100 % es de 2,8 V/elemento. Por tanto para una bateria de 12 V. la tension a maxima carga seria de 2,8 X 6 = 16,8 V. Para el 80 % seria de 2,4 V/elemento.

Saludos.

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: sincronizar PWM
« Respuesta #11 en: 05 de Octubre de 2013, 15:29:28 »
ya.al final me di cuenta de que no importa sinclonizar la señal alterna.pero de todas formas todo lo que estaba comentando hera para una tension continua-pulsante.
ya que solo continua los dan las placas solares.no un alternador.porque siempre queda alguna cresta.en este caso son 36 crestas por vuelta.pero si que es continua.

me di cuenta de que no importa sincronizar las crestas porque la amplitud de las crestas varian segun la carga.que se controlan por la modulacion del impulso
de excitacion del transistor fet.

asi que necesito que al coincidir la tension producida por el alternador con una de referencia de 14.4v .se produzca una interrupcion.y otra interrupcion cuando baje
de 14.2v

todo esto para mantener un rango de carga.si quisieramos mas carga.pues aumentamos los limites.no hay problema.
se podrian poner dos potenciometros para las tensiones de referencia de maximo y minimo.

quizas solo haria falta un potenciometro para un solo limite pero no tengo la idea muy asimilada del todo.no se como se va a comportar el generador segun que a que velocidad fuera,carga y regulacion.hasta que no haga varias pruebas no sabre que sera lo mejor.

pero lo que si me hace falta es controlar lo de las interrupciones.
« Última modificación: 06 de Octubre de 2013, 09:59:57 por groundman »
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: sincronizar PWM
« Respuesta #12 en: 06 de Octubre de 2013, 11:32:55 »
estoy simulando el circuito en el isis.pero no logro que funcione.no se si sera que el isis no simula bien el modulo comparador o
que hay algo que no estoy haciendo bien.

tengo dos potenciometros puestos en (RA2 Vref-) y (RA3 Vref+) que entregan unos voltages variables entre 0 y 5v
y he pusto dos led en (RA4 1OUT) y (RA5 2OUT)

el registro CMCON esta configurado asi:

movlw   b'00001110'
movwf   CMCON

los cuatro primeros bits (b7..b4) no tienen importancia por el momento.solo es una configuracion para establecer como se van a comportar las salidas.
el bit (b3) esta a 1 para seleccionar que los pines (RA2 y RA3) esten conectados a las entradas de los comparadores en Vref- y Vref+

los tres bit (b2..b1) configuran los comparadores para el modo: (Four Inputs Multiplexed to Two Comparators). que seria para comparar independientemente
Vref- y Vref+ con el: (COMPARATOR VOLTAGE REFERENCE MODULE) que es un modulo que compara las entradas Vref- y Vref+ con un valor de referencia.

este valor de referencia se configura en el registro CVRCON y que lo he configurado asi:

movlw   b'10001111'
movwf   CVRCON

el bit (b7)  1=modulo activado.
(b6) conecta la salida del modulo al pin Vref-. que en este caso lo tenemos desconectado.
(b5) es para tener mayor o menor rango de voltages a generar.en este caso he puesto mayor rango.
(b4) tomamos la fuente a la que le aplicaremos la generacion de voltages de referencia.en este caso cojo la alimentacion del pic.0 y 5v
(b3..b0) es donde seleccionaremos el valor del voltage de referencia que nos generara el modulo a traves de una red de resistencias.

TRISA='11001111' para configurar el puerto de E/S aunque no se si seria necesario.

y luego esta el:ADCON1 con el valor b'11111011'

aqui en (b0..b1) he configurado (RA0..RA3) entradas analogicas.resto digitales.
pero (b5,b4) VCFG0. no se exactamente para que sirve.ya que si es para conectar los pines b5 y b6 a Vref+ y Vref- o a la alimentacion del pic.
no entiendo como de por si en el modulo generador de voltage de referencia hay otra conexion igual.

de todas formas haga como lo haga y con todas las combinaciones que he hecho.nunca veo que los led conectados en RA4 y RA5 se activen.
y se supone que cuando vario los potenciometros deberia coincidir algun voltage.


al final voy a tener que hacer el circuito fisicamente valla a que todo sea un problema del isis.
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: sincronizar PWM
« Respuesta #13 en: 06 de Octubre de 2013, 15:31:20 »
estoy haciendo la simulacion en circuito con el ICD2 y no hay forma de que funcione.que mas abra que configurar?
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: sincronizar PWM
« Respuesta #14 en: 06 de Octubre de 2013, 17:04:37 »

ya funciona.lo que pasaba es que segun el datasheet las salidas C1OUT y C2OUT no estan implementadas en todos los modos de operacion
solo lo estan en:(Two Independent Comparators with Outputs CM2:CM0 = 011) y en: (Two Common Reference Comparators with Outputs CM2:CM0 = 101)

asi que los led no se encendian.por el momento usare (CM2:CM0 = 101). asi tengo dos potenciometros para el control de maxima y minima carga.
y otra entrada para la lectura del voltage producida por el alternador.

pero solo funciona fisicamente.no logro hacerlo en el simulador del isis.
Montando mi primera impresora 3D (Raprep Prusa i3)


 

anything