Skip to content

Capítulo 26: Probando el analizador lógico compatible Saleae con la FPGA

Juan Gonzalez-Gomez edited this page Jul 3, 2017 · 35 revisions

VideoBlog 26

VER VIDEO:

Click to see the youtube video

  • Fecha: 2017/Julio/3

Descripción

Ejemplo de uso de un analizador lógico compatible Saleae, con el software libre Pulseview, que es parte del proyecto Sigrok. El objetivo de este proyecto es crear un software libre que permita utilizar los analizadores lógicos del mercado. Utilizaremos circuitos sintetizados en la placa con FPGA Icezum Alhambra para las pruebas. Se muestran dos ejemplos de captura. Uno a baja frecuencia, mostrándose el valor de un pulsador externo. En el segundo se capturan los datos transmitidos por el puerto serie de la FPGA, a 115200 baudios.

Analizador lógico compatible Saleae

Los analizadores lógicos Saleae funcionan por USB y son muy compactos. El más barato se puede comprar por unos $100. Sin embargo, existe una alternativa china extremadamente barata (menos de 10€) que se puede usar con el software libre PulseView

Ejemplo 1: Señal de un pulsador

Empezamos con un ejemplo hola mundo. Conectamos el cable negro a GND, tanto en el analizador como en la Icezum Alhambra. Luego conectamos el cable blanco al canal 1 y por el otro extremo al pin D0. Usamos un pulsador externo que conectamos al pin D13

Abrimos Icestudio y creamos el siguiente circuito:

(El fichero se puede descargar de aquí: Analizador-test1-pulsador.ice)

El pulsador se conecta directamente al pin de salida D0, donde se ha conectado el analizador. Además se conecta también al LED0 para comprobar que luce cuando se aprieta el pulsador

Cargamos el circuito en la Icezum Alhambra. Al apretar el pulsador veremos que el led se enciende, y al soltarlo se apaga

Abrimos el PulseView. Pinchamos en el icono:

y configuramos los canales para que sólo se visualice el 1

Ahora configuramos la frecuencia de muestreo a 20Khz y el número de muestras a 100K

Con estos valores se realizará un muestreo durante 5 segundos. Pinchamos en el botón de RUN para comenzar. Apretamos el pulsador externo unas cuantas veces. Nos aparecerá el resultado:

Pulsar en el icono:

para que las muestras de la señal ocupen toda la pantalla y se visualicen correctamente

Si no dispones del analizador, puedes cargar los datos desde este fichero que se abre con en PulseView: Analizador-test1-pulsador.sr

Ejemplo 2: Señal de un transmisor seria asíncrono a 115200 baudios

En este ejemplo muestrearemos una señal del puerto serie de la FPGA, y podremos ver el carácter transmitido a 115200 baudios. El circuito en Icestudio es el siguiente Analizador-test2-serie.ice

Cuando aprieta el pulsador, este circuito comienza a transmitir el carácter 0x55 (hexadecimal), que se corresponde con el número binario 01010101. Es un número que se usa mucho en hardware, ya que intercala bits a 1 con 0.

Lo cargamos. Hacemos una primera prueba lanzando el ScriptCommunicator. Es un programa de comunicaciones serie, que nos permite visualizar en pantalla todo lo que se envía por el transmisor serie metido en la FPGA. Lo arrancamos y nos situamos en la pestaña HEX

Ahora pulsamos el botón externo, para que nuestro circuito empiece a transmitir. La pantalla se nos llenará con el valor 55:

Vamos a capturar los datos con el analizador lógico. Lanzamos el PulseVie. Configuramos la velocidad de muestreo a 12Mhz, con 5k muestras, sólo activamos el canal 1 y fijamos el 10% en el parámetro Pre-trigger capture ratio, para que nos capture muestras antes de que se dispare la señal

Hacemos doble click sobre el canal D1. Cambiamos el nombre a TX y configuramos el disparador para que empiece a tomar muestra en cuanto llegue el primer flanco de bajada (La señal tx del puerto serie están a 1 y cuando llega un carácter baja a 0, debido al bit de start)

