AVReAl and MPSSE

Some of FTDI USB converter chips have MPSSE — hardware engine for implementation of serial interfaces like JTAG, SPI, I2C. FT2232D and previous versions FT2232C, FT2232L support Full-Bandwidth USB and have upper TCK/SCK frequency level 6 MHz. FT2232H, FT4232H, FT232H work in USB 2.0 Hi-Speed mode and have 30 MHz limit.

MPSSE defines DBUS0..DBUS2 as TCK/SCK, TDI/MOSI and TDO/MISO. AVR ISP interface requires RESET signal. DBUS3 (TMS/CS) can be used for this purpose and AVReAl uses it by default.

»»» Read more about MPSSE and AVReAl

AVReAl update — 1.28r9

avreal v1.28r9 (Tue 2011-12-20) has been released.

  • FT232H MPSSE mode support added.
  • Delays processing in Windows version changed: lower CPU load for -k/-K switches.
  • Resynchronisation method changed for all microcontrollers.
    Resync process started with one attempt of RESET pulse method then continued with SCK pulse method.
    More about synchronisation.

ISP-programmer to AVR synchronisation

AVR ISP-programming starts with RESET activation following by transmitting of programming enable instruction. Entry sequence requirement is that SCK must be set to ’0′ during RESET activation. Otherwise SCK falling edge causes unintended programming hardware state change.

AVR programming waveforms

The falling edge distorts 4-byte programming instruction. The microcontroller does not recognise it and does not enter programming mode. There is no sense to send programming entry instruction again because byte-level command’s phase is shifted by one SCK period. The last SCK pulse of previous instruction will act as extra pulse for subsequent command.

Synchronisation can also be corrupted during programming process. Read more in publication about AVReAl “synchronisation lost” message.

Atmel datasheets describe two methods for synchronisation recovery.

»»» Read more about resynchronisation[/lаng_en]

AVReAl beta — 1.28r9b1

avreal beta-version 1.28r9b1 with FT232H support has been released.
Please, test it.

Linux32 avreal-1.28r9b1-linux32.zip
Linux64 avreal-1.28r9b1-linux64.zip
Win32 avreal-1.28r9b1-win32.zip

AVReAl 1.28r8 / FreeBSD

avreal v.1.28r8 and older ones were built for FreeBSD 6.4.
avreal1.28r8 was rebuilt for FreeBSD 8.2 then tested and uploaded to avreal download page.

All future versions will be built for FreeBSD 8.2 only.

AVReAl update — 1.28r8

avreal v1.28r8 (Sat 2011-08-13) has been released.

  • Raw binary file support is added.
    Binary files are denoted by :bin: prefix in file name.
  • -r switch behavior is changed.
    -r+ forces writing full memory content into output file (“old” behavior of -r).
    When -r is used, rows which contain only FF bytes in data field will not be written into :ihex: output file. FF-only tail will not be written into :bin: file.

How to install two versions of libftd2xx

As it was published before 64-bit libftd2xx.so libraries version 1.0.0 and above are not compatible with earlier ones. There are no problems with 32-bit libraries.
It is necessary to install old libftd2xx package for 64-bit avreal/Linux. The package can be downloaded from here.
AVReAl beginning from 1.28r6 loads the library by name libftd2xx.so.0 but not libftd2xx.so. That allows to install both library versions.
Let review installation process.

Continue reading ‘How to install two versions of libftd2xx’ »

AVReAl update — 1.28r7

avreal v1.28r7 (Sun 2011-02-27) has been released.

bug in -v+ switch processing

-v+ switch (-v switch with + modifier) is incorrectly processed by avreal versions from 1.28r2 to 1.28r6.
avreal checks for 0xFF all memory locations instead of ones unused in HEX-file.
That way avreal stops work after verification and rejects subsequent operations, for example, fuse write command.

-v switch without modifier is processed properly so it is recommended to use it.
The bug is not critical. Bugfix will be later.


The bug has been fixed in version 1.28r7.

AVReAl update — 1.28r6

avreal v1.28r6 (Sun 2011-01-09) has been released.

  • ATmega325A and ATmega329A are added.
  • Aliases for “A”-versions are added:
        ATmega165A, ATmega645A, ATmega6450A
        ATmega169A, ATmega329PA, ATmega649A, ATmega6490A
  • avreal/Linux64, FT2232* and FT4232H-based adapters:
    Library named libftd2xx.so.0 instead of previously used libftd2xx.so is loaded for FTDI chips support.
    This allows installation both old (required for avreal) and new library versions, for example libftd2xx.so.0.4.16 and libftd2xx.so.1.0.0.
    Read more about libftd2xx.so.1.0.0 problems in 64-bit Linux.
  • -k/-K switch now has two forms with different avreal stages execution order.
[flagcounter image]