Adición de cursores al osciloscopio analógico

Fondo

Vi este video en youtube donde este tipo agrega un marcador a su osciloscopio analógico enviando un pulso a la entrada del eje z: https://www.youtube.com/watch?v=QCFBBiIm1h0

Quiero hacer lo mismo con mi Tektronix 2213, pero quiero que los cursores estén calibrados.

Las dos señales con las que tratará mi sistema son A-GATE y la entrada Z-AXIS.

A-GATE es un pulso positivo que es alto desde el comienzo del barrido horizontal hasta el final. Su ancho representa el ancho de la pantalla del osciloscopio.

La entrada Z-AXIS controla el brillo de la traza. Un pulso en el momento adecuado producirá un punto brillante en la traza.

La temporización de A-GATE se genera mediante condensadores de temporización. No hay reloj para sincronizar.

Mi plan es:

  • Mida el ancho de A-GATE con un temporizador.
  • Leer un codificador rotatorio. El valor será una fracción D del valor de escala completa.
  • Calcule un nuevo ancho de pulso multiplicando el ancho de A-GATE por D. Este nuevo ancho está etiquetado como Retraso en el diagrama a continuación y lo establece el codificador rotatorio.
  • Establezca un PWM para el ancho de pulso calculado. El flanco ascendente de PWM debe estar sincronizado con el flanco ascendente de A-GATE.
  • Genere un pulso estrecho en el flanco descendente del PWM que impulsará la entrada Z-AXIS.ingrese la descripción de la imagen aquí

El 2213 no tiene una salida de puerta A, pero ignoremos eso (el plan es abrir cuidadosamente la caja y obtener una versión amortiguada de A-GATE a través de un paso en la caja).

Mi primer intento será una prueba de concepto con piezas fácilmente disponibles. Probablemente tendré que ir a MCU y componentes más rápidos para obtener una buena precisión en las escalas de tiempo horizontales más rápidas.

El pulso Z-AXIS tendrá que ser proporcional a la escala de tiempo horizontal, por ejemplo, 1/100 del ancho de la pantalla, pero creo que puedo manejar eso. Estoy pensando en algunos generadores de pulsos astables que alimentan un mux.

Preguntas

  1. ¿Debo usar un PIC y programarlo en ensamblaje para una sincronización confiable? Creo que los PIC hacen 1 instrucción/reloj.
  2. ¿Cómo sincronizo el flanco ascendente de PWM con el flanco ascendente de A-GATE? Estoy pensando que debería usar A-GATE como entrada a un PLL para generar el reloj para que mi MCU sincronice la MCU con el osciloscopio.
  3. El tiempo de A-GATE cambiará con diferentes escalas de tiempo horizontales. Si genero el reloj desde A-GATE, ¿se molestaría una MCU por el cambio de reloj? Me doy cuenta de que necesitaré circuitos adicionales para averiguar en qué escala de tiempo estoy.
  4. ¿Este plan tiene algún problema importante que deba tener en cuenta?

Cualquier otro consejo es apreciado.

Meta

Estoy haciendo esto por diversión. Sé que sería más fácil comprar un DSO barato con cursores.

Esta es mi primera pregunta de diseño de sistema en el sitio. Ya revisé la sección de ayuda. Avíseme si esta pregunta no es apropiada para EE SE.

La mayor parte de mi experiencia es con circuitos analógicos. Las explicaciones simplificadas de MCU son muy apreciadas.

¡Gracias!

Esto sería más claro si agregara un boceto de cómo quiere que se vea su pantalla.
¡No puedo creer que esté teniendo problemas para desenterrar una imagen de una pantalla de trama en un alcance de almacenamiento analógico! Era de rigor en neurociencia enviar la salida de un discriminador de ventana a un generador de tramas y luego disparar una polaroid para registros y publicación cuando la pantalla estaba llena.
Agregaré algunos bocetos en un momento.
También puede hacer esto con un temporizador 555 en lugar de un microcontrolador, pero de eso no se trata esta pregunta :)
@τεκ ¿podría? Descarté 555 temporizadores porque su temporización la establece un capacitor. ¿Cómo ajustaría el retraso cuando cambiara las escalas de tiempo en el osciloscopio?
@ DavidG25 Ups, no pensé en eso. Definitivamente posible, pero más simple de hacer en un microcontrolador.
@ DavidG25 Siempre puede hacer un multiplicador de capacitores y multiplicar su capacitancia con un potenciómetro como reóstato, en el enlace cambiaría R1. - No he leído la pregunta, solo leí lo que dijo τεκ y tu respuesta.
Circuito genial de @HarrySvensson: nunca lo había visto antes. Tal vez debería acortar la pregunta o dividirla en partes más pequeñas.