Pulsamos en el botón de RUN para empezar a capturar. Se queda esperando hasta que se cumpla la condición de que llegue un flanco de bajada. Apretamos el pulsador para empezar el envío y lograr la captura. Le damos al icono

para ver correctamente las muestras:

Para decodificar el puerto serie y comprobar si la información que se envía es correcta, apretamos el icono verde del +:

y seleccionamos la opción UART

Ahora lo veremos todo mucho mejor: el valor de los bits individuales, el bit de start (S), el de stop (T) y el valor recibido (55) en hexadecimal

Probamos a cambiar el valor enviado a otro: 0xAA. Editamos el circuito en Icestudio (Analizador-test3-serie.ice)

Analizador-14.png

Cargamos en la Icezum Alhambra y volvemos a capturar desde PulseView:

Analizador-15.png

Ahora recibimos el valor AA, en vez del 55

Descargas

Fichero Descripción
Analizador-test1-pulsador.ice Ejemplo 1 de Circuito de prueba, para Icestudio: Pulsador
Analizador-test2-serie.ice Ejemplo 2 de Circuito de prueba, para Icestudio: Transmisor serie. Valor 0x55
Analizador-test3-serie.ice Ejemplo 3 de Circuito de prueba, para Icestudio: Transmisor serie. Valor 0xAA
Analizador-test1-pulsador.sr Datos capturados del ejemplo 1, para PulseView
Analizador-test2-serie.sr Datos capturados del ejemplo 2, para PulseView
Analizador-test3-serie.sr Datos capturados del ejemplo 3, para PulseView

Enlaces

Autor

Licencia

Inicio
(Capítulos 1-11)

VideoBlogs

  1. Proyecto Icestorm: Herramientas libres para sintetizar diseños en FPGAs
  2. Procesador simplez en FPGA
  3. Platformio + FPGA
  4. Icestudio: programación visual de hardware en FPGA
  5. Platformio + Símplez
  6. Tarjeta IceZUM Alhambra. FPGA para todos
  7. Diseño paramétrico de piezas en FreeCAD
  8. Ubuntu Phone y FPGAs
  9. Esquema de la Icezum Alhambra migrado a Kicad
  10. Modelos 3D en Freecad para Kicad
  11. Icezum Alhambra V1.0K
  12. ACC: Apollo CPU Core
  13. Teselación de Penrose (P2)
  14. ACC1: Apollo CPU Core 1
  15. Probando el analizador lógico compatible Saleae con la FPGA
  16. FPGA: La placa Alhambra-II
  17. Etiquetas en Icestudio
  18. FPGAs: Control de LEDs
  19. FPGAs: SPI esclavo (1/2)
  20. FPGAs: SPI esclavo (2/2)
  21. FPGAs: SPI maestro (1/2)
  22. FPGAs: SPI maestro (2/2)
  23. FPGAs: Display SPI de 4 dígitos de 7 segmentos
  24. FPGAs: Máquina de contar. Controlador para Display SPI
  25. FPGAs: Edición de submódulos en Icestudio 0.5-dev
  26. Webserial y FPGAs
  27. Componentes virtuales y FPGA
  28. FPGAs y Memoria (I): Del biestable D al registro
  29. FPGAs y Memoria (II): Banco de registros
  30. FPGAs y Memoria (III): Memorias síncronas
  31. FPGAs y Memoria (VI): Aplicación: Secuencia programable en los LEDs
  32. FPGAs y Memoria (V): Aplicación: Volcado de memoria al PC
  33. FPGAs y Memorias (VI): Mapeo de recursos en memoria
  34. FPGAs y Pulsadores (I). Etapas de procesamiento de las entradas
  35. FPGAs y Pulsadores (II). La etapa física: pulsadores y placas
  36. FPGAs y Pulsadores (III). Etapas 1 y 2: Pull-ups y pull-downs
  37. FPGAs y Pulsadores (IV). Etapa 3: Sincronización
  38. FPGAs y Pulsadores (V). Etapa 4: Normalización
  39. FPGAs y Pulsadores (VI). Etapa 5: Antirrebotes
  40. FPGAs y Pulsadores (VII). Ejemplos de uso
  41. (-54). Colección iceK. FPGAs y contantes
Clone this wiki locally