Actualmente estoy construyendo un sistema de imágenes ópticas y me he encontrado con algunas dificultades. La fuente óptica es un láser Ti-zafiro que emite pulsos a 80 MHz y estoy usando un tubo fotomultiplicador como detector. Me gustaría activar mi muestreo en base a cada tercer pulso del Ti-zafiro (en otras palabras, me gustaría muestrear a 80/3 MHz). Ya he configurado un fotodiodo rápido que puede detectar cada pulso. ¿Hay alguna manera de que pueda recoger fácilmente cada tercer pulso?
Gracias por cualquier ayuda.
Si tiene un detector de fotodiodo que puede emitir un 1 o 0 digital en cada pulso, entonces crear un disparador que emita cada 3 pulsos no es tan difícil.
Haga una máquina de estado que esencialmente cuente hasta 3 y luego se reinicie.
Deje que haya una señal de reloj que sea la salida de su detector de fotodiodos.
Deje que haya una variable de estado de 2 bits que cuente los pulsos (llamémosla C).
Que haya una salida de disparo. Llamémoslo T.
Una descripción HDL para la máquina de estado se vería así...
if rising_edge(clock) then if C = "00" then C <= "01"; elsif C = "01" then C <= "10"; else C <= "00"; end if; T <= C = 00;
Por supuesto, podría sintetizar ese código HDL en un CPLD directamente. Alternativamente, podría usar algunos chips lógicos de la serie 74 para implementar la lógica.
C(0) <= C(0) NOR C(1)
C(1) <= (C(0) NOR C(0)) NOR C(1)
T = C(0) NOR C(1)
Así que necesitaría una compuerta NOR cuádruple y dos D-Flip-Flops.
Además, como algunos han sugerido, podría usar el detector de pulsos para cronometrar un registro de desplazamiento de 3 etapas dispuesto en un círculo. Su disparador sería la salida de una de las tres etapas de registro.
El registro de desplazamiento tendría que estar precargado con el valor "100". Después del primer pulso, el valor cambiaría a "010", después del segundo "001", y luego después del tercero volvería a "100". Entonces tendrías un 1 en tu gatillo cada tercer pulso.
usuario_1818839
marcus muller
usuario4574
usuario4574
TonyM
usuario4574
Pablo Elliott