element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Test & Tools
  • Technologies
  • More
Test & Tools
Blog DIY Logic Analyzer and Protocol Tester – L.I.S.A.!
  • Blog
  • Forum
  • Documents
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Test & Tools to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: shabaz
  • Date Created: 3 Jul 2019 5:33 AM Date Created
  • Views 23606 views
  • Likes 20 likes
  • Comments 52 comments
  • logic analyzer
  • cy7c68013a
  • i2c
  • spi protocol
  • fx2lp
  • pulseview
  • i2c bus
  • cypress fx2
  • cypress fx2lp
  • spi
  • spi decoding
  • cypress
  • sigrok
Related
Recommended

DIY Logic Analyzer and Protocol Tester – L.I.S.A.!

shabaz
shabaz
3 Jul 2019

Introduction

This blog post discusses a project to build a simple logic analyzer (hobby-grade; it samples at up to 24 Msps, good enough for basic debugging when other tools are not available), but it has a few extra features too. This project could be handy for troubleshooting I2C or SPI when working on projects. It can in theory also be used for generating protocol output too, and for operation as a programmer for microcontrollers and FPGAs.

 

Nearly all digital electronics nowadays has a number of serial busses, either connected between subsystems inside the equipment, or exposed to the outside world. When troubleshooting such electronics, or even when prototyping, occasionally there is a need to attach to these interfaces and either monitor or inject information. These serial interfaces operate at a low-level, i.e. operating at the bits and bytes level and below! Enter the Low-Level Interface and Subsystem Analyzer, L.I.S.A.

 

It has dual-in-line (DIL) headers for attaching to (say) jumper wires or ribbon cables, to the equipment under test. The other end connects to a PC or Pi via USB. The project is designed to fit into an enclosure, but I have not got around to doing that yet.

image

 

Cypress FX2LP

Due to short time to design this project (schematic and PCB layout were completed in one day), I used Cypress Semiconductor’s FX2LP technology because it simplifies high-speed data transfer via USB. FX2LP chips contain a very basic microcontroller, but includes a USB accelerator function that bypasses the processor and allows for data to be shuttled between input/output pins on the chip, and the USB attached host, extremely rapidly. The FX2LP chips work at USB 2.0 High Speed (480Mbit/sec) rates.

(Image source: Cypress website)image

 

There are also FX3 chips which operate at an incredible 5Gbit/sec (USB 3.0), and I’d like to explore them one day.

 

Such a design requires the actual protocol decoding to be done on the connected computer. I liked the idea of having some basic, general-purpose hardware that could be attached to any PC, and have the bulk of the processing done on the PC. It should also work with a Pi, for portable, battery-powered use and possibly long-term logging too.

 

Incidentally, the commercial Saleae logic analyzer uses the same FX2LP chip (I do not own this device, but there are photos of the internals on the web). The Saleae device contains the FX2LP chip and little else. Anyway, it is likely compatible, if the firmware is available. I’m personally more interested in creating new firmware eventually, with the extra features mentioned above. Today, with no firmware or software written for it, it is nevertheless supported by the open source Sigrok/PulseView project, with no extra work, because many logic analyzers use the same chip.

image

Design Overview

The diagram below shows the functionality on the board. It contains a total of 8 input ports, and 4 output ports. LISA version 1.0 supports 3.3V logic levels only, although it will tolerate 5V on the inputs. Isolated 5V and 3.3V supplies are exposed on a connector, so that LISA can power up some externally attached equipment if necessary.

image

 

Everything on the board is hand-solderable with an iron (no need for reflow tools), so this should be an easy project to construct with the minimum of tools.

 

The project is expandable too; instead of using right-angle header pins, it is possible to use vertical pins, and plug on a board on top, which could (say) expose input/output at different logic levels such as RS232.

 

Example Uses

Here are some example use-cases that are envisaged:

 

  • Troubleshooting/sniffing I2C, SPI and UART
  • Long-term logging/monitoring of I2C, SPI and UART
  • Generating I2C, SPI and UART traffic
  • FPGA programmer (JTAG)
  • ARM programmer (SWD)
  • Simple Logic Analyzer (8 port)
  • Controlling external equipment (4 outputs) with a future relay card
  • Logging/monitoring analog signals with a future ADC card
  • Powering external circuitry with the 3.3V or 5V outputs

 

