Autor Tema: Ayuda Detectar Flancos de señal senoidal de 2 khz hacia abajo con PIC 12F675  (Leído 3289 veces)

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

Desconectado Jlezana

  • PIC10
  • *
  • Mensajes: 6
Despues de analizar mejor creo que cambio el PIC del 509, al 12F675 que tiene mejores prestaciones.

Mensaje original:

Hola Colegas, hace muchos años que no escribo por aca..  el trabajo me tenia alejado de todo este mundo de los pic, realizando un trabajo de ayuda a mi hermano comencé a buscar información para detectar el cruce por cero de una señal senoidal pequeña y vi varios resultados incluyendo los expuesto por acá. Pero se concluyo que mientras mas pequeño el sistema y con menos componentes mucho mejor, menos probabilidad de falla, con lo que encontramos que con un pic sin cristal seria lo idóneo el proyecto es básicamente lo siguiente:

Pensando en el pic 12C508 o 12C509 que lo tenemos a mano.

Rango de frecuencia 2 KHZ o menor.

1º Detectar el flanco de subida de la señal senoidal, y dejar en alto GP0, y bajo GP1

2º Detectar el flanco de subida de la señal senoidal, y dejar en bajo GP0, y alto GP1


y asi indefinidamente, osea que se mantenga funcionando hasta que se deje de aplicar la señal de entrada.

La idea es que sea muy preciso, por lo que se podría usar la interrupción a mi parecer.

Lo otro es hacerlo en ASM para compilarlo a HEX luego.

El gran tema es que no manejamos el PIC y no sabemos como podríamos hacerlo y aquí les quería pedir su ayuda a ver si alguien no ilumina el camino  :oops:

No tenemos Compiladores en C por lo que nos gustaría para este censillo proyecto usar directamente el ASM y así ir entendiendo como funciona para poder usarlo luego en futuros proyectos aplicado a potencia y modificarlo a nuestro antojo, Tenemos programador y podemos de ASM pasar a HEX en nuestro PC.

Revise varios post de este foro pero no di con este método, solo con dimers que hacen mucho mas de lo que necesito.

Un afectuoso saludo desde Chile y espero puedan ayudarme y así poder ayudar a mi hermano.  :)
J.Lezana
Valdivia
Chile
« Última modificación: 07 de Septiembre de 2011, 10:04:43 por Jlezana »

Desconectado gera

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2188
Re: Ayuda Detectar Flancos de señal senoidal de 2 khz hacia abajo con PIC 12c508/09
« Respuesta #1 en: 05 de Septiembre de 2011, 11:45:53 »
No es necesario un pic para esa aplicacion. Con un par de comparadores ya podrias hacerlo. Pero si igual queres hacerlo con un pic, podrias buscar alguno que tenga comparadores, o utilizar un comparador externo y alguna interrupcion del pic.
Con respecto a tus dificultades con ASM, te sugiero que leas algun tutorial para ir agarrandole la mano, en el foro hay un par.
Saludos!!

"conozco dos cosas infinitas: el universo y la estupidez humana. Y no estoy muy seguro del primero." A.Einstein

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: Ayuda Detectar Flancos de señal senoidal de 2 khz hacia abajo con PIC 12c508/09
« Respuesta #2 en: 05 de Septiembre de 2011, 12:14:05 »
me parece que primero necesitarias darle una leida a un tutorial.
ya que en los dimers que haz encontrado por aca se explica como detectar el cruce por cero (lo mas simple es con unaa resistencia conectada directamente al pic). solo necesitarias parte de esos programas para hacer lo que quieres
"Nada es imposible, no si puedes imaginarlo"

Desconectado Jlezana

  • PIC10
  • *
  • Mensajes: 6
Re: Ayuda Detectar Flancos de señal senoidal de 2 khz hacia abajo con PIC 12c508/09
« Respuesta #3 en: 05 de Septiembre de 2011, 15:33:22 »
Gracias por las respuestas Gera y Rivale, he programados algunos pic, en ASM usando el MPLAB y un programador, pero trate de llevar parte de los códigos de los dimers sin resultados, desde el 2005 que no volví a retomar el tema y me perdí bastante después de tantos años, parti aprendiendo en este mismo foro al cual regreso.

La idea de usar el pic pequeño es ahorrar componentes hacerlo muy practico, que como bien dice gera tomando la señal por un comparador y luego incluso pasándola por algún flip flop o contador podría sacar dos pulsos para activar transistores regenerar señales etc, es mas lo he realizado con éxito, pero quiero ir un poco mas allá eliminando componentes que de todo los ship desperdicio mas de la mitad de ellos, la idea es sintetizar y minimizar.

Varios trataron de usar el 508 y 509 y tampoco veo que les resulto, por ahí hay una aplicación para otro PIC como dice rivale con tan solo una resistencia, tengan en consideración que la señal de entrada es débil de tan solo unos 6 vpp por lo que el PIC no correría peligro alguno.

Bueno en cuanto pueda veré que va saliendo y sigo estudiando las instrucciones del pic para ver como lo soluciono.

En su tiempo realice un proyectito bien entretenido sobre un robot araña pero con un ya anticuado 16F84 usando puras rutinas siendo que cada servo debería comandarse con un PWM que este PIC no es capas de procesar pero salí del paso con rutinas.
Por acá pueden verlo por si les interesa:  http://www.aeromodelistasdechile.cl/jorgel/web_robot/

