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

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

5,799views

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: