¿Podemos observar direcciones, datos y otras señales en los buses del microordenador mediante un osciloscopio, un LED o incluso un voltímetro de CC normal?

0

Los microcomputadores son dispositivos dinámicos que están sincronizados por un oscilador de reloj. Por lo tanto, las señales (E, R / W, CS, A15-A0, D7-D0 ...) aparecen en sus buses solo durante partes de un microsegundo y, como los buses son comunes para todos los sistemas de microcomputadores, cambian constantemente ...

La pregunta es: "¿Qué debemos hacer para detener todas estas señales de modo que podamos observarlas por medios ordinarios?"

Debo admitir que esto es más un rompecabezas complicado que una pregunta común porque mis alumnos y yo ya hemos encontrado una respuesta en el laboratorio de dispositivos de microcomputadoras :)

    

2 respuestas

4
  1. Cree un "depurador incrustado": conecte un botón y escriba un fragmento de código que pase por su código cada vez que presione el botón. El nivel de instrucciones por paso debe ser configurable, tal vez a través de un potenciómetro + umbrales. O bien, mantenga el uC conectado a una computadora y use un depurador de circuito suministrado con su uC.
  2. Reduzca el reloj y use los LED (hasta ~ 10Hz) / voltímetros (~ 1Hz). Las cámaras pueden filmar todo y las imágenes pueden ralentizarse. O use un convertidor paralelo a serie y un osciloscopio (activado en Chip Select, como dijo Circuit fantasist, o cualquier pulso único que ocurra en un ciclo de lectura) para verlos todos a la vez, incluso a frecuencias bastante altas
  3. Use un analizador lógico (Majenko fue el primero en decirlo), la ventaja es que los datos se le presentarán después del descifrado del protocolo y / o la conversión de la base (Serial, I2C, SPI, o en este caso binario a decimal / hexadecimal).
respondido por el Mister Mystère
0

Aquí hay una instantánea del reloj y las señales de datos de HC11 obtenidas de esta manera en la pantalla de alcance:

Comousted(BrianDrummond)supuso,unpequeñoprograma(simplementeleyendo/escribiendodesde/haciaunaceldadememoria)estáenbucle.LaprimerasondadebeestarconectadaalaCS,lasegundaa(algúncablede)losbuses...yelosciloscopiodebeestarsincronizadoconlaCS(el"truco" :) Pero no pude encontrar esta imagen y mostré una instantánea donde la primera forma representa el reloj (2 MHz), la segunda - una señal del bus de datos ... y el osciloscopio está sincronizado externamente con CS. Luego, al mover la segunda sonda, podemos investigar todas las señales interesantes en los autobuses ...

Ahora veamos cómo podemos realizar esta idea solo con un LED ... En realidad, se ha utilizado durante mucho tiempo en indicadores LED dinámicos de 7 segmentos. Podemos controlar un LED desde el lado del ánodo manteniendo su cátodo en el suelo estable; a la inversa, podemos controlarlo desde el lado del cátodo manteniendo su ánodo en el Vcc estable; Finalmente, podemos controlarlo simultáneamente desde ambos lados (del ánodo y el cátodo) simplemente realizando una función AND sin ningún circuito adicional. Por lo tanto, la señal aplicada desde el lado del cátodo puede servir como SELECCIONAR (CS del dispositivo observado) con respecto a la señal de interés de ENTRADA (por ejemplo, A15) aplicada desde el lado del ánodo. Entonces, cada vez que CS está activo (bajo) y la señal de bus observada (A15) es alta, el LED parpadeará ... y si lo repetimos lo suficientemente rápido, tendremos la ilusión de que el LED se ilumina continuamente (el La idea cinematográfica de Edison o la idea estroboscópica ).

Porlotanto,el'truco'esextremadamentesimple:simplementeconecteunLED(porsupuesto,atravésdeunaresistencia)entreestosdospuntos(elcátodoaCSyelánodoalalíneadebus)...

... y ejecuta un programa simple (por ejemplo, una única instrucción LDA o STA seguida de BRA).

Es interesante que esta humilde sonda lógica estroboscópica sea mejor (para este propósito) que el osciloscopio. Allí debemos tener en cuenta el valor de la señal observada solo dentro del intervalo de tiempo en el que CS está activo, mientras que aquí el LED indica la señal solo en este intervalo.

Además, podemos conectar varios diodos para observar simultáneamente todas las líneas de bus (con la esperanza de que CS pueda soportar la suma de las corrientes de LED).

Parece increíblemente pero podemos observar estas señales de pulso HF incluso con un voltímetro de CC común conectado a través de un diodo entre el CS y el punto de interés. Mientras que, en el caso del LED, nuestra visión inerte integra los pulsos, aquí el voltímetro inerte los integra. A diferencia de la sonda LED, este indicador tiene la ventaja de que no consume ninguna corriente de los buses.

    
respondido por el Circuit fantasist

Lea otras preguntas en las etiquetas