fx2lafw

From sigrok
Revision as of 17:51, 3 December 2015 by Adicarlo (talk | contribs) (fill in for saleae logic 8)
Jump to navigation Jump to search

fx2lafw is an open-source firmware for Cypress FX2 chips which makes them usable as simple logic analyzer hardware.

It is licensed under the terms of the GNU GPL (version 2, or later) and written in C, using sdcc as compiler, and fx2lib as helper library.

Hardware overview

The fx2lafw firmware is meant to work on any FX2-based hardware, including logic analyzers, FX2 eval boards, or other hardware which has this chip on-board.

Here's a quick overview of some of the relevant hardware information we have about the various devices.

The devices marked as Clone are those that clone the USB VID/PID of the original product, and also have no own PC software/firmware, but instead illegally ship the software of the original product/manufacturer.

Device USB VID:PID Product type Probes (pins) FX2 package Buffer / ESD-protection Resistors I2C EEPROM Status
6-Lab LOGIC-U5 ? Clone (Logic) ? ? ? ? ? 100%
6-Lab LOGIC-U PLUS5 ? Clone (AX-Pro) ? ? ? ? ? 95%1
6-Lab LOGIC-U PRO5 ? Clone (AX-Pro) ? ? ? ? ? 95%1
6-Lab LOGIC-U ISL5 ? Clone (Logic) ? ? ? ? ? 100%
ARMFLY AX-Pro 08a9:0014 Clone (AX-Pro) 8 (+1 analog) 56LTXC (QFN) ? 100 Ω Atmel ATML920 24C02N SU27 D 95%1
ARMFLY Mini-Logic2 08a9:0014 Clone (AX-Pro w/o scope) 8 56LTXC (QFN) ? 100 Ω Atmel ATML920 24C02N SU27 D 100%
Braintechnology USB Interface V2.x 04b4:8613 Eval board 8/16 56PVXC (SSOP) none none Microchip 24LC64I 100%
Braintechnology USB-LPS 16d0:0498 Original product 8/16 56PVXC (SSOP) none ? 68 Ω Atmel ATML0816 TINY13 20SU 100%
CWAV BusBee ? Original product 4 ? ? ? ? TODO
CWAV USBee AX-Standard 08a9:0012 Original product ? ? ? ? ? TODO
CWAV USBee AX-Plus 08a9:0013 Original product ? ? ? ? ? TODO
CWAV USBee AX-Pro 08a9:0014 Original product 8 (+1 analog) ? ? ? ? 95%1
CWAV USBee DX 08a9:0015 Original product 16 (+2 analog) ? ? ? ? TODO
CWAV USBee EX2 ? Original product 8 ? ? ? ? TODO
CWAV USBee SX 08a9:0009 Original product 8 56PVXC (SSOP) none 560 Ω Microchip 24LC01B 100%
CWAV USBee ZX 08a9:0005 Original product 8 56PVXC (SSOP) none ? ? TODO
EE Electronics ESLA100 0925:3881 Clone (Logic) 8 56LFXC (QFN) NXP 74HC245D 100 Ω Atmel ATMLH911 02B 1 100%
EE Electronics ESLA201A 08a9:0014 Clone (AX) 8 (+1 analog) 56LFXC (QFN) none 100 Ω Atmel ATMLH113 95%1
ITead Studio MiniLogic4 ? Clone (Logic, AX w/o scope) ? ? ? ? ? 100%
ITead Studio ITDB01 ? Eval board ? ? ? ? ? 100%
Lcsoft Mini Board 04b4:8613 / 0925:3881 Eval board / Clone (Logic) 8/16 56PVXC (SSOP) none none Shenzhen First-Rank Technology T24C128A 100%
MCU123 Saleae Logic clone 0925:3881 Clone (Logic) 8 56PVC (SSOP) NXP 74HC245 100 Ω Atmel AT24C02 100%
MCU123 USBee AX Pro clone2 08a9:0014 Clone (AX-Pro w/o scope) 8 56PVXC (SSOP) NXP 74HC245 100 Ω Atmel AT24C02 100%
MDSO-LA ? Clone (SX, AX-Pro) ? ? ? ? ? 100%
Mollex Logic Analyzer3 ? Clone (Logic, AX w/o scope) ? ? ? ? ? 100%
Noname Saleae Logic clone I ? Clone (Logic) ? ? ? ? ? 100%
Pandatron PLA8 (S, E) ? Clone (Logic) 8 56PVXC (SSOP) SN74LVC245APWR 100 Ω ? 100%
picavr Digital USB Analyzer v1 ? Clone (Logic, AX w/o scope) ? ? ? ? ? 100%
picavr A/D USB Analyzer v2 ? Clone (Logic, AX) ? ? ? ? ? 95%1
picavr A/D USB Analyzer v3 ? Clone (Logic, AX) ? ? ? ? ? 95%1
picavr A/D USB Analyzer v4 ? Clone (Logic, AX) ? ? ? ? ? 95%1
Robomotic BugLogic 2 ? Clone (Logic, SX/ZX) ? ? ? ? ? 100%
Robomotic BugLogic 3 0925:3881 Clone (Logic) 8 ? ? ? ? 100%
Robomotic MiniLogic 0925:3881 Clone (Logic, AX w/o scope) 8 56PVXC (SSOP) 74HC244A ? 2x Microchip 24LC02BI, 1x 24LC64I 100%
Robomotic XZL0247 08a9:0014 Clone (AX-Pro) 8 (+2 analog) 56LTXC (QFN) ? 100 Ω Atmel 24C02N 95%1
Saleae Logic 0925:3881 Original product 8 56PVXC (SSOP) ST DVIULC6-4SC6 ? ? 100%
Saleae Logic8 21a9:1004 Original product 8 (+8 analog) 56LTXC ? ? ? TODO


