Autor Tema: Cálculo del periodo PWM y resolución de bits  (Leído 9896 veces)

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

Desconectado ALFREDOSKY

  • PIC16
  • ***
  • Mensajes: 118
Cálculo del periodo PWM y resolución de bits
« en: 13 de Enero de 2014, 16:10:23 »
Hola a todos, tengo algunas dudas sobre como calcular el periodo del PWM y la resolucion de bits, viendo el datasheet de los dsPIC33f veo una formula con el termino 'TCY' segun entiendo es el periodo del oscilador principal, si uso el TIMER2 la formula sería:


                                                                                        T_pwm=[(PR2) + 1] • TCY • (TMR2 Prescale Value)


para un periodo PWM deseado, se deben escoger el oscilador, setear PR2  y el prescaler segun convenga. Ahora con la formula de la resolucion tengo problemas,


                                     PWM Resolution (bits) =log2 [( PWM Frequency )/Timer Clock Frequency]   = log2[ (FCY/[F_pwm•(timer prescaler)] ] bits,


el término 'FCY' supongo debe ser el recíproco de 'TCY', pero al hacer el calculo con valores reales, me sale valores en decimales  :?

Para un oscilador de 16MHz, con F_pwm=100Hz, prescaler 1:1 obtengo 0.301 ????  y deberia ser algo mas de 15 bits de resolución(segun un ejemplo que vi en internet)...porfavor si alguien sabe en que estoy cometiendo un error y puede explicar como se hace correctamente les agradeceria mucho! :mrgreen:

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Cálculo del periodo PWM y resolución de bits
« Respuesta #1 en: 13 de Enero de 2014, 16:52:44 »
Asumiendo FOSC de 16MHz y TCY de 8Mhz, con F_pwm=100Hz, prescaler 1:1

para 8 Mhz CPU --> TCY = .125uS

T_pwm=[(PR2) + 1] • TCY • (TMR2 Prescale Value)
 
period = 1 / F = 1/100Hz = 10Ms = 10000uS

10000uS = [(PR2) + 1] • .125uS • 1

PR2 = 79999

El valor de PR2 es demasiado grande. Algo falla. Evidentemente estás intentando lograr una frecuencia de PWM demasiado baja para la configuración actual. Aún mejorando la config para bajar al máximo la frecuencia del PWM obtenemos a 8Mhz de CPU:

cambiando prescaler del TMR2 a 16 y PR2 a 255 (valores máximos)

T_pwm=[(PR2) + 1] • TCY • (TMR2 Prescale Value)
 

X = [255 + 1] • .125uS • 16

X = 512uS de período = 0,000512s

Por lo tanto, la mínima frecuencia de PWM que puede generar el módulo PWM mediante el TMR2 y a 8Mhz de CPU es:

1 / X = 1953 Hz aprox.

PD1: Ojo, que desconozco la familia dsPIC en casi su totalidad. Si es como muchos ARM donde permite bajar la velocidad de cada periférico por separado respecto del CPU principal, tal vez puedas bajar la velocidad de trabajo del TMR2 para lograr un PWM de 100Hz.

PD2: Puede que PR2 pueda adquirir valores mayores en estos uC, y por lo tanto lograr bajar la freq mínima de PWM aunque dudo que lo haga los suficiente como para lograr 100Hz.

Saludos.
« Última modificación: 13 de Enero de 2014, 16:58:13 por BrunoF »
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado ALFREDOSKY

  • PIC16
  • ***
  • Mensajes: 118
Re: Cálculo del periodo PWM y resolución de bits
« Respuesta #2 en: 14 de Enero de 2014, 20:15:19 »
Hola, gracias por la respuesta  :lol: , pero aun no tengo claro que es TCY, yo suponía que era el periodo de la frecuencia de oscilación principal y que ésta era a su vez igual a FCY, yo asumi eso, y haciendo los calculos(y corrigiendo mi error inicial que fue motivo de este post) tengo valores para PR2=49999, y 15.6 bits de resolucion, calculos que coinciden con un ejemplo que he visto en un blog, pero ahora surge otro problema...aunque supongo que no debo escribirlo aca...se supone que el calculo es para una frecuencia del PWM de 100Hz, pero simulandolo en proteus, obtengo 50 Hz... :?  gracias por tu tiempo y por tu ayuda, espero me puedas ayudar con respecto a la primera interrogante(sobre TCY), saludos

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Cálculo del periodo PWM y resolución de bits
« Respuesta #3 en: 15 de Enero de 2014, 08:03:47 »
En el datasheet se te aclarara todo mas, pero la idea es que TCY indique la frecuencia que tiene el pic (no la del cristal que puede ser otra), y luego FCY sea la frecuencia del cristal, aun asi debes ver el datasheet y ver que significa cada uno, en los pics de 16bits suele ser TCY=FCY/2, si tienes 20Mhz, entonces tendrias TCY=10Mhz

Desconectado ALFREDOSKY

  • PIC16
  • ***
  • Mensajes: 118
Re: Cálculo del periodo PWM y resolución de bits
« Respuesta #4 en: 15 de Enero de 2014, 13:43:43 »
Gracias por la respuesta MerLiNz  :mrgreen: , yo creo que TCY no puede ser frecuencia, al ver las dimensiones de la siguiente ecuación para el calculo del periodo del PWM

                                       T_pwm=[(PR2) + 1] • TCY • (TMR2 Prescale Value)

PR2 es adimensional, y el prescaler tambien, el periodo PWM tiene unidades de segundos, entonces TCY debe ser segundos y seguramente ser un periodo de algun ciclo, como yo supongo, el periodo de FCY, ademas como digo, los calculos cuadran con un ejemplo que vi en un blog

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Cálculo del periodo PWM y resolución de bits
« Respuesta #5 en: 15 de Enero de 2014, 16:56:05 »
TCY es una medida en segundos y representa el tiempo de período del CPU o periférico asociado si lo permite.


"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado ALFREDOSKY

  • PIC16
  • ***
  • Mensajes: 118
Re: Cálculo del periodo PWM y resolución de bits
« Respuesta #6 en: 15 de Enero de 2014, 19:14:29 »
BrunoF gracias por responder, entonces que interpretación tiene la aparición de este término o valor en el calculo del periodo del PWM? si TCY es el periodo del ciclo de trabajo de cada instrucción del micro, ¿como se relaciona TCY con el cristal?

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Cálculo del periodo PWM y resolución de bits
« Respuesta #7 en: 15 de Enero de 2014, 23:01:03 »
BrunoF gracias por responder, entonces que interpretación tiene la aparición de este término o valor en el calculo del periodo del PWM? si TCY es el periodo del ciclo de trabajo de cada instrucción del micro, ¿como se relaciona TCY con el cristal?

La relación entre la frecuencia de trabajo del CPU y la del cristal depende de la familia, incluso del micro que estés usando.
Vamos a un caso conocido: Con un cristal de 4Mhz externo, un 18F4550 puede hacer trabajar a su CPU hasta a 48Mhz. Evidentemente aquí la frecuencia de trabajo es 12 veces mayor a la frecuencia del cristal. Esto se puede lograr gracias a una etapa de pll/pre-post/scalers, etc. que uno elige y que depende del circuito oscilador del microcontrolador en cuestión.

Otra cosa distinta es el desempeño que logres con esos Mhz de frecuencia de CPU: Un 18F4550 ejecuta 1 instrucción cada 4 oscilaciones de su reloj (no es que el uC esté ocioso, hace 1 operación por cada oscilación, tal cual análogamente lo hace un motor a explosión de 4 tiempos), por ende un 18F4550 con el CPU a 48Mhz ejecuta 12M instrucciones (MIPS). En los dsPIC se ha mejorado eso y se ejecuta 1 instrucción cada dos ciclos de oscilación de la freq. de trabajo del CPU. Entonces, si el reloj de CPU está oscilando a 40Mhz, obtienes 20MIPS de rendimiento. 1 / MIPS = TCY [ s ].

Igualmente me gustaría si tienes link a la documentación donde explican esa fórmula para usar en los dsPIC33, porque me he bajado un manual del periférico PWM/Capture/Compare de los dsPIC33 y no menciona TCY en ninguna parte. Esas fórmulas que has colocado las he visto siempre para la familia PIC18F.

Saludos.
« Última modificación: 16 de Enero de 2014, 13:57:23 por BrunoF »
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado ALFREDOSKY

  • PIC16
  • ***
  • Mensajes: 118
Re: Cálculo del periodo PWM y resolución de bits
« Respuesta #8 en: 16 de Enero de 2014, 12:01:39 »
Nuevamente, gracias por la respuesta y tus apuntes BrunoF; ahora me queda un poco mas claro las diferencias entre osciladores, tenia algunas dudas sobre el oscilador interno, el cristal, el oscilador del procesador y no sé si los nombré todos o falta alguno  :D , voy a leer con detenimiento cada uno de ellos, pero tu información ha sido de gran ayuda!  :mrgreen: .

El datasheet del OUTPUT COMPARE para los dsPIC33F lo saque de aqui: http://ww1.microchip.com/downloads/en/DeviceDoc/70209A.pdf


 

anything