Autor Tema: PWM con PIC16f877a a 20MHz  (Leído 2939 veces)

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

Desconectado DGM

  • PIC10
  • *
  • Mensajes: 5
PWM con PIC16f877a a 20MHz
« en: 22 de Abril de 2009, 21:27:32 »
Hola a todos de nuevo. El motivo por el que les escribo es porque me he encontrado una dificultad a la hora de generar un pulso PWM con un PIC 16f877A corriendo a 20MHz con un cristal externo.

Pues bien el problema es el siguiente, quiero controlar un servo por PWM el cual necesita un período de 20ms, lo que equivale a una frecuencia de 50Hz. Pero, haciendo las correspondientes cuentas para establecer el periodo del Timer2 me he dado cuenta de que la mínima frecuencia que puedo conseguir es, en el caso más favorable, la siguiente:

Para calcular la frecuencia: TempTMR2 = [Preescaler*(PR2+1)*Postscaler]*(4/frecuencia cristal)

Luego TempTMR2 = [4*(255+1)*16]*(4/20000000) = 0.0032768   -->   FrecTMR2=1/0.0032768 = 305.17 Hz

Por ello creo, si no me equivoco, que no podría controlar este servo con el cristal de 20MHz. ¿Alguién me puede dar alguna solucion o sugerencia para conseguirlo?

Saludos

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: PWM con PIC16f877a a 20MHz
« Respuesta #1 en: 22 de Abril de 2009, 22:02:58 »
Peor aún, el postscaler no afecta y la minima frecuencia seria 1220 Hz aprox.
\mathrm{PeriodoPWM}=\left(\mathrm{PR2} + 1 \right)\cdot 4\cdot\mathrm{Tosc}\cdot\mathrm{TMR2 Preescaler}

Parece que la única que queda es hacerlo por software utilizando los timers...
« Última modificación: 22 de Abril de 2009, 22:06:04 por Suky »
No contesto mensajes privados, las consultas en el foro

Desconectado DGM

  • PIC10
  • *
  • Mensajes: 5
Re: PWM con PIC16f877a a 20MHz
« Respuesta #2 en: 24 de Abril de 2009, 13:56:38 »
Muchas gracias por la respuesta, creo que al referirte al postscaler quieres decir prescaler que creo que es el que no cuenta no?
De todas formas creo que lo más fácil será cambiar de oscilador, aunque tendría que ser uno de menos de 1MHz !!

Gracias, saludos.


 

anything