Autor Tema: Cosa extraña con el PWM del dspic30f2010  (Leído 3243 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Pepin33

  • PIC10
  • *
  • Mensajes: 13
Cosa extraña con el PWM del dspic30f2010
« en: 16 de Noviembre de 2011, 11:56:58 »
¡Hola! Soy nuevo en el foro, y llegué intentando encontrar una explicación a algo muy extraño que me sucede al intentar generar un pulso PWM con un ds30f2010.

Yo le configuro la base de tiempos como normal (freerunning), con lo cual, si lo he entendido bien, se carga el valor del periodo en el registro PTPER, el ciclo de trabajo en PDC1, y al poner en marcha el PWM se genera un pulso de subida en la entrada PWM H correspondiente (en mi caso estoy usando sólo la 1H y la 1L como complementaria), el contador PTMR va aumentando una vez por cada ciclo de reloj (los pre y postescalados los tengo todos en 1:1), hasta que alcanza el valor PDC1, en cuyo momento la señal en PWM1H pasaría a estado bajo, hasta que PTMR alcanza el valor especificado en el registro PTPER.

Pues bien, si esa teoría está bien, algo estoy haciendo mal. Y es que yo configuro un periodo en PTPER (supongamos, 400 ciclos), pongo el PDC1 en la mitad (200 ciclos de reloj), para que el ciclo de trabajo sea del 50%, y cuando hago la simulación del programa, veo cómo tengo los valores cargados correctos, y cómo empieza el PWM1H en estado alto, va contando el PTMR, y cuando llega a la mitad del valor de PDC1 me cambia el PWM1H a estado bajo, con lo cual en realidad me está haciendo un ciclo de trabajo del 25%, y no del 50. Para conseguir que el ciclo de trabajo sea el que busco (mitad del periodo en alta, mitad en baja), tengo que poner en PDC1 el mismo valor que en PTPER. ¿Alguien sabe por qué puede ser eso?  :5]
« Última modificación: 16 de Noviembre de 2011, 11:59:25 por Pepin33 »

Desconectado mdlamber26

  • PIC10
  • *
  • Mensajes: 4
Re: Cosa extraña con el PWM del dspic30f2010
« Respuesta #1 en: 02 de Febrero de 2012, 15:08:20 »
Hola Pepin33: puedes pegar el codigo del PWM aqui para ver si te podemos ayudar?

Desconectado marqueses

  • PIC12
  • **
  • Mensajes: 80
    • Alberto Marqueses Blog
Re: Cosa extraña con el PWM del dspic30f2010
« Respuesta #2 en: 02 de Febrero de 2012, 20:08:57 »
Hola Pepin,

Espero que esta imagen te pueda ayudar, ya que no indicas la frecuencia a la que trabajas. Te pongo ademas el codigo en CCS para un dsp33FJ128MC802, donde también obtenía el 50% cuando el valor en el timer y el duty eran el mismo :

 
Código: [Seleccionar]
  setup_motor_pwm(1,MPWM_FREE_RUN ,1,1,2048); 
   set_motor_unit( 1,1,MPWM_INDEPENDENT | MPWM_ENABLE_H,0,0);
   set_motor_pwm_duty(1,1,2048);  // Duty=50%

Échale un vistazo a ésto
http://ww1.microchip.com/downloads/en/DeviceDoc/70062E.pdf
Alberto Aragón Marqueses
albertomarqueses.wordpress.com


 

anything