Fx2lafw

From sigrok
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:

Device USB VID:PID Probes (pins) FX2 package Buffer/ESD-protection Resistor/probe I2C EEPROM Status
6-Lab LOGIC-U5 ? ? ? ? ? ? TODO
6-Lab LOGIC-U PLUS5 ? ? ? ? ? ? TODO
6-Lab LOGIC-U PRO5 ? ? ? ? ? ? TODO
6-Lab LOGIC-U ISL5 ? ? ? ? ? ? TODO
ARMFLY AX-Pro 08a9:0014 8 (+1 analog) 56LTXC (QFN) ? 100 Ω Atmel ATML920 24C02N SU27 D 95%1
ARMFLY Mini-Logic2 08a9:0014 8 56LTXC (QFN) ? 100 Ω Atmel ATML920 24C02N SU27 D 100%
Braintechnology USB Interface V2.x 04b4:8613 8/16 56PVXC (SSOP) none none Microchip 24LC64I 100%
Braintechnology USB-LPS 16d0:0498 8/16 56PVXC (SSOP) none ? 68 Ω Atmel ATML0816 TINY13 20SU 100%
CWAV BusBee ? 4 ? ? ? ? TODO
CWAV USBee AX-Standard 08a9:0012 ? ? ? ? ? TODO
CWAV USBee AX-Plus 08a9:0013 ? ? ? ? ? TODO
CWAV USBee AX-Pro 08a9:0014 8 (+1 analog) ? ? ? ? 95%1
CWAV USBee DX 08a9:0015 16 (+2 analog) ? ? ? ? TODO
CWAV USBee EX2 ? 8 ? ? ? ? TODO
CWAV USBee SX 08a9:0009 8 56PVXC (SSOP) none 560 Ω Microchip 24LC01B 100%
CWAV USBee ZX ? 8 ? ? ? ? TODO
ITead Studio MiniLogic4 ? ? ? ? ? ? TODO
ITead Studio ITDB01 ? ? ? ? ? ? TODO
EE Electronics ESLA100 0925:3881 8 56LFXC (QFN) NXP 74HC245D 100 Ω Atmel ATMLH911 02B 1 100%
EE Electronics ESLA201A 08a9:0014 8 (+1 analog) 56LFXC (QFN) none 100 Ω Atmel ATMLH113 95%1
Lcsoft Mini Board 04b4:8613 8/16 56PVXC (SSOP) none none Shenzhen First-Rank Technology T24C128A 95%1
Mollex Logic Analyzer3 ? ? ? ? ? ? TODO
Robomotic BugLogic 2 ? ? ? ? ? ? TODO
Robomotic BugLogic 3 0925:3881 8 ? ? ? ? 100%
Robomotic MiniLogic 0925:3881 8 56PVXC (SSOP) 74HC244A ? 2x Microchip 24LC02BI, 1x 24LC64I 100%
Robomotic XZL024 ? ? ? ? ? ? TODO
Saleae Logic 0925:3881 8 56PVXC (SSOP) ST DVIULC6-4SC6 ? ? 100%

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 devices 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 Various adapters are available, for example RS422/RS232/CAN, galvanic isolation, "BNC divider".

Download

$ git clone git://sigrok.git.sourceforge.net/gitroot/sigrok/fx2lafw

Usage

Build sigrok

  • Build and install a sigrok frontend (CLI or GUI) with libsigrok >= 0.1.1 (or latest git HEAD) for your platform as usual, see e.g. Linux, Mac OS X, FreeBSD, or Windows.

Install the udev rules file

These steps prevent the need to run sigrok as superuser.

  • Copy the udev rules file from sigrok/libsigrok/contrib/z60_libsigrok.rules to /etc/udev/rules.d/.
  • Restart udev: sudo /etc/init.d/udev restart.

Build fx2lafw

$ cd fx2lafw
$ git clone git://github.com/mulicheng/fx2lib.git
$ make
$ sudo cp hw/*/build/*.fw /usr/local/share/sigrok-firmware/

Where /usr/local is your installation prefix.

Test

$ sigrok-cli -D

If everything has worked, sigrok can now see your fx2lafw device, ready for use.

TODO

  • Digital sampling with 16 channels
  • Analog sampling
    • 1-channel
    • 2-channel
    • Voltage meter
  • Trigger pin
  • Clock input
  • Clock output
  • Frequency/pulse counter
  • Signal generator

Resources