Sysclk Box ? Clone (SX, AX-Pro w/o scope) ? ? ? ? ? 100%
XZL_Studio AX 08a9:0014 Clone (AX-Pro) 8 (+2 analog) 56LTXC (QFN) ? 100 Ω Atmel 24C02N 95%1
XZL Studio DX6 2x 08a9:0015 Clone (DX) 8/16 56PVXC (SSOP) ? ? Atmel ATML H136 24C02C M Y TODO

All devices use a 24MHz crystal. For 8 probes the FX2 pins PB0-PB7 are used, for 16 probes PB0-PB7 and PD0-PD7. For analog support PD0-PD7 (plus additional hardware) is usually used.

1 Analog signal support is not yet implemented.
2 Even though this device has the same USB VID/PID as the CWAV USBee AX-Pro, it only has 8 channels and no analog support.
3 Clone of the USBee AX and Saleae Logic. "Mollex" is the name of the guy who seems to sell it on some forum.
4 Clone of the USBee AX (SX?) and Saleae Logic, see also here and here. Dissection by a user here. Seems to be the same hardware as the Robomotic MiniLogic.
5 It seems 6-Labs has/had permission from Saleae to distribute the hardware in Ukraine (only)? Various adapters are available, for example RS422/RS232/CAN, galvanic isolation, "BNC divider".
6 There is apparently a post from the author of XZL-Studio DX in some forum.
7 There's an RS232/RS485/RS422/CAN converter board for this.

Download

Released versions of the source code can be downloaded here:

 http://sigrok.org/download/source/sigrok-firmware-fx2lafw/

There are also pre-built firmware files that can be used without having to build them from source:

 http://sigrok.org/download/binary/sigrok-firmware-fx2lafw/

Or you can get the latest development snapshot of the source code from git:

$ git clone git://sigrok.org/sigrok-firmware-fx2lafw

You can also browse the source code via gitweb.

Usage

Build sigrok

  • Build and install a libsigrok frontend (CLI or GUI) with libsigrok >= 0.1.1 (or latest git HEAD) for your platform as usual, see Building.

Install the udev rules file

These steps prevent the need to run libsigrok frontends as superuser.

  • Copy the udev rules file from libsigrok/contrib/z60_libsigrok.rules to /etc/udev/rules.d/ (or where-ever your distribution stores udev rules files).
  • Restart udev: sudo /etc/init.d/udev restart.

Build fx2lafw

$ cd sigrok-firmware-fx2lafw
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install

This will install the firmware files into /usr/local/share/sigrok-firmware/, per default.

Pre-built firmware files

There are also pre-built firmware files that can be used without having to build them from source (see above).

Cypress FX2 vs. FX2LP

Various devices supported by fx2lafw can use either the older Cypress CY7C68013 (FX2) or the more recent Cypress CY7C68013A (FX2LP).

There are various differences between the two ICs, see AN4078 - Migrating From EZ-USB FX2 to EZ-USB FX2LP (PDF) for the details.

There are known cases of e.g. the CWAV USBee SX having shipped with an FX2 at some point, and more recent units shipping with an FX2LP. Also, it's not too uncommon that some FX2 "eval board" or clone of an existing logic analyser (e.g. CWAV USBee SX or Saleae Logic ones) has "CY7C68013A (FX2LP)" chip markings, but in reality it really is an older "CY7C68013 (FX2)".

The fx2lafw firmware supports both devices (FX2 and FX2LP).

Resources