Autor Tema: PIC16F676  (Leído 3412 veces)

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

Desconectado afta

  • PIC16
  • ***
  • Mensajes: 123
PIC16F676
« en: 16 de Septiembre de 2021, 02:16:25 »
Hola a todos. Tengo un circuito con el PIC16F676 que no usa oscilador externo. Al pin OSC1 le llega un onda cuadrada de 60Hz y el pin OSC2 esta como salida con un led conectado. En el funcionamiento este led oscila.

Como se puede hacer para que este oscilando si el PIC trabaja con su oscilador interno a 4MHz?. Habra alguna forma de usar la señal de OSC1 para hacer que el led en OSC2 oscile? Si a 60Hz estaria aproximadamente 8ms encendido y 8ms apagado, creo que no se notaria la oscilacion.

OSC1 tambien tiene funciones de entrada de reloj al TIMER1 del PIC, entrada de reloj, E/S de proposito general.
OSC2 puede funcionar como salida de proposito general o salida de reloj.

Adjunto imagen del circuito.
« Última modificación: 16 de Septiembre de 2021, 02:23:51 por afta »

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:PIC16F676
« Respuesta #1 en: 16 de Septiembre de 2021, 09:25:50 »
¿Por qué no simplemente lo activas y lo apagas con instrucciones, es decir con código? ¿Porqué deseas que se parpadee al ritmo de la frecuencia de entrada de OSC1?
 
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado Miguelyx

  • PIC10
  • *
  • Mensajes: 30
Re:PIC16F676
« Respuesta #2 en: 16 de Septiembre de 2021, 13:16:24 »
Si no recuerdo mal ese pin solo oscila a la velocidad del OSC si en la CONFIG le dices que use el oscilador interno y ademas use CLKOUT, porque para medir la frecuencia de oscilacion real con un osciloscopio real, si no seleccionas la opcion CLKOUT, el osciloscopio no muestra la frecuencia interna de trabajo.
Lo hacia para ver si realmente PLL funcionaba con el oscilador interno y si que funciona, se multiplica x4.

Tienes 2 opciones para usar el oscilador interno, con CLKOUT y sin CLKOUT, si no me falla la memoria, sin CLKOUT libera ese pin y no muestra la oscilacion interna a la que esta configurado el pic.
Una vez lo hayas liberado lo configuras para que oscile a la frecuencia que tu quieres con programacion activando y desactivando el pin.
No se si era eso lo que querias.
« Última modificación: 16 de Septiembre de 2021, 13:26:36 por Miguelyx »

Desconectado afta

  • PIC16
  • ***
  • Mensajes: 123
Re:PIC16F676
« Respuesta #3 en: 16 de Septiembre de 2021, 14:06:37 »
¿Por qué no simplemente lo activas y lo apagas con instrucciones, es decir con código? ¿Porqué deseas que se parpadee al ritmo de la frecuencia de entrada de OSC1?

Es un circuito que encontre y quiero entender su funcionamiento.

Desconectado afta

  • PIC16
  • ***
  • Mensajes: 123
Re:PIC16F676
« Respuesta #4 en: 16 de Septiembre de 2021, 14:13:59 »
Si no recuerdo mal ese pin solo oscila a la velocidad del OSC si en la CONFIG le dices que use el oscilador interno y ademas use CLKOUT, porque para medir la frecuencia de oscilacion real con un osciloscopio real, si no seleccionas la opcion CLKOUT, el osciloscopio no muestra la frecuencia interna de trabajo.
Lo hacia para ver si realmente PLL funcionaba con el oscilador interno y si que funciona, se multiplica x4.

Tienes 2 opciones para usar el oscilador interno, con CLKOUT y sin CLKOUT, si no me falla la memoria, sin CLKOUT libera ese pin y no muestra la oscilacion interna a la que esta configurado el pic.
Una vez lo hayas liberado lo configuras para que oscile a la frecuencia que tu quieres con programacion activando y desactivando el pin.
No se si era eso lo que querias.

Al parecer el PIC usa el oscilador interno sin CLKOUT. Pero resulta que a OSC1 le llega una señal cuadrada a 60Hz y por OSC2 se conecta un led que en el funcionamiento del circuito oscila.

