Introduction

This is a build of AVRDUDE version 5.11 for Win32 systems. It has been tested with Windows 7 64 bit and 32 bit. It has also has patch #7729 applied to it. The purpose of this build is to support FTDI *232H/C/D devices that sport the very fast MPSSE SPI interface for programming AVR's that have the SPI based ISP port but it should work with all the usual other hardware AVRDUDE purports works with too.

Software

To run this version of AVRDUDE in Windows with an FTDI based USB device download the following packages:

  • avrdude-5.11svn1102-win32.zip (MD5SUM 3f17e532efc9fae0a072848cb0085e37) This version is a vanilla build of 5.11-SVN1102.  Patch #7729 has to be reapplied and tested which will be done shortly.
  • avrdude-5.11svn1068-Patch7729-win32.zip (MD5SUM 15d1705b248f1adf4342e3a4e4988363)  This version fixes some bugs that resulted in certain .hex files not verifying properly when using FTDI parts.  Also, the Reset pin has changed from AD4 to AD3.  See the updated table and figure below.

AVRDUDE does not use FTDI's proprietory drivers rather it uses the open source libftdi.  Due to the dependancy on libusb you MUST install one of these USB drivers to run AVRDUDE:

  • The latest Zadig. Use the "Basic usage" installation instructions here.  You must select the libusb (v1.2.5.0) driver when installing. Do not use the WinUSB driver. This driver will override any FTDI based driver that might have been installed when you plugged the device in.  Uninstalling Zadig will let you use FTDI's drivers.

or

  • The LibUSB-Win32 Devel Filter (1.2.6.0). This  version of the libusb driver will quietly sit in conjunction with the FTDI driver meaning you can still use AVRDUDE and any applications that use the DLL from FTDI on the same device.

Hardware

I only have the UM232H module which has the FTDI 232H chip on it. I obtained the UM232H from Glyn Australia. I also only have an Arduino Mega with the Atmega1280 chip on it so testing has been a bit limited in scope. As they say - "It works on my machine!" Note that when installing the USB driver for the UM232H the VID/PID for this part is 0x0403/0x6014.  Glyn are also now selling the more convinient C232HM that has the FTDI-232H chip built into the cable - it has been tested and does work too.

The FTDI232H chip runs at 3.3V but it's I/O pins are conveniently 5V tolerant.

To connect the UM232H or the C232HM up to the ISP header use do the following:

Signal ISP/ICSP UM232H C232HM
MISO 1 J2-9 (AD2) Green
VTG (not used) 2 (not used) -  
SCK 3 J2-7 (AD0) Orange
MOSI 4 J2-8 (AD1) Yellow
RST 5 J2-10 (AD3) Brown
GND 6 J2-6 (GND) Black

For the UM232H to be powered off the USB bus J2-2 must be connected to J2-3 and J1-2 must be connected to J1-3. (See page 14 of the DS_UM232H.pdf data sheet.)

Here is a picture of my UM232H connected to my Atmega1280 board. I mounted it on some prototype board and use a 2x3 pin header matching the ICSP header on the Mega board. Ignore the spurious resistor.

Running the Sucker

Use the following command as an example to program a HEX file (this hex file is the Arduino boot loader):

$ ./avrdude -c um232h -p m1280 -v -b 3750000 -U flash:w:ATmegaBOOT_168_atmega1280.hex

The -b argument is important as it sets the SPI bit clock in hertz. The fastest I can reliably program the Atmega1280 at 16MHz is 3750000Hz. The patch that has been applied uses the 30MHz MPSSE clock in the *232H family of FTDI parts. The 232C/D parts only have the older 6MHz clock.

All going well a whole lot of action should fly up the screen looking like this.  Both "um232h" or "c232hm" can be used as devices arguments but they are interchangeable as they share the same USB VID/PID and pin connections to the 232H chip.

The for other options see the manual page for AVRDUDE 5.11.

Odds and Ends

As I said, I have only tried this binary with a UM232H and Atmega1280. It'll be interesting to see if the UM232H and it's ilk work with the new TPI bit banging serial mode too but that's out of the scope of this web page until I get myself some AVR parts that support this programming mode.

This binary was built using MinGW32 and the libftdi 0.19git libraries available from here. This has the release version of libftdi 0.19 with the newer patches supporting the FT232H chip in it. I expect the release version of libftdi 0.20 will have all this built in.

Bugs and Reporting

Please report any bugs to the avrdude-dev mailing list. That's the best place to get fixes looked at an applied quickly.

There are no warranties or guarantees provided with this binary. You use at your own risk.