AVReAl – serial programmer for AVR

 

AVReAl designed for programming of Atmel AVR microcontrollers in ISP (in-circuit serial programming) mode. AVReAl requires one of simple adapters connected to LPT or USB-adapters bulit with FT2232C, FT2232L, FT2232D and FT2232H, FT4232H by FTDI.

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. Previous versions for DOS are available for downloading.
Working of avreal/win32 with FT2232C/L/D/H has been checked for WindowsXP/64, Windows7/32 Windows7/64.

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 software and visit description page for detailed information and adapters page for schematics of programming adapters.

Supported microcontroller list (can be got by the command avreal -h):

86RF401
90S1200 90S2313 90S4414 90S8515 90S4434
90S8535 90S2333 90S4433 90S2323 90S2343
tiny12 tiny22L tiny22 tiny13|tiny13A
tiny2313|tiny2313A tiny4313
tiny15 tiny25 tiny45 tiny85 tiny43u
tiny87 tiny167
tiny26 tiny261|tiny261A tiny461|tiny461A tiny861|tiny861A
tiny24 tiny44 tiny84 tiny48 tiny88
mega603 mega103 mega161 mega163 mega323
mega8515 mega8535 mega162
mega8|mega8A mega48|mega48A mega48P|mega48PA mega88|mega88A mega88P|mega88PA
mega168|mega168A mega168P|mega168PA mega328 mega328P
mega16|mega16A mega32|mega32A mega64|mega64A mega128|mega128A
90CAN32 90CAN64 90CAN128
90usb82 90usb162 mega8U2 mega16U2 mega32U2
mega16U4 mega32U4
mega32U6 90usb646|90usb647 90usb1286|90usb1287
mega164A mega164P|mega164PA mega324A mega324P mega324PA
mega644|mega644A mega644P|mega644PA mega1284 mega1284P
mega165|mega165P|mega165PA mega325 mega325P mega3250 mega3250P
mega645 mega6450
mega169|mega169P mega329 mega329P mega3290 mega3290P
mega649 mega6490
mega640 mega1280 mega1281 mega2560 mega2561
90pwm2|90pwm3 90pwm1|90pwm2B|90pwm3B 90pwm216|90pwm316 90pwm81
mega16M1 mega32M1 mega64M1 mega32C1 mega64C1
mega8HVA mega16HVA mega16HVB mega32HVB mega8HVD

