Introduction: FX2LP CY7C68013A USB Dev Board (Logic Analyzer)

Picture of 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

Picture of 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

Picture of 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!

Comments

illumation_ (author)2017-12-07

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?

illumation_ (author)illumation_2017-12-07

Okay, reboot and reinstall it did the trick.

abălan1 (author)2016-08-04

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.

SimonM83 (author)2016-07-25

Do you have any ideas how to make this read analog samples? Thanks. I'm still waiting for mine in the post.

wh_hsn (author)SimonM832016-07-25

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

SimonM83 (author)2016-07-18

Thanks for this Instructable, do you have a a suggestion for a good way to protect the inputs - just resistors in series with the input or something more sophisticated?

wh_hsn (author)SimonM832016-07-18

I am planning to make a protection circuit using a series resistor (maybe adding a diode) & a parallel 3.3 ziner to ground. It won't be a problem for low freq signals like RS232 but may have an effect on high freq signals.

SimonM83 (author)wh_hsn2016-07-18

Thank you, that's really helpful!

DIY Hacks and How Tos (author)2016-07-17

Cool project.

Thanks, glad you liked it.

About This Instructable

7,115views

18favorites

License:

Bio: Just me!
More by wh_hsn:Using Google Drive to backup any folder & for multiple accounts!Introducing PlatformIO for ESP8266The OrangePi Lite
Add instructable to: