Hola:
Es posible generar un retardo en los modulos CCP del 16F877A de tal forma que una señal del CCP2 empiece 200 microsegundos mas tarde que la del CCP1?. En proteus lo he intentado pero siempre estan sincronizadas (sin retardo) a pesar de que activo el CCP2 200us mas tarde mediante un delay_us(200).
Un saludo
Aitor
Hola:
Es posible generar un retardo en los modulos CCP del 16F877A de tal forma que una señal del CCP2 empiece 200 microsegundos mas tarde que la del CCP1?. En proteus lo he intentado pero siempre estan sincronizadas (sin retardo) a pesar de que activo el CCP2 200us mas tarde mediante un delay_us(200).
Un saludo
Aitor
Siempre tienes la posibilidad de implementar un PWM por hardware y otro por software. Es decir, utiliza otro timer para generar una interrupción con un retardo de 200uS sobre el PWM y en la rutina de interrupción manejas la "subida o bajada" de un IO cualquiera. Eso sí: si quieres que las instrucciones de la rutina de interrupción no distorsionen los 200uS tendrás que subir la frecuencia del oscilador lo más posible y/o descontar el número de instrucciones que se utilicen en dicha rutina de interrupción.
Saludos.
Qué frecuencia tiene tu PWM? Cómo comenté antes y repitió reiniertl: sí la frecuencia es muy alta el PWM por software no funcionará.
El PIC realiza más tareas? Lo digo por el while(1). Si no realizas más tareas o te puedes permitir dejarlas de lado por algo de tiempo yo haría los dos PWM por software con un único timer y 2 salidas digitales dejando un delay de 200us entre la basculación de una salida y la basculación de la otra. No es muy ortodoxo pero funcionará...
Saludos.
Bueno pues con PWMs a 1khz y teniendo en cuenta que tu ciclo de instrucción es de 1mhz: entre pulso y pulso te le puedes quitar los 200us de retardo y aún te quedan cerca de 800us para que el PIC se tome un café durante el while(true) jejeje
Eso sí no te olvides de tener en cuenta las instrucciones que utilizas en la rutina de interrupción para la gestión de los IO y del timer...
Saludos.
Hola.
Un 556 podría servir no? o dos 555 en cascada? ... que otros integrados para generar PWM existen en el mercado?
Saludos
1 876 menos espacio que 2 555 ? :shock: Además de salir más $ :?
Hola.
Como piensas cambiar el Duty Cicle del PWM en el PIC? con unos potenciometros?
Según lo que han comentado, sería bueno trabajar con un cristal de 20MHz ... tocaría con un16F628A16F88 o 16F873A ... porque en el 12F no alcanzarian los pines :(
Si el valor del DC de los 2 PWM son el mismo valor, se podría generar un PWM mediante una interrupción de un Timer y el otro lo generas en el main, de esa manera puedes desfasar la señal del 2 PWM respecto a la primera con un delay.
Saludos
Otra solucion es hacer el delay por hardware. O sea, configuras dos salidas de PWM en fase, cada una con su duty, y a una de ellas la pasas por un circuito externo que genere los 200us de delay. Se puede hacer facilmente con un filtro RC y un comparador.
Saludos!!
Me alegro que lo hayas logrado!! Al final que metodo usaste?
Una pregunta, estas modulando la señal? porq en el video no se ve que varie el ancho del pulso.
saludos!!