105 Responses to “AVReAl – serial programmer for AVR”

  1. YS says:

    Добрый день!

    Спасибо Вам за замечательную программу, и отдельное спасибо за то, что она до сих пор бесплатна. :-)

    Простите мне мое нетерпение, но я хочу еще раз поинтересоваться: скоро ли будет (если будет вообще) поддержка программатора на FT232, как в AVRdude?

  2. mil says:

    Здравствуйте.Не могу понять, как прошивать правильно фьюзы. Мне нужно установить такие фьюзы: WDTON, BOOTSZ1, BOOTSZ0, BODLEVEL, BODEN, остальные по нулям. Мне посоветовали прописать это так: -f_low=3F,_high=89 . Скажите пожалуйста, это правильно, так как аппарат работает неправильно. И еще вопрос: нужно прописать CKOPT, BOOTSZ1, BOOTSZ0, SUTO, остальные по нулям. Правильно-ли прописать это так: -f_low=3F,_high=C9. Заранее благодарен.

    • ReAl says:

      Как-то странно поставлен вопрос. Стёртое состояние fuse — “1″, прошитое — “0″. Что означает “остальные по нулям”?

      -f_low=3F,_high=89

      Ну тут тяжело ответить, так как не указан тип микроконтроллера, а положение fuse у разных контроллеров разное.
      Берите значения из табличек в документации на нужный микроконтроллер и так их и вписывайте, как они там указаны. Для включения WDT надо, чтобы WDTON был равен нулю — пишите WDTON=0
      Многобитовые соединяйте в шестнадцатеричное число, т.е. стёртый bootsiz1 и запрограммированный bootsiz0 будет BOOTSIZ=2

      Мне нужно установить такие фьюзы: WDTON, BOOTSZ1, BOOTSZ0, BODLEVEL, BODEN

      это

      -fwdton=0,bootsiz=0,bodlevel=0,boden=0

      Так остальные изменены не будут, только перечисленные в строке установлены в заданное состояние.
      Если нужно задать все, то все и перечислить. Можно соединить в _low, _high, _ext, но я предпочитаю явно указывать.

      • mil says:

        Здравствуйте.Перефразирую вопрос- что нужно дописать после вот этого: с:\avw125r5\avreal32.exe -p1 -ap -o0 +mega8 -w -chan.hex что-бы прошить такие фьюзы:WDTON, BOOTSZ1, BOOTSZ0, BODLEVEL, BODEN (программатор- т.н.”5 проводков” И второй вопрос-что нужно дописать после этого: с:\avw125r5\avreal32.exe -p1 -ap -o0 +mega32 -w -chanel.hex что-бы прошить такие фьюзы:CKOPT, BOOTSZ1, BOOTSZ0, SUTO. Спасибо за помощь.

      • ReAl says:

        Ну на первый вопрос я фактически уже ответил. Чтобы прошить фьюзы WDTON, BOOTSZ1, BOOTSZ0, BODLEVEL, BODEN (и не трогать остальные) нужно указать

        -fwdton=0,bootsiz=0,bodlevel=0,boden=0

        Поскольку оба фьюза BOOTSZ1, BOOTSZ0 должны быть “прошиты” в 0, двухбитовое поле bootsiz устанавливается в 0.
        Если же все остальные должны оказаться в стёртом состоянии, то тогда либо их все нужно перечислить со значениями 1 для однобитовых полей и F для четырёхбитного CKSEL, 3 для двухбитного SUT, либо записать через _high, _low нужные маски.
        В Вашем первом сообщении _high=89 не соответствует запрошенной комбинации, так как получается ещё и CKOPT=0, а оно не біло перечислено в “нужно установить такие фьюзы”. _low был указан правильно.

        По второму вопросу

        -fckopt=0,bootsiz=0,sut=2

        так как если SUT1 остаётся в 1-ке, то (SUT1,SUT0) = (1,0) = 2 в шестнадцатеричной кодировке.
        Остальные биты останутся неизменными.
        Открывать pdf-ку ещё и на мегу32 мне не хочется, если нужно именно в _high/_low-нотации, просто соберите все битики.

  3. Alexey says:

    Можно ли добавить ключик, чтобы тип чипа определялся автоматом и он прошивался? Он ведь и так сейчас определяется, но при несовпадении с подключеным выходит. Смысл такой: я в IARe добавил в меню Tools вызов программатора, но сейчас приходится на каждый чип заводить отдельную строку :(

    • ReAl says:

      А у IAR нельзя никакими переменными в командную строку вытянуть тип микроконтроллера из проекта? ;-)

      Меня уже несколько раз просили такое сделать, но оно как-то постоянно откладывается.
      Нужно поменть в программе структуру работы, сейчас сначала проверяется всё соглсно заказанному типу микроконтроллера (влазят ли входные файлы в соответствующую память, правильно ли указаны fuses) и только если всё сошлось, то выдаётся команда входа в программирование. Если хоть что-то не так, то контроллер не трогается вообще.
      Самое противное место — Атмел для разнх контроллеров указал разные процедуры пересинхронизации, а я ещё помню времена, когда у 90s1200 при неудачно поданных (распознанных) командах терял сигнатуру. Хотя у меня такое ощущение, что фирменные программаторы используют только один способ, причём до сих пор “старый”, а не тот, который прописан в документации у всех новых кристаллов.

      Может и стоит наконец-то сделать этот +avr для автоопределения контроллера. При этом есть риск, что народ чаще будет влетать в неправильно установленные fuses, так как одна и та же комбинация CKSEL означает разные источники тктирования у разных кристаллов. Впрочем, умельцы и так умудряются дать ключ -! и зашить совершенно не то и не туда.

      • Alexey says:

        К сожалению в IARe такой возможности не нашел, можно только пути и имена файлов проекта.
        Но появилась другая идея: сделаю батник, сначала вызывается avreal для определения чипа, затем определенный чип подставляется в следующий вызов.

      • ReAl says:

        Мда… Через заднее крыльцо. Придётся таки что-то думать.

  4. Sergey says:

    Добрый день, Александр. Купил готовый программатор на FT2232 в “Космодроме”. Драйвера установил, появилось ещё два COM порта, скачал программу с Вашего сайта. Программировать ещё не пробовал. Скажите, пожалуйста, как пользоваться AVReal, и будет ли она работать с Algorithm Builder?
    Спасибо.

    • ReAl says:

      Для работы AVReAl с адаптером AVREAL-USB-SPI от MegaJohn, версию 1 которого недавно стал продавать “Космодром”, необходимо указать использование выводов микросхемы FT2232.
      Сигналы SPI в режиме MPSSE не перемещаются, сигнал RESET можно не указывать, так как он имет расположение по умолчанию. Поэтому нужно указать только два сигнала — открывающий выходную часть гальваноразвязки ADUM1401 и зажигающий единственный для платы версии 1 светодиод.
      Предполагаю, что в EEPROM не зашито поле description для FT2232 и avreal может использовать значение по умолчанию, ключи указываются для avreal 1.28r0 и старше (на сайте MegaJohn указаны для avreal 1.27 и для версии адаптера 2.2).

      Если предполагается свечение светодиода в процессе прошивки (хотя для этого лучше было бы поствить светодиод, зажигаемый сигналом разрешения выхода либо сигналом reset), то командная строка должна выглядеть так

      avreal32 -aft2232:enable=~adbus4,~acbus2 -az далее остальные необходимые ключи и файлы

      Ключ -az нужен для того, чтобы по выходу из программирования FT2232 осталась в режиме MPSSE и светодиод оптрона был надёжно открыт, выходные сигналы ADUM1401 запрещены.

      Если предполагается свечение светодиода при ошибке программирования, то командная строка должна выглядеть так

      avreal32 -aft2232:enable=~adbus4,led_error=~acbus2 -az далее остальные необходимые ключи и файлы

      Ключ -az теперь нужен ещё и для того, чтобы светодиод ошибки светился после окончания работы avreal.

      Не знаю, сами “космодромовцы” начали этот адаптер выпускать или кто-то другой предложил им это к продаже, но зря производитель ради экономии взял первую версию адаптера и не проконсультировался либо с автором адаптера, либо со мной. Непонятно, чего боялись, неужели что самим придётся перетрассировать слегка? Не хотели ставить лишние шинники — ладно, но оптимальным был бы гибрид из двух схем. Лучше было бы взять более правильную схему управления оптроном и поставить дополнительный управляемый светодиод, чтобы можно было индицировать и состояние активности программатора, и состояние ошибки при прошивке.

      По Algorithm Builder — я просто не пользовался этой программой и не знаю, как у неё с прикручиванием внешних утилит.

  5. Dmonira says:

    Странно, но почему нет поддержки готовых стандартных программаторов? Тех, что через СОМ-порт работают (протокол STK500).
    Можно ли ожидать?

    • ReAl says:

      Вопрос болезненный. С одной стороны — интересно бы. С другой — а когда? С третьей — а зачем?

      Может, лучше наконец-то добавить нормальную поддержку линейки AT89S через существующие адаптеры (судя по тому, как качают старую программу, не мешало бы) да домучить на треть сделанную поддержку FT232R.

      Для LPT у avreal были какие-то “изюминки”, а STK500 “программирует сам” и разные программы – это только разные пользовательские интерфейсы. Т.е. единственный смысл поддержки STK500 avreal-ом – это тот же интерфейс, что и при работе с LPT или FT2232. Это с точки зрения владельца STK500, естетственно. С точки зрения программы – смысл в расширении области применения, но для этого предыдущий абзац весомее.

      Интересные вещи могут быть “на стыке”. При совместной работе с автором какого-нибудь из клонов STK500 можно добавить какие-то функции и в клон, и в программу.

      • Andy Great says:

        Да, поддержку FT232R совсем не помешало бы :)

        • ReAl says:

          Это да, но тут кум попросил таки сделать программирование последовательной флеш-памяти, так что сначала будет она.

  6. mura says:

    Добрый день,
    сделал себе прог по МегаДжоновской схеме, все работает НО не горит светодиод (тот, что на 12 ноге FTDI).

    • ReAl says:

      Его надо правильно описать в конфигурации — либо добавить в enable, чтобы он загорался в процессе программирования, либо в led_ok или led_error, чтобы в конце показал статус. Во втором случае нужен ещё ключ -az для того, чтобы про окончании программирования ft2232 не переводилась назад в UART и осталось заданное значение на светодиоде.

      • mura says:

        Спасибо, помогло.
        А есть где описание всего этого в одном месте? ;)

        • ReAl says:

          Вот на этой же страничке немного выше есть линк

          Link to AVReAl description - screenshot

          Можно пойти по нему и увидеть описание ключа -a
          Там можно увидеть аргумент PINMAP
          А вот уже там после описания формата запсией, в том числе и для светодиодов, можно прочесть:

          Для микросхемы FT2232 выход из битового режиме MPSSE по окончании программирования возвращает канал в основной режим, прописанй в EEPROM (как правило, UART), поэтому для корректной индикации необходимо использовать ключ -az.

          Конечно, это всё лучше бы переложить на более видное место, но и туда путь недолог.

  7. Plantis says:

    Добрый день. Я новичок, нужен хелп. Спаял программатор на базе FT2232. Раньше работал через Atmel STK*00.

    пишу вот это.
    avreal32.exe +mega16 -% -aft2232 -r test1.a90

    Мне выдаёт вот такое.
    Invalid value ‘ft2232′ for switch a

    Вроде всё правильно пишу :(

    • Plantis says:

      Скачал свежую прогу – стало легче.

      Но теперь пишет вот такое –
      No FTDI “port” switch found

    • Plantis says:

      Microsoft Windows XP [Версия 5.1.2600]
      (С) Корпорация Майкрософт, 1985-2001.

      U:\>r1

      U:\>avreal32.exe +mega16 -% -aft2232 -r test1.a90

      avreal/WIN32 – AVR controllers LPT programmer by Redchuk Alexandr
      v1.28r1 (Jan 31 2010 16:43:36) http://real.kiev.ua/avreal
      bug-reports, suggestions and so on mail to avreal@real.kiev.ua
      Command:
      +mega16 -% -aft2232 -r test1.a90
      No FTDI “port” switch found
      device with default description “Dual RS232 A” will be used
      Can’t get function ‘FT_Reload’ from library ‘ftd2xx.dll’
      Операция успешно завершена.

      U:\>

      • ReAl says:

        “No FTDI “port” switch found” – это не ошибка, это предупреждение, что для открытия необходимй микросхемы будет использовано описание по умолчанию, “Dual RS232 A” для FT2232C/L/D

        Can’t get function ‘FT_Reload’ from library ‘ftd2xx.dll’ – по-видимому, надо обновить и драйвер/библиотеку FTDI. C 2.06.00 всё работает.
        Эту функцию я сейчас не использую, можно и удалить из кода запрос на подключение, но лучше всё таки свежие драйвера поставить, так как ещё что-то может вылезть.

        • Plantis says:

          Скачал новую ддл библиотеку. Он всёравно пишет об Can’t get function ‘FT_Reload’ from library ‘ftd2xx.dll’.
          Кстати, при подключении программатора виндовс выдает, что подключено устройство, которое невозможно определить.

        • ReAl says:

          Только что на всякий случай перегрузился и проверил 1.28r1, в XPsp2 (та же самая Microsoft Windows XP [Версия 5.1.2600]) установлены драйвера FTDI 2.06.00. Всё работает.
          Вы уверены, что библиотека реально заменилась? Быть может, старая версия лежит возле avreal или раньше по PATH, чем новая, может, новая совсем не установлась.
          Тем более, что программатор не распознаётся – явно что-то не то с установкой.

          • Plantis says:

            Сейчас поиском найду все dll’ki ftd2xx и удалю их + почищу от драйверов на FTDI. А как проверить правильно ли спаял я программатор:) Я прозвонил все дорожки и лапки чипа, на наличие контакта. Проверил правильность распайки. Вроде бы все нормально. Есть ли еще методы проверки правильности спайки всей схемы. Возможно какой-то из элементов оказался бракованный.

          • Plantis says:

            Короче, ничего не помогает. Мой комп не хочет находить плату, которую я подсоединяю к нему. Короче ни фига не получаецо… Я уже не знаю, что делать.

          • Plantis says:

            Кстати, когда я набираю. avreal32 -aft2232 – выдается ошибка – программа avreal32.exe , обнаружена ошибка и программу будет закрыта.

            • ReAl says:

              Известно.
              http://real.kiev.ua/2010/03/04/bug-in-avreal-a-swicth-1-28r0-1-28r1/
              Уже готова новая версия с исправлением существенной ошибки, там и эта мелочь исправлена. Заодно убрал динамическую линковку функции FT_Reload, всё равно сейчас не используется. Ещё проверю и на днях выложу. Посмотрим, что будет.
              Вы пока единственный, у которого такое выскакивает, хотя FT2232 пользуется куча народу. Что-то не так с библиотекой.
              Недавно проверял работу под XP/32, XP/x64, Win7/32, Win7/x64 – с чистых инстлляций ОС и со свежезагруженными драйверами 2.06.00. Везде всё работало.

              • Plantis says:

                Возможно у меня проблема с платой? хотя комп определяет подключенное устройство как – USB Serial Converter A and B. Возможно какая-то деталь попалась неисправная?

              • ReAl says:

                Та хто його зна, що там робиться.
                Если устройство определилось, то avreal должен с ним работать — показывать его по -aft2232 -p? и по крайней мере пытаться программировать.
                Невозможность подключить функцию из библиотеки от этого не зависит — она должна подключаться, если ftd2xx.dll есть независимо от наличия и исправности плат.
                В очередном обновлении убрал линковку этой функции, пробуйте. Но странно это. У меня-то всё работает с этими драйвером+библиотекой. И не только у меня.

              • Plantis says:

                F:\>avreal32.exe +mega16 -% -aft2232 -r test1.a90

                avreal/WIN32 – AVR controllers LPT programmer by Redchuk Alexandr
                v1.28r2 (Apr 19 2010 11:42:49) http://real.kiev.ua/avreal
                bug-reports, suggestions and so on mail to avreal@real.kiev.ua
                Command:
                +mega16 -% -aft2232 -r test1.a90
                No FTDI “port” switch found
                device with default description “Dual RS232 A” will be used
                % ‘ftd2xx.dll’ successfully loaded
                % FT2232 MPSSE SPI adapter created, SCK frequency 188kHz
                % Reset
                % PgmOn reply FF FF 53 00
                % Synchronised after 1 try
                % GetID reply 00 30 00 FF
                % GetID reply 00 30 00 FF
                % GetID reply 00 30 00 FF
                % Read ID: 0xFFFFFF
                Device connected, but not recognised, ID: 0xFFFFFF
                % Read Lock command 58 00 00 00, reply 00 58 00 C0
                Chip locked – reading and programming disabled
                % Read Osccal command 38 00 00 00, reply 00 38 00 FF
                % Read Osccal command 38 00 01 00, reply 00 38 00 FF
                % Read Osccal command 38 00 02 00, reply 00 38 00 FF
                % Read Osccal command 38 00 03 00, reply 00 38 00 FF
                Can’t continue

                Reset pin released

                Похоже работает. Но у меня похоже накрылся микроконтроллер. Я его программнул раньше у товарища. У меня моргал один диод, а теперь не моргает.

                Спасибки… Поеду куплю Атмегу16 новую… потом посмотрим.

              • ReAl says:

                И в тех же условиях 1.28r1 рассказывает, что не видит функцию FT_Reload в библиотеке ftd2xx.dll ?
                Странно.

          • Plantis says:

            Вставил программатор в другой комп и воллля.!.. комп нашёл рс-232 дуал – бла-бла-бла
            Но проблема с невозможностью найти – can’t get function ‘FT_Reload’ from library ‘ftd2xx.dll’ – осталась

      • ReAl says:

        Проверил работу avreal32-1.28r1 c ftd2xx.dll из драйверов версий

            CDM 2.02.04 WHQL Certified (2007-06-27)
            CDM 2.04.06 WHQL Certified (2008-13-03)
            CDM 2.04.16 WHQL Certified (2009-02-17)

        Ну и ещё раз с самыми свежими

            CDM 2.06.00 WHQL Certified (2009-10-22)

        Везде функция FT_Reload нормально подгружается. Интересно, в чём дело у Вас на компьютере.

  8. Ярослав says:

    ReAL, в конференции caxara.ru Вы задавали вопрос про транслятор уровней с третьим состоянием на выходе? Отвечаю – 74lvc1t45 и 74lvc2t45 на четвертой странице документации от Philips написано, что при трансляции с низковольтной части в высоковольтную и при не подключенном GND (”don’t care” – что бы это значило?) выходы имеют третье состояние, там же написано, что, если VCC-A или VCC-B будут иметь тот же уровень, что и GND, то устройство входит в спящий режим (наверное это и имелось ввиду, про “don’t care”).

    А теперь встречный вопрос той же тематики – не подскажете ли трансляторы уровней, доступные в Украине для
    1. 1Lo -> 1Hi + 1Hi -> 1Lo (без переключателя направлений в одном корпусе?)
    2. 2Lo -> 2Hi + 2Hi -> 2Lo (без переключателя направлений в одном корпусе?)
    3. 4Lo -> 4Hi + 4Hi -> 4Lo (без переключателя направлений в одном корпусе?)
    4. 4Lo 4Hi (с переключателем направлений в одном корпусе?)
    5. 8Lo 8Hi (с переключателем направлений в одном корпусе?)

    Заранее спасибо!

    • Ярослав says:

      5. 8Lo 8Hi (с переключателем направлений в одном корпусе?)
      нашел.

    • ReAl says:

      Опять прошу прощения за задержку. Несколько дней, включая субботу, приходил домой поздно.

      Не “при неподключенном GND”, а “при напряжении питания, равном GND”. При этом состояние входа DIR – don’t care, несущественно.
      На это “Vcc isolation” в 1T45 внимание обратил, но что-то мне там не понравилось и я решил посмотреть поведение на макете, но забыл — спасибо за напоминание.
      Кстати, та же особенность есть у 74LVC1G125, 74LVC1G240, 74LVC8T245, имеющих и вход OE – похоже, функция делалась под hot swap. Правда, 74LVC8T245 в Имраде “мерцает”, то можно купить, то нельзя, а 1T45 чаще бывает в варианте 74AVC — более быстром, чем 74LVC, но с диапазоном питания 1,2-3,6 а не 1,65-5,5 вольт.

      Хорошая микросхема, проскочившая в том обсуждении – sn74avc4t774, но она не просматривается в окрестностях Киева в штучных количествах. Четыре 1T45, дополненные одним общим входом OE.
      Как 8-разрядный можно взять упомянутый SN74LVC8T245.

      Есть ещё два типа трансляторов
      C push-pull выходным каскадом и встроенным bus keeper
      Analog Devices ADG3300, ADG3301, ADG3308 и TI TXB0104 с компанией. Всё хорошо, но при внешнем pull-up в десять килоом, не говоря уже о паре-тройке, работать не будет.

      На проходных ключах NXP GTL2003, и несколько более навороченные TI TXS0104 (пожалуй, самые приятные из имеющихся). Ещё шинные коммутаторы SN74CBT3244 в качестве таких трансляторов использовались, а SN74CB3T3245 в том числе для этого и предназначены, но я не пробовал.

      Что-то из этого всего я видел, но не знаю, насколько доступно сейчас.

  9. Ярослав says:

    Александр, здравствуйте!
    Я, наверное, не первый и далеко не последний, кто очень хочет шить xMega (хотя бы серии А1)
    через LPT по интерфейсу PDI.
    Я так понимаю, что вы еще не реализовали эту функцию из-за нехватки времени на разбор полетов с этим самым PDI.
    Я Вам помогу – gaw.ru перевел документацию на хмега на русский и даже про картинки не забыл:
    Страница с описанием PDI – http://www.gaw.ru/html.cgi/txt/doc/micros/avr/arh_xmega_a/29_3.htm
    Родительская страница – http://www.gaw.ru/html.cgi/txt/doc/micros/avr/arh_xmega_a/index.htm
    Сообщите Ваши намерения по поводу интерфейса PDI, исходя из вышеуказанного, пожалуйста.

    • ReAl says:

      Нехватка времени – это само собой (не могу понять, куда оно утекает всё убыстряясь – вроде ничего и не сделал, а день/неделя/месяц/год куда-то ушли). Но перевод тут не поможет – пусть я и не очень хорошо знаю английский, но техническую документацию читаю сравнительно легко и предпочитаю англоязычный оригинал.

      Посмотрите сами пункт 29.3.2 упомянутого документа – частота тактирования PDI_CLK ограничена снизу величиной “около 10 кГц”. Это означает, что пауза в обращениях к LPT величиной в 100 мкс наверняка отключит интерфейс программирования. Я не берусь гарантировать отсутствие таких пауз во время сессии программирования под любой из современных ОС.
      Так что обойтись одним шинником и LPT не выйдет.
      Дешевле и проще, чем программатор на 90usb162 (тема на электрониксе) врядли получится.

      • Ярослав says:

        С паузами – согласен, с “дешевле и проще” – нет.
        Дешевле – это 2313, а вышеуказанную модель в Днепре не купить точно, а в Киеве – нету, есть только модели стоимостью от 100 грн., что, в принципе, не плохо, но – программирует ее только АВРСтудио, а я ее не использую (три дня назад первый раз за 7 лет поставил и запустил), хотя сейчас она стала заметно лучше, нежели 7 лет назад, дебаг неплохой, но нет протоколирования в виде графиков по пинам, а для моей задачи, из-за которой я в сторону хмега с 32МГц вообще смотреть стал, это существенный минус. сейчас занимаюсь написанием проги для реал-тайм визуализации логов порта, который в АВРСтудио можно в текстовый файл выводить.

        • ReAl says:

          Прошу прощения за задержки, в дурном режиме сейчас.

          tiny2313 это “дешевле”, но не “дешевле и проще”
          Да, 90usb162 дороже tiny2313 раза в три с кепкой, если смотреть по киевскому “Имраду” и харьковскому “Космодрому”, но если учесть разъёмы, плату, …, то разница не такая и большая. Зато готовый проект и достаточно универсальная вещь.

          “программирует только АВРСтудио” – не понял, о чём.

          • Ярослав says:

            Спасибо за Имрад. Я кроме симметрона и биакома ни с кем не работал. а на биакоме только AT90USB1287-AU имеется, зато на биакоме ATxmega64A1-AU – значительно дешевле стоит (в три раза!).
            И все-таки, чем программировать микрухи через в итоге полученный AVR ISP MK2? (кроме АВРСтудио).
            Спасибо!

            • ReAl says:

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

      • Ярослав says:

        я про программатор AVR ISP MK2

  10. Юрий says:

    Александр, здравствуйте!
    Докладываю Вам, что кристаллы без буквы (Р, А, РА) почти не поставляются.
    Прошил mega48PA как 48Р, вроде без проблем. На подходе mega16A/32A.
    В списке их не вижу. Можно ли их шить в лоб? Signature, кажется, одинаковые.
    По-возможности, пожалуйста, уточните список в части букв.
    Спасибо! Савицкий Юрий, Киев.

    • ReAl says:

      Доброго дня, Юро!
      Вибач за затримку, вчора не до відповіді було.
      В більшості випадків літера А свідчить лише про зміну технології у Atmel, тобто кристал просто менше їсть і працює без розбраковування в усьому діапазоні напруг. З точки зору програматора кристал той же, сигнатура, fuses – все однакове. Для тих же atmega32/atmega32A в документі AVR521: Migrating from ATmega32 to ATmega32A як різниця вказані лише струми споживання та номінал reset pull-up.

      Зараз перелік складено за таким суб’єктивним принципом – якщо з точки зору компілятора gcc кристали однакові, то вони не прописані і у avreal окремо, щоб не роздувати перелік. Якщо кристали з точки зору програматора однакові (включно з сигнатурою), але мають різний набір регістрів і різні ключі для avr-gcc, то вони в avreal прописані через ‘|‘ – наприклад, tiny2313|tiny2313A.
      У випадку з atmega48 та atmega48P є різні h-файли, бо у них різний набір регістрів, не співпадають і сигнатури – кристали різні і з точки зору програматора.
      Для atmega48PA використовується той же h-файл і той же ключ -mmcu=atmega48p, що і для atmega48, з точки зору компілятора та програматора вони однакові.

      Але якщо такі питання виникають, то я згоден, що краще таки внести відповідні синоніми для всіх варіантів.

  11. [...] avreal/WIN32 – AVR controllers LPT programmer by Redchuk Alexandr v1.28r1 (Jan 31 2010 16:43:36) ReAl
    Command: +TINY2313 -p1 -o0 -% -e -w [...]
    Do I have to do something with the bin to make it a hex? or can someone suggest a different method?

  12. YS says:

    Доброго времени суток! Большое спасибо за замечательную программу. Вопрос следующий: будет ли поддержка FT232R (не FT2232, а именно FT232R) в режиме bitbang, как в avrdude? Просто FT2232 мне не достать, а на avrdude переходить не хочется, уж больно к avreal привык :-) .

    • ReAl says:

      Да, да, я прекрасно понимаю, что именно FT232R (FT245R с этой точки зрения то же самое).
      За неё я уже брался, но мне кое-что не понравилось, подробнее тут. Уже бы и закончил, но за прошедший месяц навалилась куча всего, от массового выхода из строя техники до поездок, отнявших выходные.
      Рабочее место и внутреннее состояние практически восстановлены, но я, пользуясь случаем, проверяю установку драйверов на “чистую” машину.
      В ближайшее время поддержка R будет. Естественно, с -o0, кнопкой, …

  13. Сергей says:

    Добрый день, Александр!
    Собрал схему USB программатора на FT2232D по схеме из раздела «Адаптеры» на Вашем сайте, однако ни один из трех приборов с контроллером ATMega128 не прошился. Причем, эти приборы до этого прекрасно прошивались байт-бластером. Действовал так: установил скачанные с сайта FTDI драйвера версии 2.6.0.0 (последние на данный момент) и Вашу программу версии 1.28r1. Программа увидела программатор, установила его в режим MPSSE и начала работу. Однако практически в самом начале прибор выдает ответ вида FF FF FF FF, и программа выдает ошибку Synchronization lost. Иногда правильно читаются сигнатура и lock-биты, иногда потеря синхронизации случается и на этом этапе. Пытался задавать частоту SCK и задержки программирования, однако это не дало видимого эффекта. Пытался посмотреть импульсы осциллографом, и фронты, и уровни нормальные. Возможно, важны какие-то настройки драйвера FTDI? Или какие-то другие нюансы?

    • ReAl says:

      После выхода из строя двух дисков как раз на днях более-менее восстановил рабочую конфигурацию и сегодня под XP32sp2 с нуля поставил именно эту версию драйверов. Никаких дополнительных настроек,
      Версия программы 1.28r1 увидела мегу128, сравнила прошивку с файлом, который был зашит ранее. Проверялось с частотой по умолчаию и с -o7373.
      Правда, адаптер другой, с формирователем, а соответствующая сайту макетка сейчас в гостях у товарища. Но это неcущественно.

      Импульсы на выходе TXD0/PDO меги128 тоже нормальные и сответствующие VCCIO FT2232? До микросхемы доходят?

      • Сергей says:

        Электрически вроде бы все правильно, хотя очень сложно оценить фронты импульсов – программа очень быстро выходит на ошибку. А задаю команды я правильно? avreal32 +mega128 -aft2232:reset=adbus3:mosi=adbus1:miso=adbus2:sck=adbus0 -pd=”Dual RS232 A” -c a.hex -v -%% -os125kHz -az – это для верификации, схема, повторюсь, один-в-один как у Вас. Не нужно ли там каких-то инверсий для меги?

        • Сергей says:

          Проблема решилась установкой буфера типа 74HС244 (как для байт-бластера) между выводами FT2232 и мегой

        • ReAl says:

          Для схемы с сайта можно вообще не указывать расположение выводов и порт – это всё по умолчанию возьмётся. Просто avreal32 -aft2232 достаточно.

          Могло не работать из-за того, что по умолчанию у FT2232 установлены слабые “стандартные” выходы, которые не потянут, к примеру, 1-килоомную подвязку на RESET.
          Буфер эту проблему решил.

  14. Dmitry says:

    Доброго времени суток!
    Прежде всего хочу поблагодарить за замечательную программу!
    Пользуюсь ею уже очень давно где-то с 2003 или около того.
    Приятно, что проект жив и развивается!
    Понятно, что LPT уже не много осталось, а жаль (столько воспоминаний ;-) )
    При случае надо будет опробовать FTDI – всё руки не доходят.
    По поводу LPT – по работе копался в инете и прочих MSDNах на предмет доступа к портам из ring3 в XP и результатом этих копаний стала DLL с возможностью работы через следующие драйвера
    DLPORTIO.sys
    GIVEIO.SYS
    mcdbio.sys
    porttalk.sys
    Pgdhdlc.sys (aka altlpt1 – родной драйвер Altera ByteBlaster для MaxPlus)
    при этом допускается автоматическая загрузка любого из перечисленных драйверов если у него стоит загрузка службы “по требованию”.
    Или вообще без драйвера через отладочные функции PZwSystemDebugControl из ntdll.dll
    ну и естейственно напрямую для WIN9x (если оно ещё где-то осталось)
    DLL частично совмистима с dlportio.dll и нормально работает с avreal v1.25rev4 (более поздние не проверялись)
    если нужно – обращайтесь odv000gmailcom

    • ReAl says:

      Ой, “я не успеваю глотать” :-)
      Сейчас смотрю на вариант допиленной до совместимости с dlportio 64-битной версии InpOut32 http://electronix.ru/forum/index.php?s=&showtopic=53528&view=findpost&p=715124
      Под 32-битными ОС, судя по сообщениям раее в той же теме, работает и “обычная” dlportio.dll, так что Ваша библиотека интересна для 32 бит в том, что не нужно ставить комплект dlportio при наличии другого драйвера. Постараюсь найти время и посмотреть.

  15. Доброго дня, Александр
    в данный момент я пишу книгу о микроконтроллерах. Книга будет комплектоваться диском.

    я прошу Вашего разрешения на размещение Вашей программы на этом диске.
    Заранее Вам благодарен :)

    ps
    стиль изложения показан на этой страничке: http://pic-avr.narod.ru/MK-teoriya.htm

    • ReAl says:

      Не имею ничего против.
      Внимательно страничку посмотрю позже, черкну пару строк в почту.

  16. Артур says:

    Здравствуйте Александр!
    1.Помогите советом: программирую Вашей программой ATTINY2313, весь код программирует нормально, только предпоследнюю строку программирует неправильно:
    должно быть:
    :1007F0008DB3E81719F0EDBBE29AE19A9FBF089517
    :00000001FF
    программирует так:
    :0E07F0008DB3E81719F0EDBBE29AE19A9FBFB6
    :00000001FF
    2.И еще программа не выполняет верификацию, ключ -v, пишет Verifying CODE memory
    …. passed

    • ReAl says:

      Раз верификация совпала, значит он как-то неправильно прочёл сам файл, зашил не то и сверил с тем, что и шил – но это как-то странно, такая ошибка давно должна бы была вылезть.
      Давайте в почту конкретный файл и какой версией шилось, я найду tiny2313 и попробую. И проверю правильность зачитывания файла.

      • ReAl says:

        Такое впечатление, что нужен не файл, а командные строки, которые использовались для записи, для чтения, для верифкации.
        Мне кажется, что запись идёт без ключа -n, а чтение и верификация – с ним.
        Или запись тоже с ним, но предупреждение “Can’t write number of erases, locations used for code” не было замечено.
        При чтении с -n последние два байта флеша просто игнорируются по смыслу ключа, а вот при верификации avreal должен был бы так же обидеться на сочетание -n и заполненности последних двух байт флеша, но этого не сделал.
        Ошибка некритическая, будт подправлена с очередным релизом.

        • Артур says:

          Здравствуйте Александр!
          Да, я уже разобрался в чем была причина. Действительно при записи и при считывании я задал ключ -n. Поэтому и видел такой результат. Потом убрал ключ и все стало выглядеть как нужно. Я так понял (и согласно Вашего описания к ключам), на запись этот ключ ни какого влияния не оказывает, только при считывании и отображении результата. Только не понятно зачем программа берет при считывании эти два байта и показывает как количество стираний, если эти бва байта заняты программой т.е. показывает не истенное количество, а то число, которое зашито у меня в коде. Большое спасибо за ответ. :-)

          • ReAl says:

            На запись – если место в коде не занято, то пишется счётчик стираний.
            При чтении программа просто не знает назначение этих байтов (при записи негде было поставить пометку, что туда пошёл не счётчик, а код ;-) ), поэтому полностью доверяет ключу -n.
            А вот при верификации опять есть точка отсчёта – HEX-файл – и avreal должен вести себя не как при чтении, а как при записи. Я это поправлю как только снова полезу в исходники.

        • ReAl says:

          Мда. Вроде бы и не сонный был, когда проверял…
          Всё нормально avreal верифицирует, сверяет все байты из входного файла.
          Просто молча игнорирует ключ -n.
          Так что это и не ошибка вовсе.

  17. Влад says:

    Спасибо, Александр, за программатор.
    Решил попробовать USB программатор на FT2232. Купил готовый модуль FTDI с чипом FT2232H. AVReAl находит устройство, но работать с ним отказывается. пишет что не совпадают параметры. Отличие состоит только в последней букве чипа FT2232H (программа поддерживает FT2232C). Помимо всего, компания FTDI не рекомендует в новых разработках использовать чипы FT2232C. Как я полагаю, Вы проверяете только FT_DEVICE_2232C на возможность использования. Может просто надо добавить возможность использования FT_DEVICE_2232H?!

    Заранее спасибо.

    • ReAl says:

      Ну кроме FT2232C есть ещё FT2232L, FT2232D. Библиотека FTD2XX для всех трёх выдаёт тот же код FT_DEVICE_2232C.
      FT2232H отличается числом сигналов в группе CBUS, возможностью работать в MPSSE в обеих каналах A и B, возможностью работать на более высоких частотах SPI (хотя после сброса она устанавливает ту же базвую частоту, что и FT2232C/L/D).

      Поддержку FT2232H и FT4232H я добавил как раз на прошлой неделе, но хотел ещё потестировать и добавить (для всех адаптеров) ещё одну возможность, поэтому на сайте версия 1.28r1 появится немного позже, а бета-версию для Win вышлю сегодня на указанный в комментарии адрес.

      • Влад says:

        Спасибо, Александр! Получил бета версию. Буду пробовать. Результат обязательно сообщу.

  18. Dmitry says:

    Александр, спасибо за отличный программатор, низкий поклон человеку создавшему AVReAl. Три года назад спаял для LPT и использую по сей день. Пару раз сжигал буферную ис, когда источник был Г..
    Однако время LPT ограничено, а в ноутбуке его вообще нет. Нет ли варианта AVReAlа для USB? А если есть, то где можно взять инфу?
    Заранее спасибо.

    • ReAl says:

      Я чего-то не понимаю.
      На этой же страничке, к которой комментарий – выше написано “и с USB-адаптерами на микросхеме FT2232″.
      А немного ниже – “Для более детальной информации посетите эту страницу” и линк на описания, там уже и про адаптеры.
      Под WP я ещё не всё перетащил.

  19. Plantis says:

    На базе какой схемы можно собрать программатор?

    • ReAl says:

      Как-то даже тяжело ответить…
      На базе любой из указанных + любой из тех, на которые есть ссылки на страничке адаптеры. Зависит от интерфейса подключения (LPT, USB) и имеющихся ресурсов.

      • Plantis says:

        Спасибки. Я вот какраз и искал эту ссылку – на адаптеры. Никак не мог найти. :)

        • ReAl says:

          Выше, перед списком поддерживаемых программатором микроконтроллеров, ссылка “Для более детальной информации…”, а уже там вверху линки “Адапетры”, “FAQ”, …

  20. West says:

    Здравствуйте. Александр, очень надо (надеюсь, не только мне) поддержка AT89S51.

    • ReAl says:

      И, макая в сало коркой,
      продолжая ровно есть…

      Это дело “частично есть”.

      Частично – так как оно срочно писалось по спецзаказу конкретного человека отдельной программой, до интеграции в основню руки так и не дошли.
      AT89S51, AT89S52. Только LPT (кажется, уже с возможностью задать конфигурацию ножек), только Win32 + dlportio.

      Если устроит – могу порыться по архивам, проверить и выложить ещё тот exe.
      Ну и опять встанет в очередь, раз вопрос поднялся.

      (эпиграф отсюда)

  21. Александр, не планируете ли вы дополнить возможности программатора высоковольтным последовательным программированием, конечно при условии доработки адаптера. Спасибо.

    • ReAl says:

      Давайте я сначала доделаю таки обещанный год назад режим Sync Bit-Bang для FT232R и FT2232, а потом отвечу :-)
      Интерфейс ВВ-программирования отличается от “низковольтного”, аппаратный MPSSE у FT2232 тут не помощник, а LPT всё-таки уходит и только ради него не очень и хочется возиться.
      У меня в ВВ-программировании заинтересованности до сих пор не было, потому и не делалось до сих пор. Будет время – придвинусь плотнее. Собствено, и SBB так тянется потому, что меня вполне устраивает MPSSE на FT2232. Нет потребности ни в -o0, реализуемом через SBB, ни в очень низких частотах программирования, которые невозможны через MPSSE.

      • Спасибо за ответ. А нет ли у Вас ссылки на описание алгоритма ВВ последовательного программирования. Для своих целей я и сам бы смог написать программатор, в былые годы так и делал для последовательных и параллельных PIC-ов, AT89C4051.
        Пробовал искать описание алгоритма ВВ последовательного программирования, но не нашел. Параллельное программирование нашел.
        Этот тип программирования интересует с целью использования ножки RESET в своих конструкциях в качестве ноги I/O. При использовании 8-ногих AVR лишняя нога никогда не мешает.

        • ReAl says:

          Так в документации на соответствующие микроконтроллеры, раздел Memory Programming.

  22. Oleg says:

    Упс, не просмотрел всю страничку… Пардон за флуд

  23. Oleg says:

    Доброго времени суток!
    Александр, а скажите пожалуйста – как скоро будет поддержака XMEGA? :)
    С уважением,
    Олег

  24. Дмитрий says:

    Подскажите пожалуйста, программа в avreal написана в таком вот виде
    c:\prog\avreal32.exe -p0378 -as +atmega88 -o1Mhz -e -w -c Alf1.hex -v -fckdiv=OFF -l2
    Нам нужно отразить те же команды в Flash Pro 400.
    Что нужно выбрать из списка?
    CKSEL(0)=1 CKSEL(1)=1
    CKSEL(2)=1 CKSEL(3)=1
    SUT(0)=1 SUT(1)=1
    CKOUT=1 CKDIV8=1
    BODLEVEL0=1 BODLEVEL1=1
    BODLEVEL2=1 EESAVE=1
    WDT ENABLE SPIEN=1
    DWEN=1 RSTDISBL=1
    BOOTRST=1 BOOTSZ0=1
    BOOTSZ1=1 CAL BYTE ENABLE

    Что из вышеперечисленного нужно выбрать, чтобы все соответствовало строчке в avreal?
    Спасибо

    • ReAl says:

      -fckdiv=OFF, по-видимому, соответствует CKDIV8=1
      А вот всё остальное… В avreal отсутствие fuse в ключе -f означает “оставить то значение, которое сейчас запрограммировано в кристалл”. Так что всё зависит от того, что было записано ранее.

  25. Леонид says:

    Добрый день!
    Рацпредложение: выделить пожирнее и поярче ссылку на документацию, очень долго искал ее (у меня в браузере она почти одного цвета с цветом обычного текста)

    • ReAl says:

      Сделал поярче. Не скажу, что мне сильно нравится, но “пусть временно побудет так” ™

  26. Андрей says:

    Добрый день.
    AVReal использую уже давно. Очень удобная программа. Спасибо.
    Вопрос: а будут ли поддерживаться контроллеры серии Xmega? Если будут, то как скоро?
    С уважением,
    Андрей

    • ReAl says:

      Обещать ничего не могу. В неких общих планах это есть, даже макетка с xmega заведена, но времени и на более простые доработки не хватает.

  27. wired says:

    Приємно вражений українською сторінкою. респект, як кажуть.
    Досі користувався LPT версією Альтеровським байтбластером, все класно працює.
    Тепер вимушений перейти на ЮСБ, відповідно схема буде на FT2232.
    чи правильно буде в командній строчці лише поміняти -ab на -aft2232 ?

    • ReAl says:

      Якщо вона без зовнішньої EEPROM – тобто без змін VID/PID/description, і якщо вона без зовнішніх буферів, які треба відкривати – приблизно як на схемі в описі адаптерів, то досить. Ключ -p взагалі прибрати.
      Якщо якісь зміни – читайте опис, там все є.

  28. Alex says:

    А как можно скачать программу и описание?

    • ReAl says:

      А там в тексте “посетите эту страницу” – линк http://real.kiev.ua/old/avreal/ru
      Программа в архивах, описание на страничке, пока как копия старого сайта.

      Надо почётче выделить линки? Гляну стили, подправлю.

  29. Igor says:

    Дякую! Сьогодні розібрався як шити. Дуже здивувала різниця в швидкості порівняно з кодє-віжном! Використовую STK-200 best майже по схемі з lancos. CVAVR чомусь не вдається шити EEPROM при мінімальних Delay Multiplayer, його доводиться збільшувати і в мене виходить, що avreal шиє у 10 разів швидше!

  30. Ruslan says:

    Нє, усе правильно зашивається. Розширення не має значення. .eep файл теж прекрасно зашився. використовую програматор USB FT2232. Дуже вдячний за такий швидкий та надійний спосіб програмування. Використовую давно, починав з LPT.
    Руслан Підопригора. Франкфурт-на-Майні.

  31. Ruslan says:

    Доброго дня, пане Олександре. Був приємно здивований українською сторінкою. Насправді нас, українців іще багато, що радує. Хотів подивитися, чому не підтримується запис файлу EEPROM з розширенням .eep, щр генерує CVAVR, і – бац…сюрприз!
    І це прекрасно. То як, доведеться перейменовувати, чи існує інший спосіб (наприклад, підтримка .eep файлів). Вдячний за відповідь. Руслан Підопригора. Франкфурт-на-Майні.

    • ReAl says:

      А що там за формат файлу у CVAVR?
      Бо ті скрипти для avr-gcc, що я використовую, теж для EEPROM генерують файли з розширенням .eep, але всередині HEX і все програмується.
      Пришліть мені на пошту зразок з відомим вмістом EEPROM

      Додано: поки писав, вже все з’ясувалося :-)

Leave a Reply

Anti-Spam Protection by WP-SpamFree

[flagcounter image]