Osciloscopio para monitorear AVR

0

Estoy en el punto en el que estoy atascado en un problema de comunicación y pensando en finalmente obtener un osciloscopio. Para mi sorpresa de principiante, no esperaba que fueran tan caros, así que miré a mi alrededor y encontré el osciloscopio de la vieja escuela a un precio muy bajo.

El tipo que está vendiendo el alcance está reclamando que se puede usar para proyectos 'Arduino', pero soy un poco escéptico sobre el monitoreo de datos binarios con esto.

Lo único que me confunde es la CPU MHZ vs BUS MHZ. La hoja de datos del oscilador dice

The amount of CRT rays: Single beam
Range of measured voltages: 20 mV - 200
The range of measured time intervals: 8 ms - 0.5 sec
Bandwidth: 0 - 5.5 MHz
Input channel resistance: 1 Mom
Input channel capacity: 50 pF
The minimum duration of the sweep: 0.2 ms / div
Maximum scan duration: 10 ms / div
Calibration voltage signal:  50 mV

Estoy preocupado por '5.5 MHz'. Para mi problema actual, necesito usarlo para detectar el problema de comunicación TWI, ya que el BUS se ejecuta a 100 kHz o 400 kHz, por lo que tengo entendido, puedo hacerlo perfectamente.

Ahora no entiendo lo que ocurrirá si trato de medir la salida de los pines del AVR directamente (sin TWI, solo pines parpadeantes al azar con un intervalo de pocos ms). ¿Voy a enfrentar los siguientes problemas:

  • Si mi AVR se ejecuta a 8Mhz y no tiene ningún tiempo de espera entre Pin salidas, este osciloscopio no podrá recogerlo?

    Básicamente, ¿no puedo usar este osciloscopio para monitorear puertos si mi AVR se está ejecutando a más de 4Mhz?

    ¡Gracias!

EDITAR: Otra alternativa que pensé que podría hacer es tomar otro ATMEGA328, habilitar ADC y enviar el resultado a través de WIFI / Bluetooth, técnicamente podría hacer un osciloscopio muy simple, ¿verdad? ¿El único problema 'mostrar' los datos, medirlos no debería darme ningún problema, si estoy buscando medir los AVR? Gracias!

    
pregunta 0x29a

2 respuestas

3

El ancho de banda de un alcance es la frecuencia con la que la señal mostrada comienza a disminuir en relación con el voltaje de entrada real (en el supuesto de que es el punto 3dB donde la señal se reduce a la mitad, pero nunca lo he comprobado dos veces). p>

Entonces, si coloca una señal pico a pico de 1V a 10Hz, el alcance mostrará un pico a pico de 1V exactamente como lo esperaría ya que no se encuentra cerca del límite. Si pones en la misma amplitud a 5.5MHz verías 0.5V. Si coloca 1V pico a pico a 100MHz (muy por encima del límite), verá una constante de 0V (el voltaje promedio).

Al mirar las señales del AVR, verás los niveles de CC correctos y, a menos que se estén cambiando muy rápido, verás los patrones correctos, sin embargo, las esquinas se mostrarán como mucho más redondeadas de lo que realmente son, un 5.5MHz La onda cuadrada se mostraría como una onda sinusoidal. Incluso algo a 8 MHz se mostraría hasta cierto punto, pero no confiaría en la precisión de ninguna medida en ese momento.

En general, desea que el alcance tenga un ancho de banda mucho mayor que la frecuencia con la que está trabajando, de modo que pueda ver las interferencias y los picos de ruido, pero su importancia depende de los problemas que esté intentando localizar.

Sin embargo, tenga en cuenta que ese alcance es un sistema analógico de la vieja escuela, será inútil para detectar transiciones fuera de lo normal o cualquier cosa que no sea un patrón constante. Para el trabajo digital en un presupuesto, un osciloscopio de software basado en USB que se ejecuta en una PC es la mejor compensación de precio y rendimiento en estos días. Todavía no hay sustituto para un alcance independiente de buena calidad, pero MUCHO más barato.

    
respondido por el Andrew
1
  1. Si espera descifrar solo las comunicaciones digitales, entonces lo mejor es probar un analizador lógico. Eso solo decodificará 0 o 1, pero el software generalmente le permitirá decodificar algunos protocolos digitales en bytes más manejables. Un osciloscopio también funcionará bien, pero tendrás que decodificar los bits manualmente.

  2. A menudo he encontrado que un alcance era más invaluable que un analizador lógico. Un analizador lógico es excelente si tiene problemas para configurar los puertos de comunicación, pero no le permitirá depurar fácilmente los problemas de pendiente o de ruido, y otras cosas que no están relacionadas con el dominio digital, sino con la parte analógica de la transmisión. . Si estás empezando, te recomiendo que vayas primero al ámbito.

  3. A menos que esté intentando depurar problemas de cristal, este alcance de 5.5MHz manejará los 8MHz del AVR muy bien. Recuerde que incluso si cambia el pin con una sola instrucción, seguirá necesitando dos instrucciones para hacer un ciclo (encender y apagar). Eso te dará una señal base de 4MHz. Por otro lado, si el alcance filtra los armónicos, lo que verá será una señal filtrada, probablemente más suave que lo que realmente se envía. También es posible que veas algunos timbres que posiblemente no estén allí porque la señal real tiene armónicos de orden superior para ser cuadrada . Nota: las comunicaciones de hardware generalmente no funcionan a la misma velocidad que la MCU, lo que requiere que algún divisor trabaje en sus múltiples etapas. No recuerdo la hoja de datos de Arduino para darle un número divisor exacto.

  4. A largo plazo, recomiendo tratar de encontrar un alcance de Rigol 1052 (50MHz, con algunos modelos hackeables para permitir señales de 100MHz). Solían ser baratos ish , pero son geniales. Otra opción es el Analog Discovery 2 o incluso la versión 1 si puedes encontrar uno usado. También puede considerar el DSO Quad (los DSO más antiguos tienen ~ 1MHz distancia). Es posible que sus 72MSps lo lleven teóricamente a 36MHz, aunque para propósitos prácticos probablemente sea más bajo, pero debería leer 8MHz muy bien.

respondido por el Ronan Paixão

Lea otras preguntas en las etiquetas