Building It

The PCB files are attached to this blog post, ready to be sent to a PCB factory. It is a 2-layer board, 142x90mm. Everything can be hand-soldered with a small-tipped (around 1mm) soldering iron.

 

A few of the parts need some thought due to the size of them. For the micro USB connector, I put a small dab of solder paste on the pads, and then placed the connector on the board, and then heated the pins. It’s quite easy. I used solder paste in a similar way for the LEDs. Everything else was soldered as usual with thin (0.274mm) solder wire.

The diagrams here can be used for locating the components on the board.

image

 

Board underside:

image

 

Here is the schematic (click to enlarge), sheet 1 of 2:

image

Sheet 2 of 2:

image

 

Parts List

 

 

 

Product NameManufacturerQuantityBuy KitBuy Kit
Laird HZ0805E601R-10HZ0805E601R-10 Ferrite bead, approx 0805 size4Buy NowBuy Now
100n 0603 CAPACITOR17Buy NowBuy Now
10M R0805 RESISTOR1Buy NowBuy Now
10k 0805 RESISTOR1Buy NowBuy Now
10n 0805 CAPACITOR1Buy NowBuy Now
10u 10V Tant A Capacitor TPSA106K010R18004Buy NowBuy Now
12p 0603 CAPACITOR2Buy NowBuy Now
2.7k 0805 RESISTOR2Buy NowBuy Now
24MHz CRYSTAL HC49U 12pF1Buy NowBuy Now
27k 0805 RESISTOR3Buy NowBuy Now
33k Quad Resistor Array2Buy NowBuy Now
470R Quad Resistor Array1Buy NowBuy Now
47R Quad Resistor Array3Buy NowBuy Now
470R 0805 RESISTOR1Buy NowBuy Now
47u 6.3V Tant A Capacitor  TPSA476K006R08004Buy NowBuy Now
500mA POLYFUSE 0603 MF-FSMF050X-21Buy NowBuy Now
CAT24C512YI-GT3CAT24C512YI-GT3  EEPROM, I2C, 512kbit1Buy NowBuy Now
CY7C68013A-56PVXCCY7C68013A-56PVXC Microcontroller FX2LP1Buy NowBuy Now
DIL8 Header R/A T821108A1R100CEUT821108A1R100CEU3Buy NowBuy Now
LED Yellow KPD-3224SYCKKPD-3224SYCK5Buy NowBuy Now
LD1117S33TR 3.3V 800mA Linear Regulator2Buy NowBuy Now
MC74VHCT50ADTR2G Buffer, 2 V to 5.5 V1Buy NowBuy Now
REE-0505SREE-0505S DC-DC converter isolated1Buy NowBuy Now
TACT switch1Buy NowBuy Now
SI8640BB-B-IS1SI8640BB-B-IS1 Digital Isolator, 4 Channel, NSOIC3Buy NowBuy Now
TPD4E1U06DCKRTPD4E1U06DCKR Quad high-speed ESD device SC704Buy NowBuy Now
TPS3820-33QDBVRQ1 Supervisor 2.93 V Threshold1Buy NowBuy Now
ZX62D-B-5P8(30) USB-micro Type B receptacle1Buy NowBuy Now
Enclosure 150x100x30mm PF15-3-10WPF15-3-10W1Buy NowBuy Now
Light pipe, 15.9mm long1Buy NowBuy Now

 

 

 

Using It

The following two items of software are needed from the Sigrok download page: PulseView (I used version 0.4.1 for Windows 64-bit) and sigrok-cli (I used version 0.7.1 for Windows 64-bit). Install sigrok-cli and then PulseView on your PC.

 

As part of the installation, the software will also install a utility called Zadig which is used to associate a particular driver with the Cypress chip. Run that utility, and plug in LISA. Click on Options -> List All Devices, and look for the USB device with the name Cypress FX2LP No EEPROM Device.

image

 

It should have USB ID 04B4 8613. Once you’ve found it, click on the button labelled Install Driver, or Replace Driver (it depends on if there is already some driver on your PC that needs to be overridden). Once you’ve done that, Zadig freezes for about half a minute and then displays a success message.

image

 

Now Zadig can be closed, and it doesn’t need to be used again.

 

To use the logic analyzer, run the PulseView application. The screenshot below shows what it looks like.

