Pero cuando enviamos el dato y el dispositivo de recepción no hace lo que queremos, en ese momento empieza lo interesante: noches enteras de programación, el consumo de café sube exponencialmente… todo, pero no nos damos por vencidos, para eso somos electrónicos.
En estos momentos de caos es cuando una herramienta llamada analizador lógico llega para ayudarnos como un enviado del cielo. Un analizador lógico es un instrumento que nos permite capturar múltiples señales eléctricas de un sistema o un circuito digital. Es similar a un osciloscopio, con la diferencia de que su diseño es basado para trabajar con señales digitales (ceros y unos).
En esta entrada hablaremos del Open Bench Logic Sniffer (OLS), un analizador lógico de Dangerous Prototypes, el cual puede adquirirse por unos $50 USD.
Figura 1. Open Bench Logic Sniffer
Un analizador lógico es una herramienta muy útil que nos permite entre otras cosas la depuración de errores en circuitos digitales (microcontroladores, FPGAs, sensores digitales), realizar hacks, ingeniería inversa de dispositivos, etc.
Figura 2: a) analizador lógico embebido en un osciloscopio b) analizador lógico usb
Este tipo de equipos no son tan comunes como un osciloscopio, o un generador de funciones, pero si necesitas realizar algún tipo de trabajo o diseño que tenga algún tipo de comunicación digital o una secuencia de activación digital que tenga más de 2 canales (lo más común en un osciloscopio) vas a requerir un analizador lógico.
Esto no quiere decir que un analizador lógico es un reemplazo de un osciloscopio. El analizador permite analizar únicamente señales lógicas (binarias), contienen un latch que se encarga de tomar un voltaje que supere 3.3Vdc o 5Vdc y lo convierte en un 1 lógico, mientras que un osciloscopio te mostrará el verdadero comportamiento de la señal donde podrás visualizar ruido y pequeñas fallas o comportamientos erráticos (glitches) de la misma.
El Open Bench Logic Sniffer es un equipo muy completo, y sobre todo económico. Tiene características como:
Ancho de banda de 50MHz en 32 canales
16 canales de 5V y 16 de 3.3V
RAM de 216k (24k en 8 canales)
Entrada para clock externo y trigger
Diseño abierto y gratuito
1. Instalación
1.1. Lo primero que debes hacer es instalar el cliente OLS, el cual lo puedes encontrar aquí. Una vez descargado, lo descomprimes y abres el archivo .run. Se te mostrará una pantalla como la siguiente:
Figura 3. Pantalla principal del cliente SUMP
1.2. Conectamos el OLS al puerto USB del computador. En mi caso no tuve que instalar ningún driver (Windows 10), pero si no funciona, puedes descargar los archivos necesarios aquí.
1.3 Hacemos click en el botón que se muestra en la figura 4.
Figura 4. Botón de captura de datos
1.4 En la pantalla emergente, en la pestaña Connection, configuramos el tipo de conexión (serial), el puerto de comunicación, la velocidad del puerto y el tipo de dispositivo.
Figura 5. Configuración de conexión del OLS
1.5. En la pestaña Acquisition, configuramos la numeración, el clock, la velocidad de muestreo y marcamos los 2 grupos de señales (16 canales). Además habilitamos el Test mode para poder realizar una muestra de funcionamiento.
Figura 6. Configuración de adquisición de datos
1.6. Con un cable plano (cable IDE o ribbon cable), conectamos los 16 canales de 3.3V a los 16 canales de 5V. Como se muestra en el video.
1.7. Hacemos click en capture y deberíamos obtener lo siguiente:
Figura 7. Captura de datos de muestra
Con esto podemos comprobar que todos los canales del OLS estén funcionando correctamente. Ahora, para hacer una prueba más real, utilizaré el Bus Pirate para generar un dato por UART y visualizarlo en el OLS.
Para esto primero configuramos el OLS para que funcione con un trigger. En mi caso el puerto 7 se conectará a la salida MOSI del Bus Pirate.
Figura 8. Configuración del trigger
Luego, disminuimos la velocidad de muestreo a 2MHz. Esto debido a que intentaremos capturar varios datos y si el muestreo es muy rápido nos quedaremos sin memoria.
Figura 9. Cambio de velocidad de muestreo
Presionamos Capture y el OLS debe quedarse en un modo de espera del Trigger, hasta que reciba un dato por el puerto 7. Luego conectamos el Bus Pirate y con un cliente como PuTTY podemos conectarnos por el puerto serial.
Figura 10. Ingreso al menú del Bus Pirate
Seleccionamos la configuración del puerto según nuestros requerimientos. En mi caso: 9600bps, 8N1.
Figura 11. Configuración del puerto serial en el Bus Pirate
Revisamos que GND esté compartida entre ambos dispositivos, y que el MISO del Bus Pirate esté conectado al canal 7 del OLS. Así enviamos los datos por UART.
Figura 12. Datos enviados por UART
El cliente OLS debe mostrar la captura de datos en el canal 7
Figura 13. Datos capturados en el cliente SUMP
Vamos al menú Tools>UART Analyzer, seleccionamos el canal en el cual se está transmitiendo y resionamos Analize
Figura 14. Herramienta de decodificación UART del cliente SUMP
Felicitaciones!!, hemos capturado el flujo UART del Bus Pirate con el OLS. Como verás es una herramienta muy útil al momento de depurar circuitos digitales, y a un precio muy competitivo. Como lo mencioné anteriormente, no es un reemplazo de un osciloscopio, pero es una herramienta que cuando la necesitas, pues bien, simplemente la necesitas...
Es todo por hoy. Por favor, si la información te ha servido, suscríbete para que las entradas te lleguen al mail, y comenta. Hasta la próxima entrega.
Fuente: este post proviene de Blog de davilamds, donde puedes consultar el contenido original.
¿Vulnera este post tus derechos? Pincha aquí.
Creado: