Introduction: FX2LP CY7C68013A USB Dev Board (Logic Analyzer)

About: Just me!

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.