lunes, septiembre 15, 2014

Herramientas: Analizador lógico (III)

Cuando se trabaja con señales digitales, una de las cosas que siempre son necesarias son comprobar las comunicaciones entre dispositivos. Hay varias formas de hacerlo: osciloscopio, sonda lógica, etc. pero nada tan útil como un analizador digital o lógico.

Hace tiempo, en este blog, empezamos a trabajar en uno. Sin embargo, paseándome por la web he visto este, que al precio que tiene prácticamente no merece la pena perder el tiempo en montarnos uno (al menos de momento).

Este tipo de dispositivos están basados en el chip Cypress CY7C68013A que es un microprocesador con núcleo 8051 con un USB. Tiene una velocidad de muestreo máxima de 24MHz más que suficiente para la mayoría de las comunicaciones: I2C, Serial, SPI (siempre que el reloj sea por debajo de 12MHz), 1-Wire, etc.

Hardware

Las especificaciones de hardware son:
  • Main chip: Cypress CY7C68013A-56PVXC (FX2LP)
  • Input buffer: NXP 74HC245 (markings: "NXP HC245 2A7K508 UnD2 18E")
  • 256-byte I2C EEPROM: Atmel AT24C02 (markings: "ATMEL218 24C02N SU27 D")
  • 3.3V low-dropout voltage regulator: Advanced Monolithic Systems AMS1117-3.3 (markings: "AMS1117 3.3 HT240E")
  • Crystal: 24.000MHz
Clon chino del USBee AX PRO
PCB top
PCB bottom
La ventaja de este dispositivo es el precio ya que nos permite tener un analizador lógico medio decente (las señales de hasta 12MHz incluyen muchos de los protocolos utilizados en los micros). Sin embargo, el precio no justifica que tiremos el dinero al quemar el chip cada vez que la cagamos conectándolo a una tensión que no toca, así que yo me he montado un pequeño circuito (muy sencillo) con 8 zeners (4V9) y 8 PTCs (fusibles rearmables de 100mA) que me evitarán quemar el dispositivo en la mayoría de las cagadas que pueda hacer (como meterle una tensión más alta de la que el dispositivo puede soportar).

Circuito de protección
Hay que decir que el circuito original lo monté para un Saleae (muy similar) y queda bastante compacto

Circuito de protección para Saleae
Circuito de protección para Saleae
La pareja fusible + zener protege al dispositivo de las sobre-tensiones, además el buffer de entrada aguanta hasta 200V de ESD.

Software

Lo primero es usar el propio programa que viene con el analizador, dado que es un clon del USBee AX Pro, lo único que han hecho es copiar el programa del anterior (y crackearlo): http://m5.img.dxcdn.com/CDDriver/CD/sku.148945.rar

Sin embargo es mucho mejor (sobretodo si usas linux) utilizar el firmware fx2lafw y los programas PulseView y Sigrok. En Windows son muy sencillos de instalar, sólo hay que ejecutar el instalador e usar el driver WinUSB para el dispositivo, que se instala con el programa Zadig incluido, y que nos permite tener los dos programas instalados y usar uno u otro según el puerto USB utilizado.

PD: Algunas lecturas interesantes (en inglés):