Respuestas (3)

El circuito 555 fue solo un ejemplo de "mickey mouse" de cómo usar la entrada del eje Z en una posición de barrido y no funcionará en todas las posiciones.

La forma correcta es usar la salida de barrido lineal del eje X (rampa de diente de sierra) y usar un umbral variable y un comparador para activar la entrada baja del eje Z. El truco es cómo obtener un ancho de pulso variable que sea un % constante del tiempo de barrido en algún lugar alrededor del 1~3% del tiempo de barrido. Esto nuevamente se puede hacer con otro comparador con un voltaje de compensación fijo que corresponde al 1 ~ 3% del voltaje de barrido lineal.

Coincidentemente, un circuito de este tipo ya se pensó e incluyó en esos visores antiguos y se usó para retardo: disparador, barrido expandido generalmente controlado por un potenciómetro vernier de 10 vueltas.

Su 2213 aún no tenía esto y, en su lugar, usó un potenciómetro multiplicador x1 para permitir el uso de un barrido retrasado.

Puede obtener tanto el manual de servicio con teoría de funcionamiento como el manual de usuario con un resultado de motor de búsqueda sencillo. (pista: lea las partes interesantes del Manual de servicio)

Intente una mejor pregunta o actualice todos los requisitos y por qué necesita esto y qué medida necesita realmente.

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Puede aprender mucho sobre el diseño analógico y de sistemas mediante la ingeniería inversa de estos fantásticos diseños. Eso es lo que hice cuando empecé. Averigua cómo funciona.

Suena bien para mí. Medir el ancho A es algo un poco extra, ya que el tiempo necesario es independiente del ancho. Recuerde, está colocando un "cursor" porque tiene interés en etiquetar algún punto de tiempo (para el cual no necesita el ancho), no alguna ubicación en la pantalla (para la cual sí necesita el ancho).

No debería necesitar programar en ensamblaje para una sincronización precisa, pero podría considerar usar interrupciones de temporizador.

Para controlar la ubicación de su Z-pip, ciertamente puede usar un potenciómetro, pero también puede usar una perilla frob (es decir, un codificador), botones arriba/abajo, un teclado con pantalla o cualquier otra cosa que le resulte conveniente.

Buen proyecto!!

No es una buena idea usar la A como reloj, incluso con un PLL. Use un reloj rápido, active una interrupción con el flanco ascendente de A. También use A para activar un temporizador, para que sepa el ancho de su sfreen. PWM será más difícil que simplemente encender y apagar un pulso, tal vez con una interrupción de CCP.

El codificador rotatorio es una gran idea y me ahorrará una lectura de ADC. ¡Gracias! Además, creo que necesito leer A-GATE, de lo contrario podría colocar los cursores "fuera de la pantalla" y eso sería confuso. Voy a hacer que una pantalla emita la posición de tiempo de los cursores como en un osciloscopio digital. Por último, creo que las interrupciones no son buenas porque se necesitan ciclos de reloj adicionales para hacer la ISR.
Confía en mí, querrás interrupciones. Obtendrá más precisión de la que perderá sondeando las entradas digitales para su flanco ascendente A.

Dado que la señal A depende de lo que mida el osciloscopio, es posible que su frecuencia no sea fija. Por ejemplo, el osciloscopio puede activarse con una señal cuya frecuencia varía, o una señal poco frecuente.

Sin embargo, la duración de su pulso dependerá del tiempo de barrido del alcance, por lo que debe ser constante (hasta que gire la perilla).

Usaría una placa de desarrollo FPGA barata para esto. Los más baratos los puedes conseguir por 20€. Y a diferencia de un micro, tiene control total sobre el tiempo y puede usar una frecuencia alta para mayor precisión.

El algo sería así:

Medir el pulso A: fácil de hacer, inicia un contador con el pulso, registra el valor cuando finaliza y ponlo en un registro.

Generar el cursor:

Cargue un valor en un contador, comience la cuenta regresiva cuando comience el pulso A, deténgase en cero, señal de salida;)

Si obtiene una de estas placas FPGA con unos pocos dígitos y botones de 7 segundos, incluso puede mostrar la configuración del cursor, la hora, etc.

Esto le dará muy buena precisión. Para una menor precisión, un temporizador analógico sería más simple, por supuesto.