No se como hacen que el led oscile usando la señal que entra a OSC1. He configurado el PIC para que me deje OSC2 como salida y OSC1 como entrada porque si usa el oscilador interno de 4MHz por OSC2 saldria 1MHz y el led se notaria encendido todo el tiempo pero en el circuito hecho se ve que oscila.

OSC1 podria ser entrada de reloj para el PIC, pero al ser de 60Hz no lo creo. Tambien podria ser una señal de reloj al TIMER1 del PIC o una entrada de proposito general.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:PIC16F676
« Respuesta #5 en: 16 de Septiembre de 2021, 14:19:27 »
Si no recuerdo mal ese pin solo oscila a la velocidad del OSC si en la CONFIG le dices que use el oscilador interno y ademas use CLKOUT, porque para medir la frecuencia de oscilacion real con un osciloscopio real, si no seleccionas la opcion CLKOUT, el osciloscopio no muestra la frecuencia interna de trabajo.
Lo hacia para ver si realmente PLL funcionaba con el oscilador interno y si que funciona, se multiplica x4.

Tienes 2 opciones para usar el oscilador interno, con CLKOUT y sin CLKOUT, si no me falla la memoria, sin CLKOUT libera ese pin y no muestra la oscilacion interna a la que esta configurado el pic.
Una vez lo hayas liberado lo configuras para que oscile a la frecuencia que tu quieres con programacion activando y desactivando el pin.
No se si era eso lo que querias.



Al parecer el PIC usa el oscilador interno sin CLKOUT. Pero resulta que a OSC1 le llega una señal cuadrada a 60Hz y por OSC2 se conecta un led que en el funcionamiento del circuito oscila.

No se como hacen que el led oscile usando la señal que entra a OSC1. He configurado el PIC para que me deje OSC2 como salida y OSC1 como entrada porque si usa el oscilador interno de 4MHz por OSC2 saldria 1MHz y el led se notaria encendido todo el tiempo pero en el circuito hecho se ve que oscila.

OSC1 podria ser entrada de reloj para el PIC, pero al ser de 60Hz no lo creo. Tambien podria ser una señal de reloj al TIMER1 del PIC o una entrada de proposito general.

Lo que no entiendo es porqué necesitas que el led se encienda y apague en función de OSC1, ¿Por qué no escribes una rutina para encenderlo y apagarlo?
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:PIC16F676
« Respuesta #6 en: 16 de Septiembre de 2021, 14:26:49 »
¿Por qué no simplemente lo activas y lo apagas con instrucciones, es decir con código? ¿Porqué deseas que se parpadee al ritmo de la frecuencia de entrada de OSC1?

Es un circuito que encontre y quiero entender su funcionamiento.

No leí este mensaje.

Debes compartir el esquemático. Si trabajas a bajas frecuencias, obvio que vas a poder ver lo que se enciende y apaga el led. Pero los microcontroladores deben trabajar desde frecuencias en el rango de los khz para arriba para poder cumplir sus objetivos, y obviamente no lo vas a lograr.

Al menos que uses circuitos divisores de frecuencia (basculas T) para ir reduciendo la frecuencia hasta que puedas ver al led parpadear, y lo más práctico es que tu mismo escribas un código para encender y apagar al led con sus respectivos retardos.



Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:PIC16F676
« Respuesta #7 en: 16 de Septiembre de 2021, 14:34:06 »
Es un circuito que encontre y quiero entender su funcionamiento.

Pensando en lo que dices y no eres quien diseño el circuito, lo que creo es que estás asumiendo que en función de OSC1 se va encender un led conectado en OSC2.

Lo que sucede es que OSC2 se puede usar como entrada y salida y el que diseñó el circuito lo utiliza para activar un led (pudo ocupar cualquier otro pin y tal vez es el único que le quedó libre), el cual mediante código y retardos apropiados, lo enciende y apaga, no tiene ninguna relación con la frecuencia que entra en OSC1.
« Última modificación: 16 de Septiembre de 2021, 14:36:26 por DominusDRR »
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado afta

  • PIC16
  • ***
  • Mensajes: 123
Re:PIC16F676
« Respuesta #8 en: 16 de Septiembre de 2021, 14:51:55 »
Es un circuito que encontre y quiero entender su funcionamiento.

Pensando en lo que dices y no eres quien diseño el circuito, lo que creo es que estás asumiendo que en función de OSC1 se va encender un led conectado en OSC2.

