AVReAl – ISP programmer for AVR

 

AVReAl designed for programming of Atmel AVR microcontrollers in ISP (in-circuit serial programming) mode.
AVReAl requires one of

AVReAl is console application which makes possible to integrate it into almost any development environment (IDE).
Now supported Windows, Linux and FreeBSD (no FT2232 support for FreeBSD).
DOS-version not supported since 1.27rev0. Last DOS version 1.25r6 is available for downloading.
Working of avreal/win32 with FT2232C/L/D/H has been checked for Windows2000, WindowsXP/32, WindowsXP/64, Windows7/32, Windows7/64.
Working of avreal/win32 with LPT via DLPortIO drivers has been checked for Windows2000, WindowsXP/32, WindowsXP/64, Windows7/32, Windows7/64. No drivers needed for Windows98.

The program is free for commercial or non-commercial use but it’s sources unavailable. Shortly, it is freeware but not free software.

You can download avreal and DLPortIO driver for 32- and 64-bit Windows here. Visit description page for detailed information and adapters page for schematics of programming adapters.
Posts about updates and bug fixes are published under ‘History’ category. Separate posts about bug is published in that case, when I have no time for urgent correction or I treat the bug as “feature” up to next avreal release.
List of previous changes and some of previous versions can be found on “old” History page.

Supported microcontroller list can be got by the command

avreal -h

avreal (and any other programmer) can’t differ microcontrollers listed by character ‘|’ (read more).

 AT86RF401
 AT90S1200    AT90S2313    AT90S4414    AT90S8515    AT90S4434
 AT90S8535    AT90S2333    AT90S4433    AT90S2323    AT90S2343
 ATtiny12     ATtiny22L    ATtiny22     ATtiny13|ATtiny13A
 ATtiny2313|ATtiny2313A    ATtiny4313
 ATtiny15     ATtiny25     ATtiny45     ATtiny85     ATtiny43u
 ATtiny87     ATtiny167
 ATtiny26     ATtiny261|ATtiny261A      ATtiny461|ATtiny461A
 ATtiny861|ATtiny861A
 ATtiny24     ATtiny44     ATtiny84     ATtiny48     ATtiny88
 ATmega603    ATmega103    ATmega161    ATmega163    ATmega323
 ATmega8515   ATmega8535   ATmega162
 ATmega8|ATmega8A     ATmega48|ATmega48A     ATmega48P|ATmega48PA
 ATmega88|ATmega88A   ATmega88P|ATmega88PA
 ATmega168|ATmega168A ATmega168P|ATmega168PA
 ATmega328     ATmega328P
 ATmega16|ATmega16A   ATmega32|ATmega32A     ATmega64|ATmega64A
 ATmega128|ATmega128A
 AT90CAN32    AT90CAN64    AT90CAN128
 AT90usb82    AT90usb162   ATmega8U2    ATmega16U2   ATmega32U2
 ATmega16U4   ATmega32U4
 ATmega32U6   AT90usb646|AT90usb647     AT90usb1286|AT90usb1287
 ATmega164A   ATmega164P|ATmega164PA
 ATmega324A   ATmega324P   ATmega324PA
 ATmega644|ATmega644A      ATmega644P|ATmega644PA
 ATmega1284   ATmega1284P
 ATmega165|ATmega165P|ATmega165PA       ATmega325    ATmega325P
 ATmega3250   ATmega3250P  ATmega645    ATmega6450
 ATmega169|ATmega169P      ATmega329    ATmega329P
 ATmega3290   ATmega3290P
 ATmega649    ATmega6490
 ATmega640    ATmega1280   ATmega1281   ATmega2560   ATmega2561
 AT90pwm2|AT90pwm3  AT90pwm1|AT90pwm2B|AT90pwm3B
 AT90pwm216|AT90pwm316 AT90pwm81
 ATmega16M1   ATmega32M1   ATmega64M1   ATmega32C1   ATmega64C1
 ATmega8HVA   ATmega16HVA  ATmega16HVB  ATmega32HVB  ATmega8HVD
 ATmega128RFA1

