Soy un desarrollador de software profesional que está acostumbrado a los lujos de los depuradores integrados. Desde hace un tiempo, he estado experimentando con la plataforma Arduino. Sin embargo, encuentro que intentar interactuar con componentes como un sensor de temperatura digital DS1820 de Dallas es como buscar en la oscuridad.
Suponiendo un presupuesto suelto de $ 200 más o menos, ¿qué tipo de herramientas hay para ayudarme a visualizar lo que está sucediendo? He examinado el Link Instruments MSO-19, pero honestamente no sé mucho sobre la diferencia entre un osciloscopio y un analizador lógico.
¿Cómo sé que el dispositivo que compro será capaz de medir los tipos de componentes (simples) que estoy usando?
fuente
The soul of a new machine
Tracy Kidder dice (parafraseando) que los hombres de las cavernas usaron un osciloscopio para ver por qué el fuego no se quemaría. :-)esto es solo una adición a la respuesta de penjuin ya que no cabe en un comentario y su respuesta es generalmente correcta. Solo quiero aclarar una implicación en su respuesta.
Tenga mucho cuidado al elegir un dispositivo de medición en función de su ancho de banda / frecuencia de muestreo. Un dispositivo con una frecuencia de muestreo de 25 mhz no puede muestrear con precisión una señal de reloj digital de 25 mhz, ni siquiera cerca.
Si toma una señal de reloj digital a 25 mhz y la introduce en un osciloscopio con un ancho de banda de 25 mhz, verá algo cercano a una onda sinusoidal. Un osciloscopio con una frecuencia de muestreo de 25 mhz probablemente mostraría un nivel de CC ya que, según Nyquist, la señal de frecuencia más alta que tal osciloscopio podría muestrear sería de 12.5 mhz.
Una onda cuadrada contiene una frecuencia fundamental que es su frecuencia de reloj, para este ejemplo 25mhz. También contiene grandes armónicos impares que le dan su forma cuadrada, para mirar una señal de reloj digital de 25 mhz con precisión, necesitaría no solo mirar 25 mhz, sino también 75, 125, 175, 225, etc. a la precisión deseada o hasta la velocidad de respuesta del transceptor.
Si bien esto es un poco menos importante para un analizador lógico, sigue siendo muy importante. El analizador lógico está buscando un "alto" y un "bajo" por encima o por debajo de algún umbral. Si lo que ve entrar es una onda sinusoidal, verá estados artificialmente altos y bajos cortos y espacios artificialmente largos entre bits. Esto puede ser algo dependiente de la arquitectura del analizador.
Esto puede hacer que sea imposible diagnosticar problemas relacionados con varios modos de transmisión. Por ejemplo, SPI tiene 4 modos diferentes basados en datos que son válidos en los bordes del reloj ascendente o descendente y también en la polaridad de los datos (¿es alto un 1 o un 0?). Otros protocolos de transmisión también tienen este problema (I2S y formatos de audio relacionados, por ejemplo). Si no puede identificar con precisión cuándo tienen lugar las transiciones de borde, es casi imposible determinar si el bus está actuando dentro de las especificaciones.
En general, necesita tasas de ancho de banda / muestreo mucho más altas que la tasa de datos objetivo deseada. Si desea probar un bus I2C de 40 kHz, un analizador lógico con una frecuencia de muestreo de 100 mhz es más que suficiente. Si necesita muestrear un bus SPI de 25 mhz, necesita tener un alcance / analizador con un ancho de banda mucho más alto, algo cercano a 500 mhz si necesita una precisión real, así como una frecuencia de muestreo que permita la medición en ese rango de frecuencia.
Por lo tanto, el dispositivo penjuin recomendado con una velocidad de muestreo de 24 mhz probablemente solo pueda proporcionar una medición precisa de señales digitales que sean inferiores a ~ 2 mhz con una velocidad de respuesta apreciable para esa velocidad de datos.
fuente
Si planea trabajar principalmente en circuitos digitales, el analizador lógico es lo que desea. Los osciloscopios se destacan al mostrar relativamente pocas (por ejemplo, 2-4) señales analógicas con gran detalle, mientras que los analizadores lógicos, ya que se refieren principalmente a alto-bajo-bajo, generalmente tienen muchas más entradas.
Ciertamente, puede usar un O-Scope como analizador lógico, pero la ventaja de este último es que es más fácil obtener 'el panorama general' al poder ver docenas de señales simultáneamente.
fuente
Hay algunas buenas respuestas a esta pregunta similar: ¿Analizador lógico para principiantes?
fuente
En cuanto a los analizadores lógicos, escribí una comparación básica de los (relativamente) económicos:
Comparación de analizadores lógicos basados en PC
Una cosa a tener en cuenta sobre la velocidad de muestreo, una regla general es que generalmente necesita al menos 4 veces su velocidad de datos para obtener una lectura precisa, y hasta 10 veces es mejor. Entonces, si desea monitorear una señal de 8MHz (que puede generar fácilmente desde un AVR económico en SPI, por ejemplo), querría un analizador de frecuencia de muestreo de 32-80MHz. Esto solo se aplica cuando se captura en modo 'asíncrono'. Si está capturando en modo 'síncrono' (por ejemplo, con una señal de reloj), entonces su frecuencia de muestreo solo necesita coincidir con la frecuencia de la señal de reloj. Entonces, por ejemplo, en ese caso, el muestreo sincrónico de 8MHz sería suficiente para capturar una señal SPI de 8MHz (ya que tiene una señal de reloj dedicada).
fuente
Tengo un MSO-19 y me gusta mucho. Desearía que tuviera más de un canal analógico, pero funciona como un osciloscopio y un analizador lógico. Por el precio, creo que es un buen equipo (y funciona bien en VMWare en OS X). El o'scope me ayudó a ver lo que realmente está sucediendo en una parte del circuito, y no muestra solo el estado alto / bajo de una línea digital, como lo hace un analizador lógico. Es un voltímetro mucho más preciso (y de respuesta más rápida) que su multímetro estándar. Sin embargo, sería realmente bueno si pudiera decodificar datos en serie, en lugar de solo I2C y SPI ...
fuente
Esta respuesta probablemente no sea de mucha utilidad para usted usando ardunio, pero es una respuesta a la pregunta general.
Utilizo mucho las funciones del analizador lógico de mi pickit2. Claramente, está destinado a programar PIC, pero también tiene un modo de analizador lógico de 3 canales que uso todo el tiempo para mirar señales digitales. Todavía lo uso para eso, aunque estoy usando Cortex-M3 para mis proyectos actuales. Claramente, es una herramienta extremadamente primitiva según el estándar del equipo adecuado, pero aun así lo encuentro increíblemente útil
Lo he usado para depurar circuitos I2C y señales de salida de TV también, por ejemplo, vea mi publicación aquí
fuente
Esto es bastante bueno y muy barato: http://www.seeedstudio.com/depot/preorder-open-workbench-logic-sniffer-p-612.html?cPath=75
Tiene una tasa de muestreo decente, y puede apoyar un proyecto HW abierto y genial. Parece que todavía está en una especie de etapa beta, por lo que podría no ser lo mejor si solo quieres conectar algo y hacer que funcione.
fuente