Lo que sucede es que OSC2 se puede usar como entrada y salida y el que diseñó el circuito lo utiliza para activar un led (pudo ocupar cualquier otro pin y tal vez es el único que le quedó libre), el cual mediante código y retardos apropiados, lo enciende y apaga, no tiene ninguna relación con la frecuencia que entra en OSC1.

Si podria ser, pero entonces cual seria la utilidad de esa señal de 60Hz en OSC1, la cual es muy baja para que funcione como entrada de reloj al PIC.

Ahora, si OSC1 funciona como entrada de reloj al TMR1 se podria usar el prescaler(hasta por un factor de 8)y usar el TMR1 como contador de impulsos. Pero no se como usaria esto para hacer oscilar el led. 

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:PIC16F676
« Respuesta #9 en: 16 de Septiembre de 2021, 14:54:49 »
El microcontrolador utiliza el oscilador interno RC como reloj del CPU y la entrada de 60HZ lo utiliza para conocer el cruce por cero de la señal de voltaje de la empresa eléctrica.
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado afta

  • PIC16
  • ***
  • Mensajes: 123
Re:PIC16F676
« Respuesta #10 en: 16 de Septiembre de 2021, 15:12:59 »
El microcontrolador utiliza el oscilador interno RC como reloj del CPU y la entrada de 60HZ lo utiliza para conocer el cruce por cero de la señal de voltaje de la empresa eléctrica.

RA2 recibe informacion de los cruces por cero. Aun no simule esa parte, pero lo pude ver en un osciloscopio.

Desconectado Miguelyx

  • PIC10
  • *
  • Mensajes: 30
Re:PIC16F676
« Respuesta #11 en: 16 de Septiembre de 2021, 17:27:02 »
Yo me perdi hace tiempo.
No se si quiere hacer con esos 60 hz darle al pic una referencia de oscilacion y no se que utilidad tiene hacer que oscile.
Yo lo que he probado es comprobar todas las frecuencias de oscilacion internas que se pueden configurar con OSCCON y con OSCTUNE conectando un osciloscopio en el pin 13 y la variacion real de lo configurado es minima, para ello hay que configurar el pic con oscilador interno y CLKOUT function on OSC2, entonces se muestra la frecuencia de trabajo de un Pic en el pin 13 o 14, si no me falla la memoria CLKOUT se puede seleccionar segun el pic para que salga la señal por RA6 o RA7, en las comprobaciones que he hecho han sido por el pin 13 que era RA7.

Y he observado 2 cosas curiosas, si el voltaje de alimentacion del pic es del rango de los 5v la onda de muestreo que sale del pin 13 es sinoidal cuando deberia mostrarse mas claramente de pulsos al tener mas señal, y si el voltaje lo reduces, siempre que el pic permita un voltaje de trabajo inferior, para que el pic trabaje sobre los 3.3v la onda tiene la forma de pulsos y deberia ser mas senoidal al tener meños voltaje y por lo tanto menos intensidad.

Y lo mas curioso es que si haces una comprobacion de parpadeo con leds para ver como le afecta al rendimiento del pic al reducirle la frecuencia, es el efecto contrario, se aceleran los pulsos de encendido y apagado de los leds que se tengan conectados a cada uno de los pines

Por ejemplo configuras un pin cualquiera para que un led parpadee cada segundo en la velocidad de trabajo de ese pic, supongamos que son 16 Mhz y el led parpadea cada segundo.

Le bajas la frecuencia al Pic con OSCTUNE a 8 Mhz y se acelera el parpadeo del led, deberia parpadear cada 2 segundos al reducir la frecuencia a la mitad cierto? Pues hace lo contrario, parpadea cada medio segundo, y a medida que disminuyes la frecuencia interna de su oscilador con OSCTUNE se acelera el parpadeo del led.
Con esa comprobacion sacas la conclusion que si acelera un parpadeo al reducir la frecuencia, tambien acelera su rendimiento de trabajo y si haces un programita de un pequeño temporizador conectado a un LCD o a una TFT se ve como el tiempo se ha acelerado igual que el parpadeo del led.

Y PLL a pesar de lo que digan que solo funciona con oscilador externo, no es cierto, PLL siempre multiplica x4 la velocidad que proporcione el oscilador al PIC, ya sea interno o externo.
« Última modificación: 17 de Septiembre de 2021, 07:42:07 por Miguelyx »


 

anything