Autor Tema: Problema PWM 18f4550  (Leído 8807 veces)

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

Desconectado fr3dy

  • PIC10
  • *
  • Mensajes: 9
Problema PWM 18f4550
« en: 11 de Septiembre de 2011, 22:34:19 »
Hola:

Estoy intentando programar en lenguaje c un pic 18f4550 con una entrada analogica de 5v a 0v y salida de 2 PWM contrarios, pero no funciona, he el programa aplicado para un pic diferente (16f876) si funciona perfectamente. No se cual es el problema.
Espero me puedan ayudar!.
Les adjunto el programa.
« Última modificación: 11 de Septiembre de 2011, 22:42:01 por fr3dy »

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Problema PWM 18f4550
« Respuesta #1 en: 11 de Septiembre de 2011, 23:14:38 »
Porque no funciona? No hay salida PWM? Como has configurado el PWM? Con que frecuencia has establecido al PIC? Que resolución resulta el PWM?
No contesto mensajes privados, las consultas en el foro

Desconectado fr3dy

  • PIC10
  • *
  • Mensajes: 9
Re: Problema PWM 18f4550
« Respuesta #2 en: 11 de Septiembre de 2011, 23:58:21 »
En el main yo configuro de esta manera

   setup_adc_ports(AN0);             //Habilitación RA0 analógico
   setup_adc(ADC_CLOCK_INTERNAL);   //Reloj interno RC
   set_adc_channel(0);              //Canal 0
   
   //249;Frec 20Khz; Cristal 20Mhz ; Prescaler 1
   setup_timer_2(T2_DIV_BY_1, 249, 1);
   setup_ccp1(CCP_PWM);                      //CCP1 en modo PWM
   setup_ccp2(CCP_PWM); 
 luego en un ciclo while (true) lee la conversion AD y la pone como duty en PWM y duty contrario en PWM2
   while (TRUE) {
      duty=read_adc();             //Valor de fuente analógica...
      set_pwm1_duty(duty);

      duty=1024-duty;
      set_pwm2_duty(duty);

  }


lo quise hacer sin interrupciones, sera por eso que no me sale?... pero lo raro es porque me sale en un micro y en el otro no?

 

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Problema PWM 18f4550
« Respuesta #3 en: 12 de Septiembre de 2011, 10:27:24 »
Pero a que frecuencia trabaja el microcontrolador? Que frecuencia necesitas en el PWM? Que resolución tiene el PWM generado?

En código no se ve nada mal.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: Problema PWM 18f4550
« Respuesta #4 en: 12 de Septiembre de 2011, 10:43:16 »
Verifica que tienes los fuses correctamente colocados, estás usando un clock de 20MHZ y tienes puesto el fuse XT.

Desconectado fr3dy

  • PIC10
  • *
  • Mensajes: 9
Re: Problema PWM 18f4550
« Respuesta #5 en: 12 de Septiembre de 2011, 11:11:33 »

ahi si tendras que perdonar mi ignorancia.. pero no entiendo nada de fuses, estoy aprendiendo por mi cuenta desde hace un par de dias. Explicame porfavor.
« Última modificación: 12 de Septiembre de 2011, 11:32:18 por fr3dy »

Desconectado fr3dy

  • PIC10
  • *
  • Mensajes: 9
Re: Problema PWM 18f4550
« Respuesta #6 en: 12 de Septiembre de 2011, 11:17:38 »
Pero a que frecuencia trabaja el microcontrolador? Que frecuencia necesitas en el PWM? Que resolución tiene el PWM generado?

En código no se ve nada mal.


Saludos!
frecuencia de cristal de 20Mhz; y frecuencia de pwm 20kHz;  a que te refieres con resolucion de pwm?

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Problema PWM 18f4550
« Respuesta #7 en: 12 de Septiembre de 2011, 15:01:42 »
Podes mirar el siguiente post, puede que te ayude a trabajar con ese microcontrolador: http://www.todopic.com.ar/foros/index.php?topic=15208.0

El tema es ir leyendo el datasheet del microcontrolador, porque una de las primeras cosas que hay que aprender a configurar son los fusibles, pues establecen el funcionamiento del microcontrolador.

Si revisas el datasheet encontraras que para cristales menores a 4MHz se debe colocar el fusible XT. En cambio para frecuencias mayores a 4MHz se debe colocar HS. Luego está la opción de habilitar el PLL interno del microcontrolador como para llevarlo a 48MHz, pero eso es otro tema.

Respecto a la resolución del PWM: Dependiendo de la frecuencia del oscilador y la frecuencia del PWM obtendrás cierta resolución (en bit), siendo la máxima 10 (Entonces el CT se puede indicar desde 0 hasta 1023).  También de ello hay detalle en el datasheet del microcontrolador. También utiliza el buscador, muchos han ocupado tiempo en tratar de explicar el funcionamiento y como configurar el módulo PWM  ;-)



Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado fr3dy

  • PIC10
  • *
  • Mensajes: 9
Re: Problema PWM 18f4550
« Respuesta #8 en: 12 de Septiembre de 2011, 16:25:39 »
Podes mirar el siguiente post, puede que te ayude a trabajar con ese microcontrolador: http://www.todopic.com.ar/foros/index.php?topic=15208.0

El tema es ir leyendo el datasheet del microcontrolador, porque una de las primeras cosas que hay que aprender a configurar son los fusibles, pues establecen el funcionamiento del microcontrolador.

Si revisas el datasheet encontraras que para cristales menores a 4MHz se debe colocar el fusible XT. En cambio para frecuencias mayores a 4MHz se debe colocar HS. Luego está la opción de habilitar el PLL interno del microcontrolador como para llevarlo a 48MHz, pero eso es otro tema.

Respecto a la resolución del PWM: Dependiendo de la frecuencia del oscilador y la frecuencia del PWM obtendrás cierta resolución (en bit), siendo la máxima 10 (Entonces el CT se puede indicar desde 0 hasta 1023).  También de ello hay detalle en el datasheet del microcontrolador. También utiliza el buscador, muchos han ocupado tiempo en tratar de explicar el funcionamiento y como configurar el módulo PWM  ;-)



Saludos!

Wow! muchas gracias.. si ese era el error.. me funciona perfecto! :D