> Yeah, it worked perfect. > You just need usbfs, a kernel module. After that a simple test with > fxload -v -D /proc/bus/usb/002/003 -I bal.hex showed that everything > worked, and the chip itself reenumerated.The examples in this package may still be of interest.
I currently maintain three other projects on SourceForge, the Finite State Kernel Creator for graphically designing finite state machines (it automatically generates C source code representing the state machine and does a bunch of other stuff too), the GlucoTools project assists diabetics using insulin pumps with carb to insulin ratio and correction bolus calculations, and the SourceForge Banner project for generating SourceForge project banners for printing (they make great bumper stickers and t-shirt transfers). [yes, a shameless plug]
This driver downloads USB boards built with the Cypress (formerly Anchor Chips) EZ-USB AN2131 chip. While it should download any board based on the above chip, I've only tested it on the USB I2C/IO board (pictured above) by DeVaSys Embedded Systems and the USBSIMM board by J. Gordon Electronics. Here are some features of the driver:
- No hard coded limit for the number of USBSIMM boards that may be connected at the same time in this driver - all structure allocation is dynamic and should be SMP safe
- Uses the /proc file system for downloading board
- Able to specify user at time of module load that may download the board - you don't have to be root to download the board
- Able to specify vendor and product id as parameters to load non-native boards, such as the USB-PDA adapter from Keyspan. These changes were contributed by Arnim Laeuger maintainer of ezhid.
The EZUSB2131 project page is http://sourceforge.net/projects/ezusb2131
Following are some generous contributions that can be found in the Ezusb2131/Examples directory.
- Contributed by: Tom De Rybel [on1dcd * hotmail_com]
This example includes an assembler bootloader routine that programs an uploaded program into the external EEPROM, making it bootable and disabling its own routines afterwords. Several sample programs are also included in this file. The schematics program used is Eagle (www.cadsoft.de). The EAGLE Light Edition can be used for free! And yes, it does run on Linux. You can view Toms' schematic here - it is also included in the Example/MarkII directory.
NOTE: Emil Petersky (petersky * isr_uni-stuttgart_de) has reported the schematic does not open with newer versions of EAGLE Light Edition, and has provided a corrected version. Thanks! The new version can be downloaded from here and has been checked into CVS.
- Contributed by: Michael Hetherington [chinook * pacific_net_sg]
The objective of the project is to build an AN2131Q based USB to IEEE1284 converter with "true" parallel port register access emulation for peripherals with proprietary handshaking protocols. It can be used as a printer or scanner cable. It can also be used for home-brew MCU programmers and control systems. A schematic is provided with the example.
- Contributed by: Tony Cureington [tonycu * users_sourceforge_net]
This example was used at LinuxWorld (New York 2003) as part of an HP ProLiant Gigabit network teaming demonstration using the Linux Bonding driver. More information, including pictures of building waldo, is available.
- Contributed by: Alexander 'E-Razor' Krause [admin * erazor-zone_de]
Examples downloading using fxload application
The examples at this site don't use the EZUSB2131 driver to download boards, they use fxload! Checkout http://projects.erazor-zone.de/ezusb for all the details.
- The Linux USB Project
(Linux USB FAQs, Tools, USB Programming Guide, Good set of
- USB Design by Example; By John Hyde
(a good book!)
- Anchor Chips (now Cypress)
(USBView displays the topography of the devices that are plugged
into the USB bus on a Linux machine; the source may also be found here.)
- SDCC (Small Device C Compiler)
(SDCC is a Freeware, retargettable, optimizing ANSI - C compiler;
the current version targets the Intel 8051)
Where can I get a board?
- DeVaSys Embedded Systems
(board uses AN2131QC; onboard 16KB I2C EEPROM;
I've used this one, it comes highly recommended by myself and others;
Look here for the hex file to download to eeprom (in Driver.zip);
note: add "vendor_id=0xabf product_id=0x3e8" to insmod to download
eeprom hex file)
- J. Gordon Electronic Design, Inc.
(board uses EZ-USB AN2131QC; I've also used this one)
While I've not used this board, I have received comments that may be of help.
AN2131SC and AN2131QC boards in Germany
- EZ USB Development
(build your own board)
Released version 1.0 on Feb 21, 2003. Added Waldo example. This example was used at LinuxWorld (New York 2003) as part of an HP ProLiant Gigabit network teaming demonstration using the Linux Bonding driver. Changed flags from int to unsigned long per Martin Frey [Martin.Frey * ei_tum_de]
Released version 0.4 on June 5, 2002. Added ignore_renum_modula module parameter, this parameter prevents the driver from claiming devices that re-enumerate with the same vin/pid they enumerated with for the initial download. See README in the source package for details; The ignore_renum_modula changes were inspired by Claes Nygren [claes * wijnet_se]. added MODULE_LICENSE and MODULE_SUPPORTED_DEVICE macros.
Released version 0.3 on Jan 20, 2002. Removed #include linux/smp_lock.h, it caused a compile failure on 2.4.7-10 SMP kernels...
Released version 0.2 on Jul 22, 2001. Changes to allow user to specify non-native vendor and product id as module parameters.
Released version 0.1 on May 30, 2001. Initial release.