También realice un pequeño detector de posición para un proyecto de aeromodelismo que activa una alarma para cuando un pulso de las radios de aeromodelismo va sobre los 1.2 milisegundos con el 12c509, aun que de eso tengo extraviado el documento con toda la información que me pudo ayudar para este proyecto.

Gracias por sus respuestas y ayuda.
J.Lezana

Desconectado NoSepComo

  • PIC18
  • ****
  • Mensajes: 305
Re: Ayuda Detectar Flancos de señal senoidal de 2 khz hacia abajo con PIC 12c508/09
« Respuesta #4 en: 07 de Septiembre de 2011, 04:37:54 »
Hola, si fuese sin un PIC, podrías utilizar un PLL y obtener una señal pulsada enganchada en frecuencia con la senoidal de entrada, eso ya sería tu entrada al comparador, sólo que en vez de detectar flancos, podrías implementar la lógica antes descrita comparando nivel con el PIC de la señal cuadrada que sale del oscilador del PLL, entonces cuando esté en un nivel alto pones las señales como corresponda y lo mismo para el bajo.
Lo único que entre la salida y la entrada tienes un pequeño desfase claro está, pero teniéndolo en cuenta, todos los niveles de salida están correlados, que precisamente es lo que logras con el PLL.
No se si esto te servirá. Igual te da alguna idea para tirar por otro lado con esto. Aunque conceptualmente a lo mejor es un poco más complejo.

Desconectado Jlezana

  • PIC10
  • *
  • Mensajes: 6
Re: Ayuda Detectar Flancos de señal senoidal de 2 khz hacia abajo con PIC 12c508/09
« Respuesta #5 en: 07 de Septiembre de 2011, 08:32:07 »
Hola, si fuese sin un PIC, podrías utilizar un PLL y obtener una señal pulsada enganchada en frecuencia con la senoidal de entrada, eso ya sería tu entrada al comparador, sólo que en vez de detectar flancos, podrías implementar la lógica antes descrita comparando nivel con el PIC de la señal cuadrada que sale del oscilador del PLL, entonces cuando esté en un nivel alto pones las señales como corresponda y lo mismo para el bajo.
Lo único que entre la salida y la entrada tienes un pequeño desfase claro está, pero teniéndolo en cuenta, todos los niveles de salida están correlados, que precisamente es lo que logras con el PLL.
No se si esto te servirá. Igual te da alguna idea para tirar por otro lado con esto. Aunque conceptualmente a lo mejor es un poco más complejo.

Gracias NosepComo, en realidad hay varias alternativas, y como bien dices siempre estará un retardo en estos menesteres, mas que nada pensé en el PIC por que lo elementos a usar son realmente mínimos, nisiquiera con el oscilador externo, una simple resistencia a un pin  y dos salidas directa que darán los pulsos para dejar conduciendo transistores y hacer una regeneración de una señal senoidal.

Encontré en Internet un PDF bastante extenso con el control para un dimer, y según analice hacen la detección con rutinas esperando un nivel alto o bajo de la señal partiendo de 0,7 volt de subida y de bajada, ese seria el pequeño intervalo de recorte, voy a tener que ir viendo si me sale útil ya que me importa también regenerar lo mas fiable la señal sin tanta distorsión, ideal seria que pudiera detectar de forma automática la frecuencia, en otro lado encontré que usaban una interrupción mejorando el retardo, pero ahí tendria que cambiar de pic y ver alguno de 8 patitas sin oscilador externo que lo realice..  

El PDF seria este para el mismo PIC:http://ww1.microchip.com/downloads/en/AppNotes/40171a.pdf  para el 12C o F 508/509

Igual el lenguaje no es directamente ASM por lo que me complico entender mucho como lo realizan.. ASM es lo único que manejo.

Iré probando sistemas analógicos primero y si puedo armar un código lo comparare con los resultados anteriores a ver cual será mejor para este propósito.

Un cordial Saludo
J.Lezana
« Última modificación: 07 de Septiembre de 2011, 09:02:55 por Jlezana »

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Ayuda Detectar Flancos de señal senoidal de 2 khz hacia abajo con PIC 12c508/09
« Respuesta #6 en: 07 de Septiembre de 2011, 09:43:55 »
  Hola, hace mucho tiempo que no utilizo un 12c508/509 pero creo recordar que no tenían interrupciones. Creo que la opción que te queda es hacer polling sobre el pin de entrada.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado Jlezana

  • PIC10
  • *
  • Mensajes: 6
Re: Ayuda Detectar Flancos de señal senoidal de 2 khz hacia abajo con PIC 12c508/09
« Respuesta #7 en: 07 de Septiembre de 2011, 10:03:24 »
  Hola, hace mucho tiempo que no utilizo un 12c508/509 pero creo recordar que no tenían interrupciones. Creo que la opción que te queda es hacer polling sobre el pin de entrada.

Asi es AngelGris, me estan consiguiendo un 12F675 para esta accion que si tiene interrupcion y varias cosas mas.. 

Mejor cambio el titulo del post y vemos como voy desarrolando a futuro esta parte siempre en ASM que es lo que entiendo mejor.

Saludos
JLezana


 

anything