Introduction: FX2LP CY7C68013A USB Dev Board (Logic Analyzer)
Cypress’s EZ-USB® FX2LP™ (CY7C68013A/14/15/16A) is a low power, highly integrated USB 2.0 microcontroller.
This chip is a General Programmable Interface (GPIF™) that is supposed to ease the development of USB devices such as keyboards, mouses (mice!), flash drives, etc.
The board that I ordered is a development board from AliExpress for $4.60 and I was really impressed with its quality.
There are 2 variants, one with one jumper & another with 2 jumpers. Both comes with a on/off switch and a RESET push button.
The board also has an EEPROM (ATMEL 24C128 on my board) which is used to hold the VID/PID/DID of the device - this is for the host to identify the device to determine the correct driver.
My board was of the 2 jumper model & I think both are the same.
J1 is to connect/disconnect 2 LEDs from Vcc - these LEDs are connected to D0 & D1
J2 controls the high address bit of the EEPROM making it appear at I2C address 0xA0 or 0xA2 depending on the jumper.
The FX2LP is designed with a unique feature that allows the firmware to be loaded to the chip RAM either from the host or from the EEPROM.
Here we will be discussing a very interesting firmware that converts this $4.60 board into a logic analyzer!
Step 1: Sigrok Analyzer Suite
Sigrok is a portable, cross-platform, Free/Libre/Open-Source signal analysis software suite.
It supports a variety of devices & boards (logic analyzers, oscilloscopes, digital multi-meters, ... etc.)
Sigrok GUI frontend is called PulseView and this is application that we'll be using.
To have the board working with PulseView we need the correct Windows driver - I downloaded it from here.
The driver will be recognized as: Cypress FX2LP No EEPROM Device.
This driver is probably not going to work with PulseView & we have to install a generic Windows USB driver using Zadig, which is an application that is installed with PulseView.
After installing the Cypress driver, run Zadig & from the Options menu make sure that "List all drivers" is checked.
Select the Cypress driver & press the button.
It may take a long time to install but eventually it will finish.
Now PulseView should be able to detect & use the board.
Step 2: Testing the Board
I used an Arduino as a simple 5-bit binary counter & monitor the output pins 8 to 12.
Connect the GND of the Arduino to GND of the FX2LP.
Connect pin 8 of the Arduino to PB0 of the FX2LP, pin 9 to PB1, pin 10 to PB2, pin 11 to PB3 & pin 12 to PB4
The code i very simple:
void setup() { Serial.begin(9600); DDRB = B11111; }
int i=0;
void loop() { Serial.println(i,HEX); PORTB = i ; i++; i&=0x1f; }
Setting the number of samples to 2M sample/second & the sampling rate to 1MHz will give us 2 seconds of sampled data.
Beautiful!
25 Comments
5 months ago
This is amazing. I went on AliExpress looking for test clips, which led me to logic analyser (which I've wanted for a long time but, cost), which led me to this development board, but with no info on how to actually use it as a logic analyser. So my web search on that brought me here, to you!
So now I'm ordering one and all excited about it!
Reply 4 months ago
Replying to myself... Update for anyone reading. The module works perfectly. Pulseview works well on Linux, no need to mess about with USB drivers it's correct out of the box. Just used it to find out what's going wrong with my next project :) Very very happy!
3 years ago
Cypress released a knowledge base article that explains how to use this FX2LP low cost kit with Sigrok PulseView logic analyzer application.
Cypress EZ-USB FX2LP-based Logic Analyzer using Open Source sigrok PulseView - KBA229176
https://community.cypress.com/docs/DOC-18867
3 years ago
So far so good. The OSX version of PulseView seems to be working well on my MacBook. It recognized my Dev Board immediately and the demo sketch for the arduino is chooching away making sweet traces as it counts. Now it's time to dive in and figure out what this thing can really do. Thanks HackerBoxes and thanks wh_hsn! Great tutorial!
Tip 3 years ago
If anyone has issues like I did the drivers were not working as described above. I kept getting an error from pulseview when connecting to the board, ""Failed to open device. generic unspecified error". First try using a different or shorter USB.
This was performed on Windows 10.
1. I would start fresh if you are having issues and completely uninstall the drivers.
2. Cypress put out this document giving a step by step. https://community.cypress.com/docs/DOC-18867
3. The Cypress USB Control Center they are talking about is bundled in CySuiteUSB_3_4_7_B204.exe found https://www.cypress.com/documentation/software-and...
4. Use the IIC File bundled in step 2.
5. If you are still having issues try moving the Board to different banks of USB on your computer as this may help with latency.
I got it working all about 5 minutes before New Years so I make a 10 second countdown just in time.
3 years ago
Thanks so much for this! Great instructable!
Question 4 years ago
Hi,
My question may be irrelevant to your post but I have a clone logic analyzer with Cypress CY7C68013A-56PVXC. Two Digital Inputs of the logic analyzer does not work. I opened the case and the inputs are connected directly to the chip. Any clue what could be wrong? How can I verify if the chip itself is damaged or that's something related to firmware?
Thank you very much
4 years ago
I performed the operations in the Instructable on Windows 7. All looks good and PulseView finds the device - Cypress FX2, but gives an error message "Failed to open device generic/unspecified error"
I have tried rebooting the laptop. and tried another board from the same Chinese company, but same problem. Has anyone got solutions?
Reply 4 years ago
1 day update.
that solution works in this very moments, but after a day, nothing!
PulseView find the device, but wasn't able to open and control... so... again, look at drivers! :)
as i already said, for whatever reason, even if you download a 64bit build, you will get a 32bit build of Sigrok/PulseView, so, if you install WinUSB drivers, the device will be seen, but unusable.
so, open Zadig again, search for "libusb-win32" in the right tab, and install! :)
i tried the max possible rate... 12 microseconds of data! :))))))))))))))))))))
Reply 4 years ago
Hi mistrije
Sorry you are still having so many problems.
I have been using PulseView with the FX2LP Chinese clone board for many months now without problems. According to Zadig, the driver is libusbk(v3.0.7.0), and the USB ID is 04B4 8613. I scan for the board with the fx2lafw driver which finds the Cypress FX2 with 16 channels. PulseView is 0.5.0-git-844c461 and I am running under Win7 on a Samsung 64bit laptop with Intel i3 CPU.
I have forgotten how I got it all to work, but it seems very stable nowadays.
Tony
Reply 4 years ago
i got today my FX2 board from aliexpress.
i used the same (i think, we're in 2019, the 'ible was written in 2016) driver from Cypress website, downloaded the last version available of Sigrok/Pulseview for windows 7_64 (but this was a 32bit build, so... hmmmm!), and used Zadig, as is advised here.
but BAM, after Zadig was "succesfully updated" the driver, Pulseview was given that error message, even before he was able to see and use the board.
after a reboot (we're under Windows, remember? :P), and uninstalling driver installed by Zadig with Zadig (yes, he can do this finely) and reinstalling Cypress driver (with Zadig, too! not manually), all was fine, again! :)
so... either driver was updated, or Sigrok/PulseView code was updated, and now Sigrok is working fine with Cypress driver... :)
the relevant details of my installed version of Sigrok/|PulseView:
Versions, libraries and features:
PulseView 0.4.1
Qt 5.7.1
glibmm 2.42.0
Boost 1_60
libsigrok 0.5.1/5:0:1 (rt: 0.5.1/5:0:1)
- glib 2.44.1 (rt: 2.44.1/4401:1)
- libzip 1.5.1
- libserialport 0.1.1/1:0:1 (rt: 0.1.1/1:0:1)
- libusb-1.0 1.0.20.11003-rc3 API 0x01000104
- libftdi 1.2
- Host x86_64-w64-mingw32.static.posix, little-endian
- SCPI backends TCP, serial, USBTMC
libsigrokdecode 0.5.2/6:0:2 (rt: 0.5.2/6:0:2)
- glib 2.44.1 (rt: 2.44.1/4401:1)
- Python 3.4.4 / 0x30404f0 (API 1013, ABI 3)
- Host x86_64-w64-mingw32.static.posix, little-endian
Reply 4 years ago
Do you have resolved your problem?
Reply 4 years ago
Hi Andbro
It's a long time ago now, and I have been using Pulseview with the Cypress clone regularly, so I can't quite remember what I did. I believe it was about trying different drivers with Zadig, till it started working. I still find that my old Samsung Windows 7 laptop sometimes doesn't recognise the board, but it usually works after reconnecting the board and running Pulseview again.
Question 4 years ago on Step 2
Hi
How connect the communication between the Arduino and the logic analyzer. I see you use rx, TX on arduino, but I don't know where I must connect to the logic analyzer.
Thanks
Answer 4 years ago
The Arduino is just used as a pattern generator but not connected to logic analyzer as communication device.
5 years ago
Nice tut. Installed the driver with Zadig (on Win7 Ultimate) however fails at the end with message "The driver installation failed". Cannot retry it, it comes immediately with the same message. What to do?
Reply 5 years ago
Okay, reboot and reinstall it did the trick.
6 years ago
Hello, I got the same board form aliexpress. Can you please give some indication on how to install PulseView windows 10?
I am getting a runtime error even after installing the Microsoft Visual C++ 2008 (not the same as the one on the page, just a generic one).
Also, did you managed to use Saleae Logic on this board? Thank you.
6 years ago
Do you have any ideas how to make this read analog samples? Thanks. I'm still waiting for mine in the post.
Reply 6 years ago
There is no way to have this read analog signals, these are digital inputs.
You need an ADC to read analog signals - a nice device will be this:
http://www.aliexpress.com/item/Mini-DSO203-digital...
or even this kit:
http://www.aliexpress.com/item/Hot-DIY-Digital-Osc...