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).

 86RF401
 90S1200    90S2313     90S4414     90S8515     90S4434     90S8535
 90S2333    90S4433     90S2323     90S2343
 tiny12     tiny22L     tiny22      tiny13|tiny13A
 tiny2313|tiny2313A     tiny4313
 tiny15     tiny25      tiny45      tiny85
 tiny26     tiny261|tiny261A        tiny461|tiny461A        tiny861|tiny861A
 tiny24|tiny24A         tiny44|tiny44A          tiny84|tiny84A
 tiny1634
 tiny43u    tiny48      tiny88      tiny87      tiny167
 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         mega165A
 mega325|mega325A       mega325P    mega3250    mega3250P
 mega645|mega645A       mega6450|mega6450A
 mega169|mega169P|mega169PA         mega169A
 mega329|mega329A       mega329P|mega329PA      mega3290    mega3290P
 mega649|mega649A       mega6490|mega6490A
 mega640    mega1280    mega1281    mega2560    mega2561
 90pwm2|90pwm3          90pwm1|90pwm2B|90pwm3B  90pwm216|90pwm316
 90pwm81    90pwm161
 mega16M1   mega32M1    mega64M1    mega32C1    mega64C1
 mega8HVA   mega16HVA   mega16HVB   mega32HVB   mega8HVD
 mega128RFA1

446 Responses to “AVReAl – ISP programmer for AVR”

  1. warrior2031 says:

    И снова здравствуйте! Хочу спросить поддерживает ли Ваша программа программаторы на микросхеме ft232rl фирмы FTDI?

  2. warrior2031 says:

    avreal32-1.28r5.exe +mega8535 -p1 -ax -o1Mhz -% -e -wp -v+ -c data_tranform.hex -fcksel=7 >> output.txt
    pause

    Шью atmega8535 надо настроить на внешний кварц 8 МГц.

    1 111 3.0 – 8.0 12 – 22

    Вот строчка из даташита. 1 – CKOPT, CKSEL, частота и емкость конденсаторов.

    Фьюз остается в 1. Что делаю не так?

    • ReAl says:

      Не понял, кто “остаётся в 1”? CKOPT для 3..8 МГц с малым размахом в 1 и нужно.

      В табличке CKOPT и CKSEL3..1. CKSEL0 ниже в табличке с SUT (это они намудрили знатно) и для кварца CKSEL0 также в 1-ке.
      CKOPT указывать отдельно.
      Поэтому для кварца 8 МГц надо -fckopt=1,cksel=F,sut=3 ну или другой SUT в зависимости от характеристик подачи питания и BODEN.
      Или -fckopt=0,cksel=F,sut=3 для большого размаха на выходе генератора.

      А ckesl=7 это внешний RC, так что цепляйте резистор с ножки XTAL1 на питание и перешивайте фьюзы на нужные.

      • warrior2031 says:

        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:
        +mega8535 -p1 -ax -o1Mhz – -e -wp -v+ -c data_tranform.hex -fckopt=1,cksel=F,sut=3
        Adapter enabled
        Device connected, mega8535 detected
        Chip not locked
        Device erased
        Device connected, mega8535 detected
        Fuses
        OSCCALs = A3 A2 9D 9F
        _LOCK = 0xFF
        BLB1 = 3
        BLB0 = 3
        _LOW = 0xE1
        BODLEVEL = 1
        BODEN = 1
        SUT = 2
        CKSEL = 1
        _HIGH = 0xD9
        S8535C = 1
        WDTON = 1
        CKOPT = 1
        EESAVE = 1
        BOOTSZ = 0
        BOOTRST = 1
        Programming CODE memory
        done (59ms)
        Verifying CODE memory
        passed
        done (140ms)

        Reset pin released
        Adapter disabled

        • ReAl says:

          Ой, оно действительно и не попыталось шить fuses… Тю.
          Я обычно фьюзы шью отдельным вызовом, без hex-ов (один раз для нового кристалла) и сегодня проверял так же.
          Но при проверке очередных версий avreal вроде бы проверяю в разных комбинациях.

          Пока попробуйте отдельным вызовом, ая поищу, где ошибка пролезла. Кое-что менял, мог и задеть.

        • ReAl says:

          Epic Fail…
          Не сразу и смог добиться того же эффекта.
          Оказалось, беда приходит вместе с ключиком -v+. Если использовать просто -v, то всё отлично работает.
          И это начиная от 1.28r2 и до самой свежей на данный момент 1.28r6.
          В 1.28r1 ещё всё нормально.

          Интересно, как я смог этого добиться 🙂
          Спасибо за выявление ошибки.

          • warrior2031 says:

            И Вам спасибо! Рад был помочь совершенствованию программы.

            Хотелось бы также выразить благодарность за Ваш труд.

  3. warrior2031 says:

    Фьюз CKSEL не устанавливается.

    avreal32-1.28r5.exe +mega8535 -p1 -ax -o1Mhz -% -e -wp -v+ -c data_tranform.hex -fcksel=3 >> output.txt
    pause

    В чем может быть дело?

    • ReAl says:

      А где сам output.txt ?
      У меня под рукой mega8535 нет, но mega8515 шла в серии, а по программированию они одинаковые.
      Сейчас достал ATmega8515-16PI, сунул в панельку. CKSEL с F на 3 и назад перешивается.
      Даже если указать +mega8535 -!, т.е. заставить avreal считать, что он шьёт ATmega8535.
      Проверял и версией 1.28r5 в том числе.

  4. Aleksandr says:

    Dobry vecher!

    Ranshe byl komp s operacionkoi XP/32bit i rodnoi LPT. AVreal32 prekrasno rabotal. Teper zhe, posle pereezda na Win7/64bit i PCI-LPT, ne hochet zapuskatsja. Pishet “Can’t resync”. PCI-LPT karta u menja takaja: “https://www1.elfa.se/data1/wwwroot/assets/datasheets/EX41011_ger_datasheet.pdf” . Draivera obnavil na 64-bitnye. Nikakih soobsheni o oshibkah Windows ne vyplevyvajet. V chem mozhet byt problema? Zaranee blagodarju.

    • ReAl says:

      Раз доходит до Can’t resync, значит, адрес адаптера указан правильно и адаптер определяется?
      Или определение адаптера было подавлено ключиком -! ?
      Какая была командная строка, что avreal рассказывает по ключу -% ?

      Я в XP/64 и W7/64 мельком только проверил работу. В основном работаю в Ubuntu/64 и в основном с FT2232.
      У меня PCI-LPT карта на чипе MosChip (NetMos). Всё в 64-битных Windows работает, только медленнее гораздо, чем в 32-битных.
      И ещё — у меня сложилось впечатление, что под 64-битными неустойчиво определяется время доступа к порту. Попробуйте сильно занизить частоту ключом -o, чтобы надёжно уйти за разброс.

      • Aleksandr says:

        Dobry den.

        Vot takoi screen u nas(prichem zamena o0 na o5 ne pomogajet, prezhni rezultat):

        C:\Priit\ATMEL\PLL>avreal32 +TINY12 -v -o0 -%% -e -p3028 -w -fboden=0 -cpllprog2
        .hex -dpllprog2.eep

        avreal/WIN32 – AVR controllers programmer by Redchuk Alexandr
        v1.28r6 (Jan 9 2011 20:19:58) http://real.kiev.ua/avreal
        bug-reports, suggestions and so on mail to avrеal@rеal.kiеv.uа
        Command:
        +TINY12 -v -o0 -%% -e -p3028 -w -fboden=0 -cpllprog2.hex -dpllprog2.eep
        % Fuse added: boden=0
        CSUM error in line
        :100000000001918FF12802393E0001918FF12802E7
        Ignore ALL CSUM errors (y/N)?
        % LPT base address 0x3028
        % DLportIO.dll succesfully loaded, DLportIO.sys interface activated
        % LPT write cycle 0.55us
        % FBPRG adapter mode
        % 0.92MHz XTAL will be generated
        % with SCK low 2 periods, high 2 periods
        % Reset
        % PgmOn reply 00 00 00 00
        % Try 1 to resync by SCK pulse % PgmOn reply 00 00 00 00
        % Try 2 to resync by SCK pulse % PgmOn reply 00 00 00 00

        % Try 31 to resync by SCK pulse % PgmOn reply 00 00 00 00
        % Try 32 to resync by SCK pulse % PgmOn reply 00 00 00 00
        Can’t resync

        Reset pin released

        C:\Priit\ATMEL\PLL>

        • ReAl says:

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

          Такое поведение — подозрительно маленькое время доступа к LPT, как для 64-битной ОС и все нули, у меня на W7/64 получается, если драйвер тестовой подписью подписан, но в Windows 7 не включен режим тестовых подписей. DLportIO при том “молча” отрабатывает вызовы без реальной работы, возвращая нули на чтение из LPT.
          У меня при этом LPT write cycle скачет от 0,53 до 0,85 мкс и байт-бластер не распознаётся (у Вас FBPRG, а он без перемычек детектирования наличия).
          Если включить режим тестовых подписей, то у меня время доступа к LPT колеблется от 2,5 до 3,2 мкс, байт-бластер виден, микропроцессор опознаётся/читается/пишется.

  5. Роман says:

    Чи може ваша програма працювати через LPT на платі розширення (PCI, PCI-E)
    в WinXP ?

    • ReAl says:

      Так, може. Причому залежно від комп’ютера працює в півтора..три рази швидше за звичайний LPT.
      Потрібно у властивостях LPT в диспетчері пристроїв подивитися базову адресу порта і вказати її в ключі -p
      У мене MosChip-івська PCI-на сидить на E800 вдома і на B800 на роботі.

  6. Maxim says:

    Добрый день.
    Хотел бы задать вопрос по поводу установки фьюзов CKSEL, CKOPT и SUT.
    Изменил значения этих битов у двух мк и они не на что не откликаются, с avreal только начал пользоваться, но некоторые другие фьюзы изменял успешно, пока до кварцевых не дошел)
    1. ATMega32 внешний кварц 8МГц с 22pF – CKSEL = 7 (-fcksel=7), CKOPT = 1 и SUT = 2.
    2. ATMega128 внешний кварц 16МГц с 22pF – CKSEL = 7 (-fcksel=7), CKOPT = 0 и SUT = 2.

    Сначала пытался задать CKSEL “1111” -fcksel=15 пишет “ Value 15 too large for fuse cksel”, как же тогда задается это значение. А значение «7» задал на сколько я понял не правильно, согласно даташиту, как то туповато вышло( Я так понял что задал фьюзы для внешнего RC-генератора.
    И подскажите пожалуйста самый простой способ как теперь вывести эти контроллеры с этого состояния. Программатор AVREAL-USB купленный в «Космодроме».

    • ReAl says:

      Значение для многобитовых fuse задаются в шестнадцатеричном виде
      Можно ещё так спросить

      avreal +mega32 -h

      где-то в ответе будет

        SUT        = 0 to  3 - Start-up timer
        CKSEL      = 0 to  F - Clock selection

      Т.е. надо было указывать cksel=f.
      Теперь остаётся посоветовать только подкинуть внешнюю RC-цепочку на время записи нужного состояния фьюзов. Раз на кварц рассчитано, подпаяться есть куда. Даже просто резистора должно хватить, минимальное требование по конденсатору как раз 22пФ.
      Некоторое количество выводных резисторов для таких подбрасываний я у себя оставил 🙂

  7. Alex says:

    Здравствуйте. Можно глупый вопрос, а что то влет не пойму, можно ли на FT4232HL подключить её к ATmega2560 и при помощи Avreal прошить через SPI ? также вопрос, есть ли GUI для AVreal? желательно который бы поддерживал работу с FT4232HL?

    • ReAl says:

      Прошить можно, очень даже неплохо выходит (секунд в двадцать прошивка полного флеша 256К легко уложится).
      «Сторонний» GUI для avreal есть, avrealshell.
      Когда-то мы с автором общались, но я не слежу за состоянием оболочки. Не уверен, что она поддерживает как FTDI-ные микросхемы, так и ATmega256x.

  8. MaxN says:

    Добрый день.
    Помогите пожалуйста разобраться.
    Купил в космодроме программатор AVREAL-USB (http://kosmodrom.com.ua/el.php?name=AVREAL-USB) (FTDI FT2232D, Si8441AB). Включил перемычки для питания от USB. Пробовал (для начала) прочитать с мк и даже это не получилось. Пробовал at90s2313 и mega16, RESET на +5В через 10к резистор, а на землю через 0,1 конденсатор и без резистора и конденсатора. МК все новые. Питание 5В доходит, на RESET 2,5В
    Пробовал команды:

    c:\avreal +mega8 -aft2232:enable=~acbus2,~adbus7 -r flash.hex
    Command:
    +mega8 -aft2232:enable=~acbus2,~adbus7 -r flash.hex
    Adapter enabled
    Can’t resync

    Reset pin released
    Adapter disabled

    c:\avreal +at90s2313 -aft2232 -r c:\flash.hex

    Command:
    +at90s2313 -aft2232 -r c:\flash.hex
    Can’t resync

    Reset pin released

    c:\avreal +at90s2313 -aft2232 -p

    Command:
    +at90s2313 -aft2232 -p
    Description and/or serial number must be set for FTDI device opening

    c:\avreal +at90s2313 -aft2232:enable=~adbus4,~acbus2 -r flash.hex

    Command:
    +at90s2313 -aft2232:enable=~adbus4,~acbus2 -r flash.hex
    Adapter enabled
    Can’t resync

    Reset pin released
    Adapter disabled

    >c:\avreal +at90s2313 -aft2232:enable=~adbus4,~acbus2 -o0.1MHZ -r flash.hex

    Command:
    +at90s2313 -aft2232:enable=~adbus4,~acbus2 -o0.1MHZ -r flash.hex
    Adapter enabled
    Can’t resync

    Reset pin released
    Adapter disabled

    И я так понял что для моего программатора нужно инвертировать (нужно добавлять) “-aft2232:enable=~adbus4,~acbus2”?
    Можно попросить написать две командные строки для моего программатора – чтения EEPROM и для записи программного кода с eeprom.
    Спасибо

    • ReAl says:

      Да, при использовании avreal версии 1.28r0 и более новых нужно указывать инверсию, -aft2232:enable=~adbus4,~acbus2.
      Что-то на RESET маловато. Если на питании 5В, то и на RESET при всём правильно подключенном должно быть 5В. Судя по схеме от автора (космодром взялся выпускать первую версию платы), там нет никаких утечек и даже без дополнительного подтягивающего резистора на сбросе микроконтроллера, только на внутренних десятках килоом, должно быть «почти 5 вольт». Конечно, если мерять современным цифровым прибром с входным сопротивлением в мегаомы. Стрелочным тестером с их типичным 10-20 кОм/В мерять напряжение с только внутренней подтяжкой нет смысла.
      Обычно я ставлю на сбросе микроконтроллера подтяжку от 1 до 4.7 кОм (номинл выбирается из соображений «а что близкое на плате уже всё равно есть»), но тут главное не увлечься. Не знаю, какие резисторы реально впаяны в Вашей плате, на схеме у МегаДжона указаны 470 Ом. При подтяжке 1 кОм сброс будет существенно не дотягивать до 0. Но при 10 кОм всё должно было быть нормально.

      Мминимальная строка для чтения только EEPROM

      avreal32 -aft2232:enable=~adbus4,~acbus2 +tiny2313 -r -d eeprom_rd.hex

      Для записи и верификации FLASH и EEPROM

      avreal32 -aft2232:enable=~adbus4,~acbus2 +tiny2313 -e -wp  -v flash_wr.hex eeprom_wr.hex

      Для «свежих», заводских установок fuses ключ -o обычно не нужен.

      Добавьте ключ -% для расширенной диагностики. Попробуйте

      avreal32 -aft2232:enable=~adbus4,~acbus2 +90s2313 -%

      Именно 90s2313, для старых контроллеров применяется другая процедра пересинхронизации. Эта строка должна только глянуть на наличие микроконтроллера и сообщить.

      • MaxN says:

        >c:\avreal.exe -aft2232:enable=~adbus4,~acbus2 +90s2313 -%

        Command:
        -aft2232:enable=~adbus4,~acbus2 +90s2313 -%
        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
        Adapter enabled
        % Reset
        % PgmOn reply 00 00 00 00
        % Try 1 to resync by SCK pulse % PgmOn reply 00 00 00 00
        % Try 2 to resync by SCK pulse % PgmOn reply 00 00 00 00
        (…)
        % Try 31 to resync by SCK pulse % PgmOn reply 00 00 00 00
        % Try 32 to resync by SCK pulse % PgmOn reply 00 00 00 00
        Can’t resync

        Reset pin released
        Adapter disabled

        Что это означает?

        • ReAl says:

          По линии MISO до FT2232 не доходит сигнал. В данном случае и для ATtiny2313 было бы такое же, только немного другие сообщения.
          Причём нули выдаёт уже ADUM1401, так как у FT2232 на входах подтяжка ~200 кОм и без активного «0» на входе была бы «1».
          «0» может выдавать и микроконтроллер, если в нём уже зашита программа, выдающая 0 на вывод MISO, а сброс до него не дошёл.
          Попробуйте то же самое, но отключив микронтроллер и бросив проводок на колодке программатора с MOSI на MISO.
          Ответы PgmOn reply должны быть AC 53 00 00.

          • MaxN says:

            Очень странно. Нашел у себя tiny2313 и mega32 попробовал считать EEPROM и всё получилось. Так что с at90s2313 буду еще разбираться (пробовал на 3х шт., на платформе где работала tiny2313). Хоть теперь точно знаю что программатор работает. Если разберусь в чем было дело, то напишу.
            Большое спасибо за помощь!

            • ReAl says:

              На всякий случай

              Случаи они таки бывают всякие — вон сегодня одну новую вариацию работы с кнопкой старта программирования проверял, LPT-шный адаптер с заданием выводов через конфиг-файл. Ну так то, что в ключе -am=abb_key.cfg буквы m нет, увидел только минут через двадцать. А то всё думал, что успел что-то в программе поломать.

              AT90s2313 не имеет внутреннего RC, ей нужен кварц. И если та плата по ATtiny2313 была рассчитана на работу на внутреннем RC…
              А у AT90s1200 внутренний RC был, но включался только на параллельном программаторе. Часть шла с таким фьюзом с завода и маркировалась AT90s1200A. Можно было заказать такую, но где-то в левых партиях из остатков от крупных заказов, говорят, проскакивала.

  9. Ruslan says:

    Сашко, вилітаю до Києва ненадавго із Франкфурту. Чи можемо десь зустрітися? Напиши мені на мою адресу. туди можна і контактний телефон, якщо можеш. Радіофізик Руслан. мій моб. із завтрашнього дня +38067 4423945.

    • ReAl says:

      О, добре. Краще за все було б зустрітися у вівторок, у мене буде вільний час.
      Зараз напишу детальніше.

  10. Plantis says:

    А какие USB-адаптеры еще поддерживаются, кроме программатора на базе FTDI2232? Я свой пару часов назад спалил похоже, коротнул я его. 🙁

    • Plantis says:

      На РадиоКоте есть USB-программатор на базе Атмеги8. Можно ли будет пользоваться Avreal’ом с этим программатором?

    • ReAl says:

      Пока только FT2232/FT4232, для меня лично они привлекательны тем, что могут работать и с ARM. Даже FT232R/FT245R только в планах.
      Как появляется немного свободного времени, начинаю под воздействием «тонких намёков» подумывать о STK500v2 протоколе, но свободное время быстро пропадает.

      Там вроде не так просто спалить, просто коротнув. Разве что коротнуть что-то серьёзно ена него.
      По умолчанию, без записи в конфигурационную EEPROM, у FT2232 ток выходов ограничен парой милиампер, так что даже 1к-подвязку на сбросе может и не пересилит.
      Он даже не не распознаётся операционной системой?
      Если распознаётся — что отвечает на команду

      avreal -aft2232 -p?
  11. cva says:

    Возможна ли настройка avreal для использования чипа ft245? если нет, то будет ли поддержка ft245 в ближайших релизах?

    • ReAl says:

      Пока нельзя, там другой режим, не MPSSE.
      FT245R будет вместе с FT232R, у них у обеих есть режим synchronous bit-bang.
      А вот когда… Честно собираюсь до Нового Года сделать. Опять…

  12. Plantis says:

    Пытаюсь считать код с АТмеги16 через программатор на базе FTDI. Не работает.

    Выдает:

    D:\microcontrollers\AVreal32\Knopka>avreal32.exe +mega16 -% -r -aft2232 test90

    Command:
      +mega16 -% -r -aft2232 test1.a90
    No FTDI "port" switch found
    device with default description "Dual RS232 A" will be used
            % 'ftd2xx.dll' successfully loaded
    Can't open FTDI device with description "Dual RS232 A" (FT_DEVICE_NOT_FOUND)
    • Plantis says:

      Новую программу скачал, дрова снес старые и поставил заново… Вроде все сделал, но не работает 🙁

    • ReAl says:

      Ой, похоже, я при очередных редактированиях в строке описания по умолчанию описку сделал. А у меня сейчас под рукой во всех адаптерах описание перешито и я не мог это заметить.
      Для FT2232-не-H описание по умолчанию, насколько я помню, “DUAL RS232 A”. Регистр имеет значение в сравнениях внутри библиотеки ftd2xx.dll.
      Проверьте при помощи

      avreal32 -aft2232 -p?

      и используйте показанное описание с ключиком

      avreal32 -aft2232 "-pd=DUAL RS232 A"

      p.s. Вырезайте из выдачи avreal шапку, оставляйте только

      Command:

      и последующее. А то в сообщении выходит много линков и оно попадает под модерацию.

    • ReAl says:

      Нет, по всем записям для FT2232C/L/D строка описания по умолчанию с маленькими буквами — “Dual RS232 A”.
      Попробуйте при подключенном адаптере — что avreal с ключиком

      -p?

      выдаст в списке найденных устройств.

  13. Артем says:

    Доброй ночи. Такой вопрос:
    А можно данный адаптер использовать как вывод ЛПТ порта для программирования с помощью других программ? Например: Поннипрог и т.д. Очень важен этот момент, так как нужно программировать микроконтроллеры и памяти разных фирм. АВР, ПИК и т.д.
    С уважением Артем.

    • ReAl says:

      «Данный адаптер» — это какой? На страничке adapters есть несколько адаптеров для порт LPT.
      Адаптер «STK200/STK300» поддерживается многими программаторами AVR, тем же «Пони».
      «Altera ByteBlaster» менее распространён.
      Для PIC16, насколько я помню, требуется одна двунаправленная линия для данных. Если это так, то ни «STK200/STK300» ни «ByteBlaster» без доработок не подойдут. И даже с доработками ещё вопрос, найдётся ли подходящая программа.
      Думаю, проще будет с друой стороны зайти. Найти устраивающий адаптер для LPT (например, программирующий PIC) и спросить — а можно ли им программировать AVR при помощи avreal. Вполне может быть, что достаточно будет дописать конфигурационный файл для ключа -am.

  14. sskriblo says:

    Есть ли возможность параллельно запускать на одной машине несколько копий программы через несколько LPT портов? Для цеха желательно увеличить пропускную способность программирования.

    • ReAl says:

      По структуре программы вроде проблем быть не должно ни под Windows*, ни под Linux.

      С адаптером на FT2232H пробовал — у этой микросхемы, в отличие от FT2232C/L/D, оба канала работают в режиме MPSSE и две копии avreal в соседних окошках параллельно работают. Тем более без проблем с несколькими адаптерами на FT2232C/L/D, только их нужно по серийным номерам развести.
      Учитывая то, что через FT2232 и скорость выше (сказывается при тактировании микроконтроллера віше где-то 2-3 МГц), для серии стоит подумать о ней.

  15. Дмитрий says:

    Здравствуйте. Прекрасный программатор, давно пользуюсь (LPT).
    В последнем разработанном приборе применяется ATmega644P (именно с P), используются очень низкие тактовые частоты (вплоть до 32кГц) – делителем частоты RC генератора – и столкнулся с неудобством: приходится дважды запускать avreal, сначала стереть кристалл (и заодно записать все fuse) на сверхнизкой скорости (-o10), и только вторым вызовом писать код на обычной скорости. Я подозреваю конечно что mega по сигналу reset должна бы перейти в 1МГц тактирование, однако одним вызовом 90% приборов не шьются (кристалл просто не видится). Может быть можно организовать второй ключик для указания скорости обмена при стирании? Чтобы стиралось медленно, а вот шилось и проверялось – быстро? Или есть другое решение этого неудобства?
    И в догонку сразу ещё вопрос: до какой минимальной скорости (частоты mega) FT2232 будет работать?

    • ReAl says:

      Делать возможность задавать разные частоты SPI для разных операций с кристаллом, честно говоря, не хочется.

      А чем не устраивает запуск avreal два раза для разных операций? «Серийную» прошивку я обычно так и делаю, в командном файле стоят подряд вызов с прошивкой нужного значения fuses на малой частоте, после чего вызов прошивки программы с рассчётом уже на рабочую частоту (кварц или быстрый внутренний RC). Благодаря кешированию диска операционной системой второй вызов программы почти не добавляет времени работы. Добавляется практически только 0.1-0.3с на стартовых операциях — инициализация адаптера, начальный сброс микроконтроллера.

      Сейчас по ключу -o минимальная устанавливаемая частота ядра ограничена величиной 1 кГц, соответственно, минимальная частота SPI около 250 Гц.
      Микросхема FT2232 в режиме MPSSE может генерировать тактирование до приблизительо 92 Гц, так что в дальнейшем, возможно, будет проверяться минимальная частота для выбранного адаптера и именно она будет границей для -o.

      • Дмитрий says:

        Да в общем устраивает. Раздражет лишь двойной вывод fuses и прочей служебной информации (/quiet режима не нашёл в доке, похоже подавить вывод лишних сообщений нельзя), текст уползает вверх. Ну и ещё двойной вызов неудобен с точки зрения анализа ошибок записи – приходится второй вызов делать условно по errorlevel. Согласен, это мелочи, не стоит усложнять.
        Про тактирование FT2232 спросил т.к. увидел где-то ниже что она не позволяет выдавать низкие частоты. Но 1кГц вполне устраивает. 🙂
        А, вот ещё мелкое неудобство вспомнил: при проверке если код не зашился с самого начала, то avreal всё равно будет читать память до конца (считая количество ошибок) – так ли это нужно? На низких частотах кварца это существенная потеря времени. Вероятно бывает полезно и так и так (и до первой ошибки, и общее количество).

      • ReAl says:

        Подавления вывода нет. Я подумываю о дополнительном ключе, которым можно будет задавать уровень болтливости в три-четрыре градации. -% сделать синонимом того ключа с каким-то уровнем «выше среднего», нынешнюю болтливость без ключей сделать средней, на малом уровне оставить самый минимум.

        FT2232 в режиме MPSSE делит исходный 6-мегагерцовый такт на 1..65536, так что нижняя граница достаточно низка.

        По верификации — «приглашение к обсуждению» — например, модификатор ‘‘ к ключу.
        Т.е. -v- вываливается по первому несовпаднию.
        Странный вид -v+- или -v-+будет, если одновремённо просить проверить на FF не программировавшиеся ячейки, но это можно пережить. Тем более, что я -v+ вроде бы и не пользовался никогда. Уже и не помню, откуда этот ключ взялся, вероятнее всего как друг товарищ и брат к ключу -w+, предназначенному для записи EEPROM начальными значениями с зачисткой остального содержимого, но без стирания кристалла. Такое приведение программы в исходное состояние для нового цикла тестирования системы.

        • Дмитрий says:

          Для регулировки “болтливости” можно использовать тот же -%[n] (с добавлением цифры). Без цифры – как сейчас. Цифру можно или как уровень использовать, или как битовую маску для сообщений. Я бы подавлял следующее: вывод fuse если не задана их запись (а если задана то выводить лишь новые); три строки заголовка (их можно выводить лишь при выводе хелпа, при обычной работе они не так нужны); сообщения о подаче питания и reset (их много, а смысла от них мало); точки индикации процессов (только начало и результат ok/error, и в одну строку, а не на следующей); вообще сообщения о действиях (оставить лишь командную строку и общий результат или ошибку). Ещё мысль: командную строчку и общий результат (и все ошибки) выводить не в con, а в err (нандлер не 0, а 2), тогда их можно будет по отдельности убрать средствами ОС (0>nul или 2>nul или в файл). Но это открывать ещё один хандлер. 🙁
          -v-+ действительно странно и непонятно. Но можно и -v[1][+] – т.е. цифру “1” использовать для флага остановки по первой же ошибке, это логично.
          Ещё раз спасибо за прекрасную прогу!

          • ReAl says:

            С этим ‘%’ и так плохо вышло, это же спецсимвол в bat-файлах, там нужно -%% писать. А -%1 -%2 совсем путаницу введут. Так что отдельный ключ с переводом -% в устаревший синоним одного из режимов.
            На stderr (канал 2) я хотел вообще всё перевести, оставив stdout для каких-то запросов, но перенаправление 2> не работает в Windows98 и пошли жалобы, пришлось вернуть назад на stdout.
            Открывать ничего не надо, в C каналы 0, 1, 2 открыты сразу.

            -v[1][+] — пожалуй, выглядит лучше и логика в этом есть.
            Надо засесть за такие мелкие правки, вот давно в очереди модификация -r-, означающая «не писать в выходной hex-файл сплошные участки FF».

  16. Dekar says:

    Я понимаю, что мой вопрос достаточно косвенно связан с работой вашего програматора, но всё же хотел бы обратиться с вопросом:
    какие команды вы посылали на ft2232 чтобы он работал в режиме MPSSE?

    Я перевожу чип в режим MPSSE, после чего передаю ему набор команд:
    SET_BITS_LOW(0x80), 0x08, 0x0b,
    TCK_DIVISOR(0x86), 0x00, 0x00 ,
    SET_BITS_HIGH(0x82), ~0x04, 0x04

    И отправляю 2 байсто набором команд:

    0x10(byte, write-only),0x01,0x00(2 bytes),0x77(data1),0x88(data2)

    На осциллографе пусто, второй буфер не записывается корректно.

    • ReAl says:

      Сейчас у меня порядок действий такой:

      Переход в режим MPSSE.
      Установка таймаутов по пять секунд.
      Далее одним пакетом одна или две команды

      Если FT2232H или FT4232H, то установка либо сброс делителя на 5 в зависимости от требуемой частоты SPI
      Установка делителя частоты

      Задержка 20мс
      Вычистка приёмного буфера (FT_Purge)
      Задержка 10мс
      Установка направлений и начальных состояний сигналов – одним 6-байтовым пакетом комнды 0x80 и 0x82, а какие конкретно байты пересылаются — зависит от конфигурирования адаптера. Ваши “SET_BITS_LOW(0×80), 0×08, 0×0b” правильно открывают нужные выходы

      (задержки средствами ОС и выходят “не менее чем” а не “вот-такие”)
      А вот при записи у меня метод 0x11, как нужно для AVR-ок, но должно сдвигать и при 0x10.
      Так на первый взгляд по перечню команд и байтов всё нормально.

      • Dekar says:

        Да. Всё работало. Просто надо было перезагрузить FT.
        Про сброс буфера – спасибо. Доделаю.

  17. zov says:

    Доброго времени суток.
    Скажите пожалуйста- правда ли, что данным программатором можно прошивать ARM?

    • ReAl says:

      ARM можно прошивать “железом”, сделанным на FT2232, и то не всяким — только отвечающим по назначению выводов одному из поддерживаемых OpenOCD.
      Программа avreal не работает с ARM.

  18. wordn says:

    Есть ли возможность прошить ATmega128RFA1?
    Его Signature Byte отличается от ATmega128(L) и ATmega1284(P).
    Будет ли добавленна его поддержка в следующих версиях?

    • ReAl says:

      Я как-то упустил из виду RF-линейку, был уверен, что там только “бутерброды” из обычных мег и RF-кристалла.
      Мельком глянул документацию на ATmega128RFA1. Похоже, отличия от ATmega1284P только в сигнатуре, так что добавить проблем нет. Добавлю по возвращении из отпуска (дней через десять).

    • ReAl says:

      Выложил пробную win-версию 1.28r5b1, отличается от 1.28r4 только добавлением ATmega128RFA1, неисправленная ошибка осталась.

    • ReAl says:

      Сразу проверяйте 1.28r5b3, вторая ошибка уже тоже исправлена.

      p.s. Исправления вошли в 1.28r5 и файлы тестовых версий удалены.

  19. ut1wpr says:

    Саша, извините, пожалуйста.
    У меня 1-я версия программатора на 2232.
    Вопрос по свечению светодиода.
    Как сделать, чтобы он зажигался в момент начала программирования,
    а гаснул лишь по окончании прошивки всего (вкдючая eeprom b fuses).
    А то сейчас он коротенькр мигнёт, почти незаметно. А шьёт безукоризненно.
    Моя строка:
    avreal32 +mega8 -aft2232:enable=~adbus4,acbus2 -e -w -n m8k.hex m8k.eep -v

    Большое спасибо!

    • ReAl says:

      «первая версия» — это первая версия железа MegaJohn ?
      Необходимо указать активный низкий уровень для зажигания светодиода

      avreal32 +atmega8 -aft2232:enable=~adbus4,~acbus2 -e -w -n m8k.hex m8k.eep -v

      Сейчас он промигивает на какой-то задержке между командами перевода в MPSSE с не выбранным состоянием программатора и командой разрешения выходов, по которой на acbus2 устанавливается высокий.

      • ut1wpr says:

        Саша, извини, сразу не уточнил. “Первая версия” – это та версия, которой торгует Космодром. Скорее всего, это первая версия МегаДжона. ADUM и без буферного регистра.

        • ReAl says:

          Да, так и есть, «Космодром» торгует первой версией МегаДжона.

          • ut1wpr says:

            К этой версии можно “костыль” приделать, мне кажется. На махонькой платке разместить шинник, прокинуть туда сигналы и управление выборкой шинника. Не очень красиво, но через “задний проход” может получится. 🙂

          • ReAl says:

            «Дурне діло не хитре».
            Но не проще ли тогда с нуля сделать плату с шинником и прочим нужным?

      • ut1wpr says:

        Спасибо большое. Всё работает, как в сказке, чем дальше, тем страшнее… 🙂 🙂

  20. YS says:

    Добрый день!

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

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

  21. 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-нотации, просто соберите все битики.

  22. Alexey says:

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

    • ReAl says:

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

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

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

      • Alexey says:

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

      • ReAl says:

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

  23. 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 — я просто не пользовался этой программой и не знаю, как у неё с прикручиванием внешних утилит.

  24. Dmonira says:

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

    • ReAl says:

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

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

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

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

      • Andy Great says:

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

        • ReAl says:

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

  25. 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.

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

  26. 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 нормально подгружается. Интересно, в чём дело у Вас на компьютере.

  27. Ярослав 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 в том числе для этого и предназначены, но я не пробовал.

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

  28. Ярослав 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

  29. Юрий 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, з точки зору компілятора та програматора вони однакові.

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

  30. […] 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?

  31. YS says:

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

    • ReAl says:

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

  32. Сергей 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.
          Буфер эту проблему решил.

  33. 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 при наличии другого драйвера. Постараюсь найти время и посмотреть.

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

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

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

    • ReAl says:

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

  35. Артур 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.
          Так что это и не ошибка вовсе.

  36. Влад 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:

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

  37. Dmitry says:

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

    • ReAl says:

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

  38. Plantis says:

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

    • ReAl says:

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

      • Plantis says:

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

        • ReAl says:

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

  39. West says:

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

    • ReAl says:

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

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

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

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

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

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

    • 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.

  41. Oleg says:

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

  42. Oleg says:

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

  43. Дмитрий 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 означает “оставить то значение, которое сейчас запрограммировано в кристалл”. Так что всё зависит от того, что было записано ранее.

  44. Леонид says:

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

  45. Андрей says:

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

    • ReAl says:

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

  46. wired says:

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

    • ReAl says:

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

  47. Alex says:

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

    • ReAl says:

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

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

  48. Igor says:

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

  49. Ruslan says:

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

  50. Ruslan says:

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

    • ReAl says:

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

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

Leave a Reply

[flagcounter image]