TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: diego_castano00 en 04 de Marzo de 2006, 22:17:00

Título: ¿es posible una PWM de 50HZ con PIC16f77A?
Publicado por: diego_castano00 en 04 de Marzo de 2006, 22:17:00
Hola estoy trabajando en un proyecto para mover unos servos y el manual (futaba) me indica una señal de control de 50HZ modulada por PWM (ancho de pulso), sera que es posible generar esta señal a esta frecuencia si trabajo con un PIC 16f877A  a 4MHZ, (ah uso MPLAB y e simulador PIC SIMULATOR IDE)

alguien tiene un ejemplo en assembler que me indique como saco la señal o un diagramita de flujo que me guie, tengo muy poco entendimiento del tema; eso de los registros ccp1con, pir, es poco lo que entiendo

graciasRebotado
Título: RE: ¿es posible una PWM de 50HZ con PIC16f77A?
Publicado por: kain589 en 05 de Marzo de 2006, 04:02:00
Ayer estuve haciendo los calculos porque tambien queria usar el pwm a 50 Hz, y los resultados me daban una frecuencia minima de aproximadamente 240Hz con un cristal de 4Mhz, lo hice para 8 bits, pero si no me equivoco aunque se haga para 10 bit tampoco saldra pues entonces se usa la frecuencia del cristal sin dividir por 4
Título: RE: ¿es posible una PWM de 50HZ con PIC16f77A?
Publicado por: maunix en 05 de Marzo de 2006, 09:53:00
Escrito originalmente por kain589
Ayer estuve haciendo los calculos porque tambien queria usar el pwm a 50 Hz, y los resultados me daban una frecuencia minima de aproximadamente 240Hz con un cristal de 4Mhz, lo hice para 8 bits, pero si no me equivoco aunque se haga para 10 bit tampoco saldra pues entonces se usa la frecuencia del cristal sin dividir por 4


Usar 10 bits solo aumenta la precisión del duty cycle pero no te cambia la frecuencia.  La frecuencia depende del PR2 que siempre es de 8 bits

Saludos
Título: RE: ¿es posible una PWM de 50HZ con PIC16f77A?
Publicado por: maunix en 05 de Marzo de 2006, 11:26:00
Escrito originalmente por diego_castano00
Hola estoy trabajando en un proyecto para mover unos servos y el manual (futaba) me indica una señal de control de 50HZ modulada por PWM (ancho de pulso), sera que es posible generar esta señal a esta frecuencia si trabajo con un PIC 16f877A  a 4MHZ, (ah uso MPLAB y e simulador PIC SIMULATOR IDE)

alguien tiene un ejemplo en assembler que me indique como saco la señal o un diagramita de flujo que me guie, tengo muy poco entendimiento del tema; eso de los registros ccp1con, pir, es poco lo que entiendo

graciasRebotado


Fijate lo siguiente:

En el datasshet puedes ver bien el período, del cual la frecuencia será el inverso.

Frec = 1 / PeriodoPwm

PeriodoPWM = (PR2 + 1) * 4 * Tosc * Prescaler Tmr2.

En el caso mas lento para 4Mhz tienes
PR2 = 255 ,
Tosc = 250nseg para 4 Mhz
Prescaler Tmr2 = 16

Esto hace que Frec = 244 Hz.


Entonces, o desciendes la frecuencia del Clock de tu microcontrolador o bien lo haces por software.

Saludos
Título: RE: ¿es posible una PWM de 50HZ con PIC16f77A?
Publicado por: diego_castano00 en 05 de Marzo de 2006, 17:21:00
como lo hago por software, es que me dicen que no se puede, y que mas bien lo haga por retardos uno de 20ms y otro de 10 ms (50% duty cycle) pero para mi proyecto se necesita cambiar o seleccionar varios duty cycle (5%,6%,7%10%,15%...) y creo que me es mas facil manejando el modulo pwm del pic

entonces, sabes como hacerlo por software o que XT uso para obtener la frecuencia de 50HZ

Gracias por la respuesta
Avergonzado
Título: RE: ¿es posible una PWM de 50HZ con PIC16f77A?
Publicado por: kain589 en 05 de Marzo de 2006, 17:34:00
Si quieres poder variar de 1% en 1%, puedes crear una rutina que temporice 20ms/100= 200us, y poner a funcionar 2 variables pulsos_ciclo y pulsos_duty por ejemplo. Asi introduces 100 en pulsos_ciclo para que sea a 50Hz (20 ms) que te indica cuando debe ponerse a 1 la señal(cuando se ponga a cero la variable contadora de ciclo) y restaurar el valor al conmutar y pulsos_duty que despues de ponerse a 1 se decremente hasta ponerse a cero (la variable contadora) y que conmute a estado bajo la señal.
Los decrementos se hacen por interrupcion del timer, debes tener en cuenta el peso en tiempo de las rutinas para la actualizacion de las variables
Título: RE: ¿es posible una PWM de 50HZ con PIC16f77A?
Publicado por: migsantiago en 05 de Marzo de 2006, 19:19:00
Solo puedes lograr una frecuencia así usando un cristal de 1MHz. Puedes cambiarle el cristal a tu PIC.