Buenas!
Continuo con un proyecto que comente en otro post (
http://www.todopic.com.ar/foros/index.php?topic=40636.0) pero lo explico un poco. se trata de un detector de lazo inductivo para detectar vehículos. Tengo dos bucles diferentes hechos que forman parte de un oscilador colpitt, uno que genera una onda sinusoidal entre 100KHz y 200KHz (frecuencia seleccionable cambiando los condensadores del oscilador) y otro mas pequeño que genera una señal entre 33kHz y 66KHz. Esta señal sinusoidal se convierte en una onda cuadrada que oscila entre los valores '1' y '0' (no con un ciclo de 50% '1' y 50% '0') conectada al contador asíncrono timer0 del PIC a 4MHz donde se le hace el control.
Con el bucle pequeño, con una oscilación de 66KHz el PIC realiza el control correctamente, con el grande con una frecuencia de 100Khz no funciona correctamente, aunque el PIC si funciona bien haciéndole el control a una señal de 100KHz dada por un generador de funciones. Esto creo que es debido a que el generador de funciones si tiene un tiempo mayor con un valor lógico de '1' que la que soy capaz de generar con la bobina.
¿Alguno de ustedes sabe cual es el tiempo mínimo que debe estar una entrada a un valor lógico de '1' para que el PIC pueda detectarla como tal? a 200khz tiene un valor lógico de '1' durante 0'25us y ya no hace bien el control (ni con el generador de funciones)...
Pensé en usar las instrucciones #use fast_io o #fuses HS (gracias lucaspascual
) o cambiar el cristal por uno mas rápido, ¿creen que funcionara?¿se les ocurre algo?
Gracias de antemano