Desfase entre pulsos pic

Hola gente, necesito lograr un desfasado entre las dos señales PWM que salen del pic de 1uS y se como lograrlo. Adjunto el programa en C. Cualquier consejo es util. Muchas gracias ...
 

Adjuntos

  • pulso 1uS 5khz.rar
    77.9 KB · Visitas: 28
Última edición:
Para 1µs de precisión casi seguro que vas a tener que usar ensamblador.
 
Hola gente, necesito lograr un desfasado entre las dos señales PWM que salen del pic de 1uS y se como lograrlo. Adjunto el programa en C. Cualquier consejo es util. Muchas gracias ...
Buenas.
Creo que con el modulo ccp1 y ccp2 no podras generar un desfasage ya que ambos utilizan el timer2 para generar la señal.
Paso un ejemplo para generar un desfasado:

Pd: este ejemplo lo encontre aqui:
Edito
Pense que el compañero se referia a esto como desfase de dos señales pwm:
https://www.ccsinfo.com/forum/viewtopic.php?t=30607
desfase.jpg
 

Adjuntos

  • Desface.rar
    41.7 KB · Visitas: 42
Última edición:
No conozco los pic en general, pero los módulos de comparación captura que suelen generar pwm, suelen ir "en fase", todos los pines empiezan a la vez y acaban según se programe.
 
Para "desfasar" la señal 180° utilizaría un inversor con transistor. También puedes usar un comparador, ya sea con los módulos del PIC o uno externo.
 

Adjuntos

  • desfase 180.jpg
    desfase 180.jpg
    89.2 KB · Visitas: 21
Última edición:
Buen dia, roberttorres es exactamente eso lo que quiero lograr, pero con un pulso mas pequeño se podrá hacer? Muchas muchas gracias
Buenas.
No se que tan pequeño necesites los pulsos, pero he estado experimentando con el ejemplo que subí, y llegue hasta 150us en alto con un periodo de 300us. Luego menos de eso la onda cuadrada se comporta extraño, tal vez sea por el timer1.
Para que necesitas exactamente el desfase de las dos señales??.
 
Conseguí un "desfase" de 2us. La frecuencia de conmutación es de 5 kHz. La frecuencia de oscilación es de 8 MHz. Te dejo el código para que te guíes y consigas el 1us.

f9ftag.jpg


Código:
[B]void[/B] main([B]void[/B]) {
  TRISB = 0x00;
  PORTB = 0x00;
  T2CON = 0x05;
    PR2 = 0x63;
CCP1CON = 0x0C;
 CCPR1L = 0x32;
[B]while[/B](1) {
RB5_bit = RB3_bit;
}
}
 

Adjuntos

  • Sin título.jpg
    Sin título.jpg
    86.3 KB · Visitas: 15
Última edición:
Agrega una línea de retardo a tu salida del i/o ... facil con un cap, una resistencia y 3 inversores TTL o CMOS, ahora si necesitas un delay programado (en grados electricos), de una señal de entrada, tienes que medir con el pic su periodo, usando la primera oscilacion de la señal y calcular el retardo en nsec que necesitas darle correspondiente a los grados electricos de defasaje y generar la señal en un i/o del pic.
Si quieres un retardo en cuadratura (90 grados de retardo), es el mismo procedimiento que el anterior pero sin la rutina para leer las entradas de tu circuito indicador de cuantos grados de retardo necesitas ( facil de hacer con thumbwheel switches).
 
Atrás
Arriba