Difference between revisions of "Fx2lafw"
Uwe Hermann (talk | contribs) m (→Hardware overview: alphabetic order.) |
Uwe Hermann (talk | contribs) m (→Hardware overview: Status updates.) |
||
Line 18: | Line 18: | ||
!Resistor per probe | !Resistor per probe | ||
!I2C EEPROM | !I2C EEPROM | ||
! | !Status | ||
|- bgcolor="#eeeeee" | |- bgcolor="#eeeeee" | ||
Line 25: | Line 25: | ||
| 8/16 (PB0-PB7, PD0-PD7) | | 8/16 (PB0-PB7, PD0-PD7) | ||
| 56PVXC (SSOP) | | 56PVXC (SSOP) | ||
| | | none | ||
| | | none | ||
| | | Microchip 24LC64I | ||
| bgcolor=" | | bgcolor="lime" | 95%<sup>1</sup> | ||
|- bgcolor="#eeeeee" | |- bgcolor="#eeeeee" | ||
Line 38: | Line 38: | ||
| ? 68 Ω | | ? 68 Ω | ||
| Atmel ATML0816 TINY13 20SU | | Atmel ATML0816 TINY13 20SU | ||
| bgcolor=" | | bgcolor="lime" | 95%<sup>1</sup> | ||
|- bgcolor="#dddddd" | |- bgcolor="#dddddd" | ||
| [[CWAV BusBee]] | | [[CWAV BusBee]] | ||
| | | ? | ||
| 4 | | 4 | ||
| ? | | ? | ||
Line 48: | Line 48: | ||
| ? Ω | | ? Ω | ||
| ? | | ? | ||
| bgcolor=" | | bgcolor="red" | TODO | ||
|- bgcolor="#dddddd" | |- bgcolor="#dddddd" | ||
Line 58: | Line 58: | ||
| ? Ω | | ? Ω | ||
| ? | | ? | ||
| bgcolor=" | | bgcolor="lime" | 90%<sup>1, 2</sup> | ||
|- bgcolor="#dddddd" | |- bgcolor="#dddddd" | ||
| [[CWAV USBee DX]] | | [[CWAV USBee DX]] | ||
| | | ? | ||
| 16 digital, 2 analog | | 16 digital, 2 analog | ||
| ? | | ? | ||
Line 68: | Line 68: | ||
| ? Ω | | ? Ω | ||
| ? | | ? | ||
| bgcolor=" | | bgcolor="red" | TODO | ||
|- bgcolor="#dddddd" | |- bgcolor="#dddddd" | ||
| [[CWAV USBee EX2]] | | [[CWAV USBee EX2]] | ||
| | | ? | ||
| 8 | | 8 | ||
| ? | | ? | ||
Line 78: | Line 78: | ||
| ? Ω | | ? Ω | ||
| ? | | ? | ||
| bgcolor=" | | bgcolor="red" | TODO | ||
|- bgcolor="#dddddd" | |- bgcolor="#dddddd" | ||
Line 88: | Line 88: | ||
| 560 Ω | | 560 Ω | ||
| Microchip 24LC01B | | Microchip 24LC01B | ||
| bgcolor=" | | bgcolor="lime" | 100% | ||
|- bgcolor="#dddddd" | |- bgcolor="#dddddd" | ||
| [[CWAV USBee ZX]] | | [[CWAV USBee ZX]] | ||
| | | ? | ||
| 8 (PB0-PB7) | | 8 (PB0-PB7) | ||
| ? | | ? | ||
Line 98: | Line 98: | ||
| ? Ω | | ? Ω | ||
| ? | | ? | ||
| bgcolor=" | | bgcolor="red" | TODO | ||
|- bgcolor="#eeeeee" | |- bgcolor="#eeeeee" | ||
Line 108: | Line 108: | ||
| 100 Ω | | 100 Ω | ||
| Atmel ATMLH113 | | Atmel ATMLH113 | ||
| bgcolor=" | | bgcolor="lime" | 90%<sup>1, 2</sup> | ||
|- bgcolor="#eeeeee" | |- bgcolor="#eeeeee" | ||
Line 118: | Line 118: | ||
| 100 Ω | | 100 Ω | ||
| Atmel ATMLH911 02B 1 | | Atmel ATMLH911 02B 1 | ||
| bgcolor=" | | bgcolor="lime" | 100% | ||
|- bgcolor="#dddddd" | |- bgcolor="#dddddd" | ||
Line 128: | Line 128: | ||
| none | | none | ||
| Shenzhen First-Rank Technology T24C128A | | Shenzhen First-Rank Technology T24C128A | ||
| bgcolor=" | | bgcolor="lime" | 95%<sup>1</sup> | ||
|- bgcolor="#eeeeee" | |- bgcolor="#eeeeee" | ||
Line 138: | Line 138: | ||
| ? | | ? | ||
| ? | | ? | ||
| bgcolor=" | | bgcolor="lime" | 100% | ||
|- bgcolor="#eeeeee" | |- bgcolor="#eeeeee" | ||
Line 148: | Line 148: | ||
| ? | | ? | ||
| 2x Microchip 24LC02BI, 1x 24LC64I | | 2x Microchip 24LC02BI, 1x 24LC64I | ||
| bgcolor=" | | bgcolor="lime" | 100% | ||
|- bgcolor="#dddddd" | |- bgcolor="#dddddd" | ||
Line 158: | Line 158: | ||
| ? Ω | | ? Ω | ||
| ? | | ? | ||
| bgcolor=" | | bgcolor="lime" | 100% | ||
|} | |} | ||
All devices use a 24MHz crystal. | All devices use a 24MHz crystal. | ||
<sup>1</sup> Sampling with 8 channels works fine, 16 channel sampling is not yet supported.<br /> | |||
<sup>2</sup> Analog signal support is not yet implemented.<br /> | |||
== Download == | == Download == |
Revision as of 20:08, 6 May 2012
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 per probe | I2C EEPROM | Status |
---|---|---|---|---|---|---|---|
Braintechnology USB Interface V2.x | 04b4:8613 | 8/16 (PB0-PB7, PD0-PD7) | 56PVXC (SSOP) | none | none | Microchip 24LC64I | 95%1 |
Braintechnology USB-LPS | 16d0:0498 | 8/16 (PB0-PB7, PD0-PD7) | 56PVXC (SSOP) | none | ? 68 Ω | Atmel ATML0816 TINY13 20SU | 95%1 |
CWAV BusBee | ? | 4 | ? | ? | ? Ω | ? | TODO |
CWAV USBee AX | 08a9:0014 | 8 digital (PB0-PB7), 1 analog (PD0-PD7) | ? | ? | ? Ω | ? | 90%1, 2 |
CWAV USBee DX | ? | 16 digital, 2 analog | ? | ? | ? Ω | ? | TODO |
CWAV USBee EX2 | ? | 8 | ? | ? | ? Ω | ? | TODO |
CWAV USBee SX | 08a9:0009 | 8 (PB0-PB7) | 56PVXC (SSOP) | none | 560 Ω | Microchip 24LC01B | 100% |
CWAV USBee ZX | ? | 8 (PB0-PB7) | ? | ? | ? Ω | ? | TODO |
EE Electronics ESLA201A | 08a9:0014 | 8 digital (PB0-PB7), 1 analog (PD0-PD7) | 56LFXC (QFN) | none | 100 Ω | Atmel ATMLH113 | 90%1, 2 |
EE Electronics XLA ESLA100 | 0925:3881 | 8 (PB0-PB7) | 56LFXC (QFN) | NXP 74HC245D | 100 Ω | Atmel ATMLH911 02B 1 | 100% |
Lcsoft Mini Board | 04b4:8613 | 8/16 (PB0-PB7, PD0-PD7) | 56PVXC (SSOP) | none | none | Shenzhen First-Rank Technology T24C128A | 95%1 |
Robomotic BugLogic 3 | 0925:3881 | 8 (PB0-PB7) | ? | ? | ? | ? | 100% |
Robomotic MiniLogic | 0925:3881 | 8 (PB0-PB7) | 56PVXC (SSOP) | 74HC244A | ? | 2x Microchip 24LC02BI, 1x 24LC64I | 100% |
Saleae Logic | 0925:3881 | 8 (PB0-PB7) | 56PVXC (SSOP) | ST DVIULC6-4SC6 | ? Ω | ? | 100% |
All devices use a 24MHz crystal.
1 Sampling with 8 channels works fine, 16 channel sampling is not yet supported.
2 Analog signal support is not yet implemented.
Download
$ git clone git://sigrok.git.sourceforge.net/gitroot/sigrok/fx2lafw
Usage
Building sigrok
- Build and install latest git head sigrok for your platform, see e.g. Linux.
- When building libsigrok, instead of ./configure do
$ ./configure --enable-fx2lafw --disable-saleae-logic
- Follow all other steps as normal.
Install udev rules file
These steps prevent the need to run sigrok as superuser.
- Copy the udev rules from sigrok/libsigrok/contrib/z60_libsigrok.rules to /etc/udev/rules.d/.
- Restart udev: sudo /etc/init.d/udev restart.
Building fx2lafw
$ cd fx2lafw $ git clone git://github.com/mulicheng/fx2lib.git $ make $ sudo cp build/*.fw /usr/local/share/libsigrok/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
8-channel- 16-channel
- Analog sampling
- 1-channel
- 2-channel
- Voltage meter
Triggering- Trigger pin
- Clock input
- Clock output
- Frequency/pulse counter
Resources
- Browse Source Code
- sdcc (C compiler for 8051 microcontrollers, usable for FX2)
- fx2lib: SF project page, blog article, github repo, mailing list
- Cypress FX2 docs:
- CY7C68013A, CY7C68014A, CY7C68015A, CY7C68016A datasheet (PDF)
- EZ-USB Technical Reference Manual (TRM) (PDF)
- EZ-USB FX2LP appnotes
- EZ-USB FX2LP errata
- GPIF Designer (Windows software, requires login)
- CY3681 EZ-USB FX2 Development Kit (GPIF designer downloadable without login)