234 Responses to “AVReAl – ISP programmer for AVR”

  1. stenogriz says:

    Здравствуйте!
    Планируется ли добавление поддержки программаторов AVR основанных на soft-USB (например USBtinyISP, USBasp) и COM (например AVR910)?
    С уважением,
    Сергей.

    • ReAl says:

      Где-то вблизи планов болтается поддержка протокола STK500v2. Для плат с AVR910 в имени вроде бы бывают альтернативные прошивки с поддержкой этого протокола.

      Сожалею, но болтается с довольно низким приоритетом.

  2. mika222 says:

    подскажите пж, как можно прошивать банальную епром (24с04 например) через адаптер на FT232. никогда с прошивкой МК не сталкивался, а сам адаптер есть в наличии. хотелось бы задействовать.

    • ReAl says:

      Увы, AVReAl не работает c I2C EEPROM.
      У меня не возникало потребности программировать такую память «автономно», всю работу делает микроконтроллер в системе.

  3. Nipochomus says:

    Здравствуйте!
    Подскажите, пожалуйста, если возможность установить линию RESET (adbus3 микросхемы FT2232) в статическое инверсное положение. А то барахлит программатор, а я не могу найти где ошибка. :(

    • ReAl says:

      Можно, но только на время программирования. Т.е. по окончании программирование вывод перейдёт в состояние по умолчанию, либо, при использовании ключа -az, в состояние входа с высокоомной подтяжкой к питанию.

      Для установки выводов в заданное состояние на время программирования служит конфигурационная запись SET. Для установки вывода ADBUS3 в “0″ следует добавить запись SET=~ADBUS3. Но при этом нужно разместить сигнал RESET на каком-то другом выводе, чтобы он не был неопределён.

      • Nipochomus says:

        Извините, может я не так выразился микроконтроллер сбрасывается логической 1 (между программатором и контроллером стоит инвертор). Посмотрите, пожалуйста несколько отчетов.

        D:\avr\avreal>d:\avr\avreal\avreal.exe +MEGA128 “-pd=Dual RS232 A” -% -aft2232:
        SET=~adbus3: RESET=adbus4 -r -dinam.hex

        avreal/WIN32 – AVR controllers programmer by Redchuk Alexandr
        v1.28r8 (Aug 13 2011 12:11:23) http://real.kiev.ua/avreal
        bug-reports, suggestions and so on mail to avreal@real.kiev.ua
        Command:
        +MEGA128 “-pd=Dual RS232 A” -% -aft2232:SET=~adbus3: RESET=adbus4 -r -dinam.hex
        % ‘ftd2xx.dll’ successfully loaded, version 3.2.4
        % FTDI driver version 2.8.14
        % FT2232 MPSSE SPI adapter created, SCK frequency 188kHz
        % Reset
        % PgmOn reply FF FF FF FF
        % Try 1 to resync by reset pulse % PgmOn reply FF FF FF FF
        % Try 2 to resync by reset pulse % PgmOn reply FF FF FF FF
        % Try 3 to resync by reset pulse % PgmOn reply FF FF FF FF
        % Try 4 to resync by reset pulse % PgmOn reply FF FF FF FF
        Can’t resync
        Reset pin released

        Команда, которая по аналогии должна устанавливать 1 на выходе adbus3 (reset МК), приводит к такой же ошибке.
        D:\avr\avreal>d:\avr\avreal\avreal.exe +MEGA128 “-pd=Dual RS232 A” -% -aft2232:
        SET=adbus3: RESET=adbus4 -r -dinam.hex

        Однако, если переставить тот же микроконтроллер в плату без инвертора на RESET, он отлично читается как с конфигураций -aft2232:SET=adbus3, так и -aft2232:SET=~adbus3

        Command:
          +MEGA128 "-pd=Dual RS232 A" -% -aft2232:SET=adbus3: RESET=adbus4 -r -dinam.hex

                % 'ftd2xx.dll' successfully loaded, version 3.2.4
                % FTDI driver version 2.8.14
                % FT2232 MPSSE SPI adapter created, SCK frequency 188kHz
                % Reset
                % PgmOn reply  FF FF 53 00
                % Synchronised after 1 try
                % GetID reply  00 30 00 1E
                % GetID reply  00 30 00 97
                % GetID reply  00 30 00 02
                % Read ID: 0x1E9702
        Device connected, mega128|mega128A detected
                % Read Lock     command 58 00 00 00,  reply 00 58 00 FF
        Chip not locked
                % Read Osccal   command 38 00 00 00,  reply 00 38 00 B5
                % Read Osccal   command 38 00 01 00,  reply 00 38 00 B5
                % Read Osccal   command 38 00 02 00,  reply 00 38 00 AF
                % Read Osccal   command 38 00 03 00,  reply 00 38 00 AF
                % Read Fuses    command 50 00 00 00,  reply 00 50 00 BF
                % Read Fuses    command 58 00 00 00,  reply 00 58 00 FF
                % Read Fuses    command 58 08 00 00,  reply 00 58 08 CF
                % Read Fuses    command 50 08 00 00,  reply 00 50 08 FD
        Fuses
          OSCCALs       = B5 B5 AF AF
        _LOCK = 0xFF
          BLB1          = 3
          BLB0          = 3
        _LOW = 0xBF
          BODLEVEL      = 1
          BODEN         = 0
          SUT           = 3
          CKSEL         = F
        _HIGH = 0xCF
          OCDEN         = 1
          JTAGEN        = 1
          CKOPT         = 0
          EESAVE        = 1
          BOOTSZ        = 3
          BOOTRST       = 1
        _EXT = 0xFD
          M103C         = 0
          WDTON         = 1
        Reading CODE memory
        ................................................................................
        ................................................................................
        ................................................................................
        ................ done (23.4s)
        Reading DATA memory
        ................................................................................
        ................................................ done (0.82s)
        Total time 24.5s
        Reset pin released

        И “нормальный” лог чтения без инвертора.

        Command:
          +MEGA128 "-pd=Dual RS232 A" -% -aft2232 -r -dinam.hex
                % 'ftd2xx.dll' successfully loaded, version 3.2.4
                % FTDI driver version 2.8.14
                % FT2232 MPSSE SPI adapter created, SCK frequency 188kHz
                % Reset
                % PgmOn reply  FF FF 53 00
                % Synchronised after 1 try
                % GetID reply  00 30 00 1E
                % GetID reply  00 30 00 97
                % GetID reply  00 30 00 02
                % Read ID: 0x1E9702
        Device connected, mega128|mega128A detected
                % Read Lock     command 58 00 00 00,  reply 00 58 00 FF
        Chip not locked
                % Read Osccal   command 38 00 00 00,  reply 00 38 00 B5
                % Read Osccal   command 38 00 01 00,  reply 00 38 00 B5
                % Read Osccal   command 38 00 02 00,  reply 00 38 00 AF
                % Read Osccal   command 38 00 03 00,  reply 00 38 00 AF
                % Read Fuses    command 50 00 00 00,  reply 00 50 00 BF
                % Read Fuses    command 58 00 00 00,  reply 00 58 00 FF
                % Read Fuses    command 58 08 00 00,  reply 00 58 08 CF
                % Read Fuses    command 50 08 00 00,  reply 00 50 08 FD
        Fuses
          OSCCALs       = B5 B5 AF AF
        _LOCK = 0xFF
          BLB1          = 3
          BLB0          = 3
        _LOW = 0xBF
          BODLEVEL      = 1
          BODEN         = 0
          SUT           = 3
          CKSEL         = F
        _HIGH = 0xCF
          OCDEN         = 1
          JTAGEN        = 1
          CKOPT         = 0
          EESAVE        = 1
          BOOTSZ        = 3
          BOOTRST       = 1
        _EXT = 0xFD
          M103C         = 0
          WDTON         = 1
        Reading DATA memory
        ................................................................................
        ................................................ done (0.82s)
        Total time 1.14s
        Reset pin released

        Инвертор проверял, если на вход подать высокий уровень, то микроконтроллер уйдет в состояние сброса. В связи с этим появился ещё один вопрос. Можно ли запрограммировать МК, когда при подключении программатора он сброшен? Т.е. нет нужды программно сбрасывать контроллер, запуск программы будет, только при отключенном программатора.

        Заранее благодарен.

        • ReAl says:

          Я отреагировал на слово «статическое».
          Если между выводом adbus3 микросхемы FT2232 и входом микроконтроллера стоит инвертор, то так и нужно писать — «на вход RESET подан проинвертированный выход adbus3»:

          avreal +MEGA128 -aft2232:reset=~adbus3 “-pd=Dual RS232 A” -% -r -dinam.hex

          Что касается программирования при постоянно «задавленном» сбросе, без управления им от программатора, то успех зависит от начального состояния линии SCK и способа пересинхронизации. Для практически всех AVR у нынешнего avreal может ничего и не получиться по той причине, что он, в отличие от атмеловских же программаторов, строго следует документации от Atmel.
          Я как раз сейчас готовлю текст на тему пересинхронизации, собираюсь сегодня опубликовать (а завтра поменять поведение avreal :-) ).

          upd:
          О синхронизации программатора с микроконтроллером.

          • Nipochomus says:

            Увы, проблема остается :(
            Хотя микроконтроллер точно уходит в сброшенное состояние.

          • Nipochomus says:

            Извините, забыл про новую версию.
            Программирование с инвертором:

            D:\avr\avreal>d:\avr\avreal\avreal32-1.28r9.exe +MEGA128 -aft2232:reset=~adbus3
            “-pd=Dual RS232 A” -% -r -ddinam.hex

            avreal/WIN32 – AVR controllers programmer by Redchuk Alexandr
            v1.28r9 (Dec 20 2011 14:03:41) http://real.kiev.ua/avreal
            bug-reports, suggestions and so on mail to avreal@real.kiev.ua
            Command:
            +MEGA128 -aft2232:reset=~adbus3 “-pd=Dual RS232 A” -% -r -ddinam.hex
            % ‘ftd2xx.dll’ successfully loaded, version 3.2.4
            % FTDI driver version 2.8.14
            % FT2232 MPSSE SPI adapter created, SCK frequency 188kHz
            % Reset
            % PgmOn reply FF FF FF FF
            % Try to resync by reset pulse % PgmOn reply FF FF FF FF
            % Try 1 to resync by SCK pulse % PgmOn reply FF FF FF FF
            % Try 2 to resync by SCK pulse % PgmOn reply FF FF FF FF
            % Try 3 to resync by SCK pulse % PgmOn reply FF FF FF FF
            % Try 4 to resync by SCK pulse % PgmOn reply FF FF FF FF
            % Try 5 to resync by SCK pulse % PgmOn reply FF FF FF FF
            % Try 6 to resync by SCK pulse % PgmOn reply FF FF FF FF
            % Try 7 to resync by SCK pulse % PgmOn reply FF FF FF FF
            % Try 8 to resync by SCK pulse % PgmOn reply FF FF FF FF
            % Try 9 to resync by SCK pulse % PgmOn reply FF FF FF FF
            % Try 10 to resync by SCK pulse % PgmOn reply FF FF FF FF
            % Try 11 to resync by SCK pulse % PgmOn reply FF FF FF FF
            % Try 12 to resync by SCK pulse % PgmOn reply FF FF FF FF
            % Try 13 to resync by SCK pulse % PgmOn reply FF FF FF FF
            % Try 14 to resync by SCK pulse % PgmOn reply FF FF FF FF
            % Try 15 to resync by SCK pulse % PgmOn reply FF FF FF FF
            % Try 16 to resync by SCK pulse % PgmOn reply FF FF FF FF
            % Try 17 to resync by SCK pulse % PgmOn reply FF FF FF FF
            % Try 18 to resync by SCK pulse % PgmOn reply FF FF FF FF
            % Try 19 to resync by SCK pulse % PgmOn reply FF FF FF FF
            % Try 20 to resync by SCK pulse % PgmOn reply FF FF FF FF
            % Try 21 to resync by SCK pulse % PgmOn reply FF FF FF FF
            % Try 22 to resync by SCK pulse % PgmOn reply FF FF FF FF
            % Try 23 to resync by SCK pulse % PgmOn reply FF FF FF FF
            % Try 24 to resync by SCK pulse % PgmOn reply FF FF FF FF
            % Try 25 to resync by SCK pulse % PgmOn reply FF FF FF FF
            % Try 26 to resync by SCK pulse % PgmOn reply FF FF FF FF
            % Try 27 to resync by SCK pulse % PgmOn reply FF FF FF FF
            % Try 28 to resync by SCK pulse % PgmOn reply FF FF FF FF
            % Try 29 to resync by SCK pulse % PgmOn reply FF FF FF FF
            % Try 30 to resync by SCK pulse % PgmOn reply FF FF FF FF
            % Try 31 to resync by SCK pulse % PgmOn reply FF FF FF FF
            % Try 32 to resync by SCK pulse % PgmOn reply FF FF FF FF
            Can’t resync

            Reset pin released

            D:\avr\avreal>pause=null
            Для продолжения нажмите любую клавишу . . .

            Без инвертора:

            D:\avr\avreal>d:\avr\avreal\avreal32-1.28r9.exe +MEGA128 -aft2232:reset=adbus3 ”
            -pd=Dual RS232 A” -% -r -ddinam.hex

            avreal/WIN32 – AVR controllers programmer by Redchuk Alexandr
            v1.28r9 (Dec 20 2011 14:03:41) http://real.kiev.ua/avreal
            bug-reports, suggestions and so on mail to avreal@real.kiev.ua
            Command:
            +MEGA128 -aft2232:reset=adbus3 “-pd=Dual RS232 A” -% -r -ddinam.hex
            % ‘ftd2xx.dll’ successfully loaded, version 3.2.4
            % FTDI driver version 2.8.14
            % FT2232 MPSSE SPI adapter created, SCK frequency 188kHz
            % Reset
            % PgmOn reply FF FF 53 00
            % GetID reply 00 30 00 1E
            % GetID reply 00 30 00 97
            % GetID reply 00 30 00 02
            % Read ID: 0x1E9702
            Device connected, mega128|mega128A detected
            % Read Lock command 58 00 00 00, reply 00 58 00 FF
            Chip not locked
            % Read Osccal command 38 00 00 00, reply 00 38 00 B5
            % Read Osccal command 38 00 01 00, reply 00 38 00 B5
            % Read Osccal command 38 00 02 00, reply 00 38 00 AF
            % Read Osccal command 38 00 03 00, reply 00 38 00 AF
            % Read Fuses command 50 00 00 00, reply 00 50 00 BF
            % Read Fuses command 58 00 00 00, reply 00 58 00 FF
            % Read Fuses command 58 08 00 00, reply 00 58 08 CF
            % Read Fuses command 50 08 00 00, reply 00 50 08 FD
            Fuses
            OSCCALs = B5 B5 AF AF
            _LOCK = 0xFF
            BLB1 = 3
            BLB0 = 3
            _LOW = 0xBF
            BODLEVEL = 1
            BODEN = 0
            SUT = 3
            CKSEL = F
            _HIGH = 0xCF
            OCDEN = 1
            JTAGEN = 1
            CKOPT = 0
            EESAVE = 1
            BOOTSZ = 3
            BOOTRST = 1
            _EXT = 0xFD
            M103C = 0
            WDTON = 1
            Reading DATA memory
            ……………………………………………………………………..
            ………………………………………… done (0.82s)
            Total time 1.05s
            Reset pin released

            D:\avr\avreal>pause=null
            Для продолжения нажмите любую клавишу . . .

            • Nipochomus says:

              Проблема была в монтаже кабеля :-D
              Теперь всё работает. Спасибо.

              • ReAl says:

                «Радиотехника — наука о контактах. Два возможных класса неисправностей — нет контакта там, где он должен быть и есть контакт там, где его не должно быть» :-D

  4. amalgama says:

    доброго дня!
    возник вопрос по файлу конфигурации.

    этот вариант :
    avreal32-1.28r8.exe +tiny2313 -aft2232h:enable=~dbus4:led_error=~dbus6:led_ok=~dbus7 -az -pd=”Dual RS232-HS B” -o400 -%% -e
    прекрасно работает,
    а вариант:
    avreal32-1.28r8.exe -aft2232h -am=usb.cfg -pd=”Dual RS232-HS B” +tiny2313 -o200 -%% -r -cread2313.hex

    usb.cfg:
    enable=~dbus4
    key=~dbus5
    led_error=~dbus6
    led_ok=~dbus7

    выдает :
    % loading config file ‘usb.cfg’
    adapter: invalid pin name ‘dbus4′

    где я не то не так делаю?

    Спасибо!

    • ReAl says:

      -am это ключ для произвольного адаптера на LPT-порт.
      Конфиг для назначения выводов FT2232* нужно указывать в ключе для FT2232
      -aft2232h=usb.cfg

  5. mkh says:

    Вот такая проблема возникает в ubuntu 10.10:

    ~/avreal$ sudo ./avreal -aft2232h +tiny13

    avreal/Linux64 – AVR controllers programmer by Redchuk Alexandr
    v1.28r8 (Aug 13 2011 12:18:30) http://real.kiev.ua/avreal
    bug-reports, suggestions and so on mail to avreal@real.kiev.ua
    Command:
    -aft2232h +tiny13
    Can’t open FTDI device with description “Dual RS232-HS A” (FT_DEVICE_NOT_OPENED)

    При этом lsusb говорит следующее:

    ~/avreal$ sudo lsusb -v -d 0403:6010

    Bus 002 Device 003: ID 0403:6010 Future Technology Devices International, Ltd FT2232C Dual USB-UART/FIFO IC
    Device Descriptor:
      bLength                18
      bDescriptorType         1
      bcdUSB               2.00
      bDeviceClass            0 (Defined at Interface level)
      bDeviceSubClass         0
      bDeviceProtocol         0
      bMaxPacketSize0        64
      idVendor           0x0403 Future Technology Devices International, Ltd
      idProduct          0x6010 FT2232C Dual USB-UART/FIFO IC
      bcdDevice            7.00
      iManufacturer           1 FTDI
      iProduct                2 Dual RS232-HS
      iSerial                 0
      bNumConfigurations      1
      Configuration Descriptor:
        bLength                 9
        bDescriptorType         2
        wTotalLength           55
        bNumInterfaces          2
        bConfigurationValue     1
        iConfiguration          0
        bmAttributes         0x80
          (Bus Powered)
        MaxPower              500mA
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        0
          bAlternateSetting       0
          bNumEndpoints           2
          bInterfaceClass       255 Vendor Specific Class
          bInterfaceSubClass    255 Vendor Specific Subclass
          bInterfaceProtocol    255 Vendor Specific Protocol
          iInterface              2 Dual RS232-HS
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x81  EP 1 IN
            bmAttributes            2
              Transfer Type            Bulk
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0200  1x 512 bytes
            bInterval               0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x02  EP 2 OUT
            bmAttributes            2
              Transfer Type            Bulk
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0200  1x 512 bytes
            bInterval               0
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        1
          bAlternateSetting       0
          bNumEndpoints           2
          bInterfaceClass       255 Vendor Specific Class
          bInterfaceSubClass    255 Vendor Specific Subclass
          bInterfaceProtocol    255 Vendor Specific Protocol
          iInterface              2 Dual RS232-HS
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x83  EP 3 IN
            bmAttributes            2
              Transfer Type            Bulk
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0200  1x 512 bytes
            bInterval               0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x04  EP 4 OUT
            bmAttributes            2
              Transfer Type            Bulk
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0200  1x 512 bytes
            bInterval               0
    Device Qualifier (for other device speed):
      bLength                10
      bDescriptorType         6
      bcdUSB               2.00
      bDeviceClass            0 (Defined at Interface level)
      bDeviceSubClass         0
      bDeviceProtocol         0
      bMaxPacketSize0        64
      bNumConfigurations      1
    Device Status:     0x0000
      (Bus Powered)
    • ReAl says:

      Прошу прощения за задержку, вчера вечером увидел вопрос, но до попытки ответа не добрёл.

      Странно.

      Я такого эффекта (именно FT_DEVICE_NOT_OPENED при подключенном устройстве) смог сейчас добиться только запуском avreal в двух соседних консолях. В одной с прописанной в конфиг-файле кнопкой и просьбой подождать нажатия

      $avreal -aft2232h=avreal-f32ha_a.cfg -az -K +tiny13
      avreal/Linux64  -  AVR controllers programmer by Redchuk Alexandr
      v1.28r8 (Aug 13 2011 12:18:30)  http://real.kiev.ua/avreal
      bug-reports, suggestions and so on mail to avreal@real.kiev.ua
      Command:
        -aft2232h=avreal-f32ha_a.cfg -az -K +tiny13
      Press ADAPTER KEY for continue.

      Эта копия висит и не отпускает открытое устройство, тогда в другой консоли

      $avreal -aft2232h +tiny13
      avreal/Linux64  -  AVR controllers programmer by Redchuk Alexandr
      v1.28r8 (Aug 13 2011 12:18:30)  http://real.kiev.ua/avreal
      bug-reports, suggestions and so on mail to avreal@real.kiev.ua
      Command:
        -aft2232h +tiny13
      Can't open FTDI device with description "Dual RS232-HS A" (FT_DEVICE_NOT_OPENED)

      Может, какая-то программа держит открытым устройство?

    • ReAl says:

      Вернулся к этой теме.
      В 32-битной убунте с libftd2xx 1.0.4 именно FT_DEVICE_NOT_OPENED и получается до тех пор, пока руками не снять ftdi_sio

      sudo rmmod ftdi_sio

      Библиотека версии 0.4.16 обходилась без этого.

      Я из-за описанной ранее несовместимости 64-битных libftd2xx версий 0.4.x 1.0.x работаю и в 64-, и в 32-битной с 0.4.16, потому и не получал FT_DEVICE_NOT_OPENED.

      Но у Вас-то avreal/Linux64, он должен искать libftd2xx.so.0 и по этому линку работать с libftd2xx.so.0.4.16, которая обходится без убирания модуля ftdi_sio и в обычных условиях FT_DEVICE_NOT_OPENED не выдаёт.

      Так что пока непонятно.

  6. Андрей says:

    При попытке прошить МК Atmega8 программатором STK (проверен, неоднократно им
    прошивал) выдает сообщение «Can’t resync». Правильность подключения
    неоднократно перепроверена, КЗ отсутствуют. Привожу лог. Сдох МК ? Спасибо.

    avreal/Linux64 – AVR controllers programmer by Redchuk Alexandr
    v1.28r8 (Aug 13 2011 12:18:30) http://real.kiev.ua/avreal
    bug-reports, suggestions and so on mail to аvreаl@reаl.kiev.uа
    Command:
    +MEGA8 -p/dev/parport0 -as -n -e -w -v /gamma.hex /gamma.eep -%
    % Parallel port `/dev/parport0′ found, ioctl interface activated
    % LPT write cycle 1.31us
    % Atmel adapter for STK300 found
    % STK adapter mode
    % MCU oscillator frequency = 0.80MHz
    % setup 2.62us, hold 2.62us
    % actual SCK frequency 152kHz
    Adapter enabled
    % Reset
    % PgmOn reply FF FF FF FF
    % Try 1 to resync by reset pulse % PgmOn reply FF FF FF FF
    % Try 2 to resync by reset pulse % PgmOn reply FF FF FF FF
    % Try 3 to resync by reset pulse % PgmOn reply FF FF FF FF
    % Try 4 to resync by reset pulse % PgmOn reply FF FF FF FF
    Can’t resync

    Reset pin released
    Adapter disabled

    • ReAl says:

      Честно говоря, не знаю, что и ответить.
      Вы уверены, что во fuses нет чего-то неожиданного типа переключения на внешний генератор и т.п.?
      Что последнее зашивалось в кристалл?

      Как правило, заниженная частота программатора ситуацию не ухудшает, но иногда лучше, чтобы частота в ключе -o была поближе к реальной.
      Специфика пересинхронизации импульсом reset.
      Попробуйте так (для старых кристаллов применяется другой метод пересинхронизации).

      avreal -as -p/dev/parport0 +90s2313 -%

      Найдёт микроконтроллер или нет?

  7. Ruslan says:

    Не удаётся прошить МК mega128. Содержимое .bat-файла:
    avreal32 +mega128 -aft2232:enable=adbus4,acbus2 -o7MHz -wp -c m.hex -v -%%
    Пробовал убирать polling, т.е. просто ключ -w, тогда процесс прошивки пошёл но при верификации найдено 65000 несоответствий.
    Вот что выдаёт мне avreal32:

    % Reset
    % PgmOn reply FF FF 53 00
    % Synchronised after 1 try
    % GetID reply 00 30 00 1E
    % GetID reply 00 30 00 97
    % GetID reply 00 30 00 02
    % Read ID: 0x1E9702
    Device connected, mega128 detected
    % Read Lock command 58 00 00 00, reply 00 58 00 FF
    Chip not locked
    % Read Osccal command 38 00 00 00, reply 00 38 00 B9
    % Read Osccal command 38 00 01 00, reply 00 38 00 B9
    % Read Osccal command 38 00 02 00, reply 00 38 00 B1
    % Read Osccal command 38 00 03 00, reply 00 38 00 B3
    % Read Fuses command 50 00 00 00, reply 00 50 00 1F
    % Read Fuses command 58 00 00 00, reply 00 58 00 FF
    % Read Fuses command 58 08 00 00, reply 00 58 08 C7
    % Read Fuses command 50 08 00 00, reply 00 50 08 FF
    Fuses
    OSCCALs = B9 B9 B1 B3
    _LOCK = 0xFF
    BLB1 = 3
    BLB0 = 3
    _LOW = 0x1F
    BODLEVEL = 0
    BODEN = 0
    SUT = 1
    CKSEL = F
    _HIGH = 0xC7
    OCDEN = 1
    JTAGEN = 1
    CKOPT = 0
    EESAVE = 0
    BOOTSZ = 3
    BOOTRST = 1
    _EXT = 0xFF
    M103C = 1
    WDTON = 1
    Programming CODE memory
    Poll: can’t write page at 0×0

    Reset pin released
    Adapter disabled

    • ReAl says:

      Забыли ключ стирания -e.
      Без него не стирается старое содержимое, запись идёт поверх и выходит каша.

  8. Dmitriy says:

    Здравствуйте, при повторном программировании mega162 через LPT возникла проблема – чип успешно стирается и лочится.
    Раньше такого не было.

    Вот лог:
    avreal/WIN32 – AVR controllers programmer by Redchuk Alexandr
    v1.28r8 (Aug 13 2011 12:11:23) http://real.kiev.ua/avreal
    bug-reports, suggestions and so on mail to avrеal@rеal.kiеv.uа
    Command:
    +mega162 -! -p1 -% -o0 -e -n -w -v mega162_16pi.hex -fjtagen=1,BLEV=5,CKSEL=E,CKDIV=1 -l2
    % Fuse added: jtagen=1
    % Fuse added: BLEV=5
    % Fuse added: CKSEL=E
    % Fuse added: CKDIV=1
    % LPT port number 1
    % LPT base address 0×378
    % DLportIO.dll succesfully loaded, DLportIO.sys interface activated
    % LPT write cycle 1.20us
    % FBPRG adapter mode
    % 0.42MHz XTAL will be generated
    % with SCK low 2 periods, high 2 periods
    % Reset
    % PgmOn reply FF FE 53 00
    % Synchronised after 1 try
    % GetID reply 00 30 00 1E
    % GetID reply 00 30 00 94
    % GetID reply 00 30 00 04
    % Read ID: 0x1E9404
    Device connected, mega162 detected
    % Read Lock command 58 00 00 00, reply 00 58 00 FC
    Chip locked – reading and programming disabled
    % Read Osccal command 38 00 00 00, reply 00 38 00 64
    Number of erases not initialized
    % Erase reply 00 AC 80 00
    Device erased
    % Reset
    % PgmOn reply FF FE A7 00
    % Try 1 to resync by reset pulse % PgmOn reply FF FE A7 00
    % Try 2 to resync by reset pulse % PgmOn reply FF FE A7 00
    % Try 3 to resync by reset pulse % PgmOn reply FF FE A7 00
    % Try 4 to resync by reset pulse % PgmOn reply FF FE A7 00
    Can’t resync
    Reset pin released

    Подскажите, что это может быть. Спасибо!

    • Dmitriy says:

      Проблема найдена – схема питалась от USB кабеля подключаемом через удлинитель. При подключении прямо в мать чип перепрошился. Почему это критично только для уже прошитых чипов и не критично для пустых – непонятно.

      • ReAl says:

        О как хорошо — пока я добрался, уже все в порядке :-)

        Надо разбираться.
        Плохой контакт в смысле падения напряжения питания не должен был помешать, так как уровень BODLEVEL довольно низкий.
        Но могло что-то с землями быть нехорошее и, например, на тактовый сигнал от LPT на XTAL1 наводка была и сбивала тактирование.
        Это нужно смотреть всю схему подключения, тактирование. CKSEL=E — это для керамического резонатора, он по сигналу тактирования от LPT по -o0 мог подзванивать и портить такт, а это тоже и от земель зависит.

        В одной из прошедших через меня «партий» atmega162 (десяток контроллеров) они вообще плохо программировались при внешнем кварце 7.3728 и питании 5 вольт.
        На внутреннем RC — отлично, при питании 3.3В независимо от тактирования — тоже отлично. Ситуацию поправили только RC-цепочки 510 Ом последовательно и 100 пФ на землю на сигналах SCK и MOSI. До этого в адаптере после шинника стояли последовательные резисторы 100 Ом, их оказалось мало.

  9. Vadim says:

    21 липня 2011 at 20:25
    Нужна поддержка attiny 4/5/9/10 (6 pin)
    Reply

    ReAl says:
    2 серпня 2011 at 23:01
    Прошу прощения за тормоза.
    Я не смотрел внимательно новые attiny. Если правильно понял, интерфейс программирования у них похож на то, что в atXmega.
    Для него возникают трудности с реализацией через адаптеры без встроенного «интеллекта». Там нельзя снижать частоту CLK программатора ниже определённого предела, иначе разорвётся соединение.
    В современных ОС процесс программатора может быть приторможен и частота упадёт ниже предела.
    Есть некоторые мысли по реализации через FTDI, но это нужно экспериментировать.
    Через LPT практически нереально.

    Должен с вами не согласиться – я сделал програматор для LPT и написал софт все программируется на ура но – процесс программирования для 32 кБ
    будет сравнительно долгим у меня CLK – 0.050 mc – запись + верификайия 0.4- 1.2 мс для байта
    2 с удлинением проводов до 1 метра тайминги возрастают в 10 раз

  10. vsityz says:

    Хотел запустить avreal под FreeBSD 8.2 и обломался.
    Бинарник не линкуется с либами + собран еще на древней версии FreeBSD 6.4.
    Если нет возможности пересобрать на новой версии, можно ли хоть исходники получить
    для самостоятельной сборки ?
    А то уже FreeBSD 9 на носу а мы все на 6.4 сидим.

    ошибки такие:
    /libexec/ld-elf.so.1: Shared object “libstdc++.so.5″ not found, required by “avreal-1.28r8″
    ссылку делал на новые либы ,но бинарник в упор их не видит, не понятно где он их ищет ?

    • ReAl says:

      О, вовремя.

      Как раз после переезда на ноутбук собирюсь сделать на другом компъютере отдельный диск с горстью разных ОС для сборки и проверки avreal в естественой среде обитания.
      Ставлю сразу 8.2, а то, не подумавши, мог опять 6.4 поставить :-)
      Я ж во FreeBSD сам не работаю. Особой активности пользователей FreeBSD ни в почте, ни на сайте нет, вот я и не обновлял давно. Так, по инерции собираю и выкладываю.

      • vsityz says:

        Ok, хотелось бы к концу недели заюзать, как-раз доделываю программатор ;) .
        Если нужна будет помощь по FreeBSD – обращайся.

    • ReAl says:

      Я уже и сам проверил, выложил на страничке загрузки avreal рядом с 1.28r8 для FreeBSD 6.4.
      Все последующие будут уже для 8.2.

      А линки avreal тоже не видел, вероятно, потому, что он 32-битный, а ОС 64-битная. Что-то куда-то перенаправляется, линки в других местах нужно было делать.
      В 32-битной FreeBSD 8.2 он линк увидел, но попросил следующую библиотеку. Я не стал экспериментировать — запустится ли, если на все дать линки.

  11. olkor says:

    Добрый день. Столкнулся с интересной ситуацией при записи в EEPROM.

    При записи и верификации в одной командной строке ошибок не возникает:

    avreal/WIN32 – AVR controllers programmer by Redchuk Alexandr
    v1.28r5 (Oct 11 2010 20:02:13) http://real.kiev.ua/avreal
    bug-reports, suggestions and so on mail to avreаl@reаl.kiеv.uа
    Command:
    +mega128 -p1 -as -ai20 -o11059kHz -1 -w -v “-dD:\OlegOther\Projects\DelphiXe\AvReal\_Архив3 Рабочая\hex\OutBoard_eeprom.hex”
    —- Удалено для экономии места ——-
    Programming DATA memory
    done (58ms)
    Verifying DATA memory
    passed
    done (0.38ms)
    Total time 279ms
    Reset pin released
    Adapter disabled

    А при отдельной верификации выдает 3 ошибки. Всегда 3:

    avreal/WIN32 – AVR controllers programmer by Redchuk Alexandr
    v1.28r5 (Oct 11 2010 20:02:13) http://real.kiev.ua/avreal
    bug-reports, suggestions and so on mail to avrеal@rеal.kiеv.uа
    Command:
    +mega128 -p1 -as -ai20 -o11059kHz -1 -v “-dD:\OlegOther\Projects\DelphiXe\AvReal\_Архив3 Рабочая\hex\OutBoard_eeprom.hex”
    —- Удалено для экономии места ——-
    Verifying DATA memory
    failed, 3 errors
    done (1.99ms)

    Reset pin released
    Adapter disabled

    • ReAl says:

      Ой! ™ Не встречался с таким.
      А какие различия? «должно быть» — «прочитано».

      • olkor says:

        Содержимое записываемого
        :020000020000FC
        :03000200FF800775
        :0400000300000000F9
        :00000001FF
        Содержимое прочитанного
        :10000000FFFF05C003FFFFFFFFFFFFFFFFFFFFFF35
        :10001000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0
        ……..

        :100FF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01
        :00000001FF

        • ReAl says:

          А Вы уверены, что сама программа в микроконтроллере не перезаписывает эти ячейки сразу после старта?

          Я не вижу другой причины, по которой может быть следующее:
          В одном запуске avreal запись+верификация (сброс с контроллера не снимается) — всё нормально.
          В разных запусках (сброс снимается и программа начинает выполняться) — данные в EEPROM не совпали.

          • olkor says:

            Упс… Вот это я протормозил! А ведь действительно в этой версии прошивки перезаписывается. Огромное спасибо. Прошу прощения за ложную тревогу.

  12. Vadim says:

    Нужна поддержка attiny 4/5/9/10 (6 pin)

    • ReAl says:

      Прошу прощения за тормоза.

      Я не смотрел внимательно новые attiny. Если правильно понял, интерфейс программирования у них похож на то, что в atXmega.
      Для него возникают трудности с реализацией через адаптеры без встроенного «интеллекта». Там нельзя снижать частоту CLK программатора ниже определённого предела, иначе разорвётся соединение.
      В современных ОС процесс программатора может быть приторможен и частота упадёт ниже предела.

      Есть некоторые мысли по реализации через FTDI, но это нужно экспериментировать.
      Через LPT практически нереально.

  13. mastexplorer says:

    Доброго дня. Такая вот ситуация:

    v1.28r7 (Feb 27 2011 17:35:08) http://real.kiev.ua/avreal
    bug-reports, suggestions and so on mail to avrеal@rеal.kiеv.uа
    Command:
    -aft2232 -am=ftbb.cfg -pp=6010 +MEGA32 -o8000 -1 -e -w -v -% -c temp.hex -d temp.eep -fBLEV=0,BODEN=0,SUT=3,CKSEL=F,BLB1=0,BLB0=0,OCDEN=1,JTAGEN=1,CKOPT=0
    % Fuse added: BLEV=0
    % Fuse added: BODEN=0
    % Fuse added: SUT=3
    % Fuse added: CKSEL=F
    % Fuse added: BLB1=0
    % Fuse added: BLB0=0
    % Fuse added: OCDEN=1
    % Fuse added: JTAGEN=1
    % Fuse added: CKOPT=0
    % config path not defined
    % program path D:\Инструменты\Uniprog\Avreal
    % loading config file ‘ftbb.cfg’
    adapter: invalid pin name ‘acbus2′

    Содержимое файла ftbb.cfg:
    enable=~acbus2,~adbus4

    уложить в одну строку не могу – ограничен количеством символов

    Может, чего не верно указал?

    • mastexplorer says:

      Вопрос снят. Включил голову и все залюбилось.

    • ReAl says:

      Как хорошо, когда вопрос снимается сам :-)

      Кардинально сократить строку в данном случае можно путём ручного собирания битиков fuses в байты и запись -f_low=XX,_high=YY,_ext=ZZ
      где XX,YY,ZZ — соответствующие шестнадцатеричные записи. Только тогда нужно внимательно с учётом не указанных в командной строке (указать как по умолчанию с завода) и зарезервированных битов (поставить единички).

      Как вариант — зашить один раз что надо, после чего вызвать avreal без каких-либо команд, только с адаптером и типом контроллера. В отчёте о фьюзах будут и значения байтов.

      • mastexplorer says:

        За идею с фьюзами большое спасибо. Сам не додумался =(

        А выкрутился я следующим образом:
        Command:
        -aft2232=ft.cfg -ps=FTPrgA -az +MEGA32 -o8000 -1 -e -w -v -% -c temp.hex -d temp.eep -fBLEV=0,BODEN=0,SUT=3,CKSEL=F,BLB1=0,BLB0=0,OCDEN=1,JTAGEN=1,CKOPT=0
        Содержимое файла ft.cfg: enable=~acbus2,~adbus4
        Дело в том, что я редактирую строку вызова winhex-ом в exe файле. “+” и “-о” являются частью шаблона и сдвигать их с места нельзя, иначе программа некорректно вставит в строку тип проца и частоту SPI

        • ReAl says:

          Т.е. идёт борьба с чужой программой, которая из себя вызывает avreal?
          И сама программа меняет только тип контроллера и частоту?
          Она ключи ‘+’ и ‘-o’ вписывает, или тольо сами значения?
          Если только значения, то сделать ей

          pgm.bat                    MEGA32      8000

          Пусть себе туда подставляет что хочет, а в бат-файле написать всё остальное и это дело как аргументы и %1 %2 взять. Сколько там пробелов — и не важно.
          Ну или

          cmd.exe /C pgm.bat         MEGA32      8000

          если с батником напрямую плохо будт выходить.

      • mastexplorer says:

        Попутный вопрос – а не работает ли avreal с “сырым” винарником? Raw binary проще редактировать winhex-ом

        • ReAl says:

          Да как-то нужды не было. Сильно не просили до сих пор, а самому совершенно не нужно.
          Всё же avreal все эти годы — проект в первую очередь «для себя» :-)

          А что, прошики тоже нало вручную патчить, не только какую-то exe-шину?
          Что это за задача такая?

          • mastexplorer says:

            Задача такая: поднять епром из изделия (мега32 или мега128), РУКАМИ поправить ряд параметров и закинуть обратно. Я это делал до сих пор при помощи AVR910+avrdude+WinHex. Все бы хорошо, но процедура прочитать-записать в случае меги32 занимает минуты 4. Avrdude понимает и raw bin и intel hex, но не понимает MPSSE. Avreal понимает MPSSE, но не понимает raw bin. Паять STK500 не хочу – не универсально, применимо только для avr-ов. Внимание, вопрос! Паять bitbangоматор на FT232R под avrdude или ждать, когда avreal начнет работать с bin-ом?

  14. pavel says:

    а как насчет того, чтобы прикрутить к avreal альтеровский USB-blaster?

    • ReAl says:

      Больной вопрос…
      Давно собираюсь, но пока только информацию собрал, писать даже не начинал.

  15. Vitaly says:

    Доброго дня. Давно користуюсь вашою програмою разом з програматором на базі FT2232D. При роботі з OS Windows XP проблем не виникае, та зараз виникла потреба підключити програматор під ARCH Linux. Встановив бібліотеки libftd2xx1.0.4. Тепер при виклику програми отримую:

    Command:
    +mega64 -aft2232 “-pd=Dual RS232 A,s=FT01001A,v=0403,p=6010″ -az -r -c read.hex -%%
    % ‘libftd2xx.so’ successfully loaded, version 1.0.4
    Can’t open FTDI device with serial number “FT01001A” (FT_DEVICE_NOT_FOUND)

    Перелік підключених пристроїв:

    Command:
    -aft2232 “-pd=DUAL RS232 A” +mega64 -p?
    2 FTDI devices detected
    0: FT_DEVICE_UNKNOWN (0×3) – “”, serno “”
    1: FT_DEVICE_UNKNOWN (0×3) – “”, serno “”

    Команда lsusb повертає наступне:

    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 002 Device 033: ID 0403:6010 Future Technology Devices International, Ltd FT2232C Dual USB-UART/FIFO IC

    допоможіть розібратись.

    • ReAl says:

      FTDI з якогось дива змінила прототипи функцій при переході від libftd2xx версій 0.4.x до 1.0.x, докладніше в публікації «Подаруночок від FTDI». Стару бібліотеку можна взяти у мене на сторінці завантаження, якщо треба мати і нову версію, то прочитайте «Як встановити дві версії libftd2xx».

      p.s. Стандартні vid/pid в ключі -p можна не вказувати. Якщо програматор один, то можна не вказувати і серійний номер. Якщо при цьому значення рядка опису пристрою не перезаписувалося в EEPROM програматора, то ключ -p можна не задавати взагалі, буде автоматично використано значення за умовчанням.

  16. alexey_laa says:

    Можно подробнее про USB-адаптер на FT232? Есть ли какая-нибудь схема?

  17. homeness says:

    Скажите пожалуйста возможно ли в принципе использование AVReAl совместно с атмеловским программатором at89isp для программирования ATmega169?

    • ReAl says:

      Да, должен работать в режиме с заданием конфигурации, т.е. ключ

      -am=config-file.cfg

      или

      -am:reset=PIN_NAME:mosi=…

      И даже есть линия для генерации XTAL (SS, вывод 8 колодки). Колодка сама вобще как у байт-бластера, а вот что внутри?
      Нужно только узнать, какие сигналы LPT используются для каких сигналов программирования.
      Не выйдет использовать только в том случае, если MOSI либо SCK не на порту данных LPT.

      • ReAl says:

        Увы, то, что я нашёл в качестве схемы at89isp, не радует.
        SCK берётся со STROBE. А у меня для повышения скорости обмена диаграмма для MOSI и SCK набирается в буфере и выбрасыается пакетом в порт даных LPT, поэтому эти сигналы должны быть на линиях D0..D7. Всё остальное (RESET, ENABLE шинников, светодиоды, …) может быть и на выходах управления.

        • homeness says:

          Но at89isp ведь можно доработать напильником :) Спасибо, ваш ответ обнадеживает!

  18. Shafurka says:

    Скажите какой должна быть командная строка если я спалил на lpt 6й пин который идет на reset? скажем на пин 5

    • ReAl says:

      Вы не указали, какой именно адаптер использовался.
      6-ая ножка для RESET — это FBPRG, так что дальше я беру за основу его разводку.
      5-я ножка LPT (D3) для FBPRG обычно идёт для подачи генерируемого avreal-ом тактового сигнала на вывод XTAL1 при неправльно зашитых фьюзах CKSEL, поэтому в примере я беру ножку 4 (D2).

      Все ноги перечислять в командной строке занудно, хотя если это в батнике, то можно. Лучше написать полный конфиг для «нового» адаптера и везде его указывать. А если подпалится ещё одна нога, то подредактировать его и все батники опять будут работать :-)

      Делаем такой текстовый файл:

      name = Mapped FBPRG for burned LPT
      mosi=D5
      miso=ACK
      sck = D6
      #reset = D4 # первоначальное значение закомментировали, можно и удалить
      reset = D2 #pin 4
      xtal=D3

      Называем его, например, burned_lpt.cfg подсовываем его в командную строку
      avreal32 -am=burned_lpt.cfg -p1 ...
      Можно и всё в командной строке (если XTAL не нужен, его можно не указывать, все остальные должны быть перечислены):
      avreal32 -am:mosi=D5:miso=ACK:sck=D6:reset=D2 -p1 ...

Leave a Reply

[flagcounter image]