image

Note: If PulseView generates a Failed to open device error, then there is a chance that you've got other devices that use the same Cypress chip, that you've in the past installed on your PC. I don't know of a solution except this one: uninstall the device from the Windows Device Manager, then unplug the device, then go to the C:/Windows/INF folder, and using a text editor that can 'Find in Files' (an example text editor is Microsoft Visual Code) and search for the text FX2LP. You'll find some files such as (say) oem1234.INF that contains this text. Delete all such files, as well as any corresponding .PNF file. Then, plug in the device and run Zadig and follow the steps as described earlier.

 

That screenshot was obtained by using LISA to examine the I2C bus from a Raspberry Pi, connected to a LCD module. The LED lights come in handy, to confirm that connections are made properly. The I2C bus is at logic ‘1’ most of the time and so the two LEDs are lit.

image

 

Summary

Making a high-speed USB 2.0 device is straightforward using Cypress FX2LP chips. The design here is compatible with open source PC application software, and provides isolation, some internal LEDs and also outputs for future use as a microcontroller or FPGA programmer. More work needs to be done to produce additional firmware and application software, to make full use of it.

 

I currently have a couple of spare PCBs, so if anyone wants them, let me know via a private message, and I’ll post them. If you get a chance to build it, or experiment with software, do share your findings : )

Attachments:
export-lisa-v1-element14.zip
export-lisa-v1.1-element14.zip
  • Sign in to reply

Top Comments

  • dubbie
    dubbie over 6 years ago +7
    Shabaz, I liked this idea a lot. I have considered making some sort of logic analyser for many years but never had the knowledge or drive to do so. I think it looks a bit too complicated for me though…
  • neilk
    neilk over 6 years ago +6
    Hi Shabaz, L.I.S.A. looks fantastic! I love the way you've designed it to be hand solderable and used freely available downloads to make it work! I'd love to build one, but fear it will be some significant…
  • 14rhb
    14rhb over 6 years ago +6
    Hi shabaz This is really awesome work. I had to read through a couple of times as initially I thought it was one of your top-quality, in-depth teardowns...they I realised that it is your own board design…
Parents
  • phoenixcomm
    phoenixcomm over 3 years ago

    rajagopal.n Hi Rajagopal,

    I am quite interested in tis unit but I would like to know how to incorporate CANbus without using the SPI bus.

    I would also like the blob to do the filtering so the CPU doesn't need to. but I still would like to see the CANbus data itself

    ~~Cris

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Jan Cumps
    Jan Cumps over 3 years ago in reply to phoenixcomm

    Wouldn't you need 2 receivers then? If the blob filters, you can't show that data and need another CAN receiver to display the data filtered by the blob?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • phoenixcomm
    phoenixcomm over 3 years ago in reply to Jan Cumps

    Jan Cumps No, just one,  CAN is just two wires high and low (differential)

    I'm not sure how to set to filters, most likely I would set the Rvc filter to node address I was interested in seeing.

    ~~Cris

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Jan Cumps
    Jan Cumps over 3 years ago in reply to phoenixcomm

    I have a CAN bus running here in the Cumps LAB. I'm using CAN controllers from TI (part of the Hercules controller peripherals and the BeagleBone processor peripherals) and Microchip (dedicated CAN devices).

    I can select to let the CAN controller either not filter traffic, or filter it, on all of these.

     

    When I filter traffic, the CAN IC will take care that no communications are sent out to the microcontroller, except the ones I don't filter.

    When I don't filter traffic, the CAN IC sends all data to the controller.

     

    They don't have an option to filter data, but still be able to log all traffic. It's either/or.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • phoenixcomm
    phoenixcomm over 3 years ago in reply to Jan Cumps

    jancumps the standard MCP2515 has on-chip filtering.

    ~~Cris

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Comment
  • phoenixcomm
    phoenixcomm over 3 years ago in reply to Jan Cumps

    jancumps the standard MCP2515 has on-chip filtering.

    ~~Cris

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Children
  • Jan Cumps
    Jan Cumps over 3 years ago in reply to phoenixcomm

    phoenixcomm  wrote:

     

    jancumps the standard MCP2515 has on-chip filtering.

    ~~Cris

    It is my favourite! Maybe the best CAN logic IC that exists?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube