domingo, 7 de agosto de 2016

Reseña/evaluación: Analizador lógico Open bench logic sniffer

Cuando trabajamos con protocolos de comunicación como RS232, SPI, I2C, etc., y todo funciona como lo programamos, no tenemos ningún problema… el microcontrolador envía un dato como “hola” a otro dispositivo, el cual lo recibe como debe, tomamos un café para regocijarnos por nuestro logro, lo mostramos a nuestros amigos, profesores, esposa o a quién le interese y enterramos el proyecto en el olvido. 

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.

Open Workbench
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.

rigos msusb logic
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:

logicclient
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.

cliente1
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.

cliente2
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.

cliente3
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:

cliente4
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.

bp3
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.

bp4
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.

bp1
Figura 10.  Ingreso al menú del Bus Pirate

Seleccionamos la configuración del puerto según nuestros requerimientos. En mi caso: 9600bps, 8N1.

bp2
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.

bp5
Figura 12.  Datos enviados por UART

El cliente OLS debe mostrar la captura de datos en el canal 7

bp6
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”

bp7
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.