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

344 Responses to “AVReAl – ISP programmer for AVR”

  1. Андрей says:

    Здравствуйте, такая проблема, пытаюсь научиться программировать микроконтроллеры. Собрал ByteBlaster, собрал плату с МК attiny2313 и 8иью светодиодами, пытаюсь просо заставить одни светодиоды гореть, другие – нет. Почти разобрался со всем, но вот проблема, пишет мне avreal такую дилемму:

    avreal/WIN32 v1.29r0 (Dec 11 2013 22:23:26)
    LPT port number 1
    LPT base address 0×378
    % DLportIO.dll succesfully loaded, DLportIO.sys interface activated
    LPT write cycle 1.20us
    ByteBlaster found
    ByteBlaster adapter mode
    MCU oscillator frequency = 10.0MHz
    setup 210ns, hold 210ns
    actual SCK frequency 278kHz
    Adapter enabled
    Reset
    ERROR: Can’t resync
    Reset pin released
    Adapter disabled

    При этом я задавл ему такую задачу в батнике:

    D:\Chemetechnik\Microconroller\avr\avreal32.exe +tiny2313 -p1 -id -ab -o10000kHz -e -v -w -c output\hexfile.hex -n >>write.txt
    pause=null

    На плате с МК стоит кварц на 10МГц к ногу каждого пришлось припаять не 22пФ, а 27пФ, может с этим как-то связано? Когда пытаюсь шить звоню ту самую ножку на МК, называемую RESET мультиметром – питание благополучно поднимается до 5В и потом снова падает, светодиод питания на программаторе горит, светодиод прошивания при попытке прошить – один раз мигает. Помогите, пожалуйста!!!

    • ReAl says:

      22пФ – 27пФ — не думаю, що важливо, генерація однак має бути.

      Живлення треба б подати зовнішнє нормальне, можна від USB. Те, що зараз виходить — набирається через захисні діоди на входах SCK, MOSI. Буде з провалами.

      Але найімовірніша причина — «з заводу» мікроконтролер прошито на тактування від внутрішнього RC 8 MHz (CKSEL=4) з діленням на 8 (CKDIV8=0), тобто на 1 MHz. Для такої тактової частота SPI має бути не вище 250 kHz, а з конкретним LPT вийшло майже 280. Спробуйте з -o1MHz або взагалі без ключа -o (еквівалентно -o800kHz). Для надійності можна навіть -o500kHz.

      • Андрей says:

        Спасибо за ответ. Питание итак подано с USB не доверяю питанию от LPT) Пробовал менять параметры ключа -o – не помогло, меняется строка actual SCK frequency а результат тот-же. На 1.00MHz в той строке написано 167kHz, на 0.8MHz – 119kHz, на 0.50MHz – 93kHz. Попробовал ещё поставить ключ -o0 тогда написало:
        0.42MHz XTAL will be generated
        with SCK low 2 periods, high 2 periods
        Adapter enabled
        Reset
        ERROR: Can’t resync
        Reset pin released
        Adapter disabled
        Может ли причина быть в том, что на плате с МК 8ой вывод разъёма программирования никуда не подключён, может попробовать его притянуть на XTAL1 и попробовать генерить частоту с него? На всякий случай привожу статьи откуда были взяты схемки плат: http://radiokot.ru/start/mcu_fpga/avr/03/ http://radiokot.ru/start/mcu_fpga/avr/05/ Заранее благодарен.

        • Андрей says:

          Не, это тоже не помогло, запаял отдельным проводком восьмой вывод программирующего разъёма на ногу МК под названием XTAL1, под номером 5 которая. Всё до лампочки. Я уже не знаю… В тексте батника, как я понял, все правильно стоит?

          • Андрей says:

            Вот такая ещё вещь написана в статье про сборку моего программатора: “ВНИМАНИЕ! Для работы с программируемой логикой Altera может потребоваться подтянуть 7-й вывод разъема программирования на “+” питания резистором порядка 1…3 кОм.” {jnm e vtyz b fnvtktdcrbq

            • ReAl says:

              Для роботи з AVR та ніжка зовсім не використовується. Не дуже добре, що вхід плаває, але заважати не повинно.

        • ReAl says:

          Перепрошую за затримки, але вдень (закінчується в кращому разі о 3 ночі) зовсім ніколи.

          З байт-бластером є одна поширена помилка. На схемі http://radiokot.ru/start/mcu_fpga/avr/03/ стрілочка «+5V» це точка, з якої треба взяти живлення на DD1. Зовнішнє живлення слід подавати на плату з мікроконтролером, а на байт-бластер живлення прийде через ніжку 4. Перевірте це місце.

          Батник правильний.

          З’єднання 8-ї ніжки бластера з XTAL1 потрібно тоді і лише тоді, коли використовується ключ -o0

          -o0.5MHz повинно було вистачити.

          Спробую сьогодні на роботі якусь tiny2313 помучити.

          • Андрей says:

            Тут с питанием я поступил так: на байтбластер подвёл экранированным USBшным кабельков в точку где +5 вольт обозначено. На плату с МК тоже отдельным USB проводом подвёл, а микросхемку 74HC244 (кстати, микросхема у меня немного другая – HD74LS244P, может причина в этом, я смотрел даташиты, вроде одинаковые они по основным параметрам да и по функциям тоже…) запитал от 4ого вывода разъёма программирования. В статье-же писали, что байтбластер питается от платы с микроконтроллером, вот и и запитал его оттуда). Кстати, я даже случайно 1 кГц поставил, то бишь применил ключ -о1 и это заставило меня понадеяться, что всё будет ОК, потому что диод программирования горел довольно долго, но результат оказался тем-же, просто операции таким образом занимали значительно больше времени))

            • ReAl says:

              Живлення в обидві точки — діод на байт-бластері вийшов закороченим, але це не страшно. Його взагалі можна прибрати, він лише у деяких випадках потрібен.

              74LS244 — це ТТЛШ серія («шоткі»), наш аналог К555.
              У неї на виходах рівень «1» низькуватий — може бути недостатнім для КМОП-мікросхем.
              Спробуйте на виходах RESET, SCK, MOSI бластера поставити підтяжки на живлення. Десь від 4.7 кілоом до 10 кілоом має бути нормально. Менше 2 кілоом небажано, LS244 вже може погануватий «0» видавати.

              Все, тепер ввечері зазирну.

              • Андрей says:

                Без подвода доп. питания сигнал на ресете достигает 4.3 Вольта, у меня изначально почему-то при подаче питания на плату с МК загорался светодиод, когда подвёл доп. питания на MISO и MOSI – Загорелся рядом стоящий почему-то… сейчас попробую на ресет подвести доп питание.

              • Андрей says:

                Бредняк, с подводом доп. питания напряжение на ресете опустилось до 4,25, подводил резистором 4,7 кОм

              • ReAl says:

                Перепрошую, зовсім нема вільного часу.
                Не розумію, як з підтяжкою на + напруга могла знизитися. Більш за все, якісь помилки у монтажі.
                74LS з підтяжками має працювати. Хоча у мене під рукою давно таких нема, але ще не «Altera byte blaster», а його попередник «Intel FLEXlogic downloading cable» після допаювання підтяжок працював з першими AVR-ками.
                Навряд чи зможу допомогти дистанційно.

        • ReAl says:

          Ну от якщо живлення подається на процесор, а потім від нього на байт-бластер:

          avreal -ab -p/dev/parport0 +tiny2313 -o0.5MHz -id
          avreal/Linux32 v1.29r0 (Dec 11 2013 19:48:44)
              Parallel port `/dev/parport0' found, ioctl interface activated
              LPT write cycle 1.06us
              ByteBlasterMV found
              ByteBlaster adapter mode
              MCU oscillator frequency = 0.50MHz
              setup 4.2us, hold 4.2us
              actual SCK frequency 105kHz
              Adapter enabled
              Reset
              Read ID: 0x1E910A
          Device connected, tiny2313|tiny2313A detected
          Chip not locked
              Fuses:
                OSCCALs = 54 4D
                _LOW    = C4
                  CKDIV       = 1
                  CKOUT       = 1
                  SUT         = 0
                  CKSEL       = 4
                _HIGH   = DB
                  DWEN        = 1
                  EESAVE      = 1
                  WDTON       = 1
                  BODLEVEL    = 5
                  RSTDISBL    = 1
                _EXT    = FF
                  SELFPRGEN   = 1
          Total time 119ms
          All OK
              Reset pin released
              Adapter disabled

          Якщо живлення подати на байт-бластер на оту «стрілочку», то на процесор не йде і тоді:

          avreal -ab -p/dev/parport0 +tiny2313 -o0.5MHz -id
          avreal/Linux32 v1.29r0 (Dec 11 2013 19:48:44)
              Parallel port `/dev/parport0' found, ioctl interface activated
              LPT write cycle 1.10us
              ByteBlasterMV found
              ByteBlaster adapter mode
              MCU oscillator frequency = 0.50MHz
              setup 4.2us, hold 4.2us
              actual SCK frequency 101kHz
              Adapter enabled
              Reset
          ERROR:  Can't resync
              Reset pin released
              Adapter disabled
          • Андрей says:

            Ну, у меня, получается, питание как раз сначала на МК, а потом уже на микруху в байт бластере приходит, но с тем-же набором ключей, у меня частота не дотягивает до 100 кГц и ресет не проходит(((

  2. Dima2000 says:

    Ну когда же наконец добавите работу с удобными и дешевыми FT232RL/FT245RL?!

    • Dima2000 says:

      Прошу прощения, похоже эти микрушки не имеют режима MPSSE? Тогда понятно почему никогда. Жаль.

      • ReAl says:

        Зато они, в отличие от FT232BM/FT245BM и более старіх, имеют SBB (синхронный бит-банг) что хоть и гораздо медленнее, чем MPSSE, но терпимо. Так что сделать можно и нужно. Просто я «всё никак»™ :-(

  3. swmicro says:

    Скажите, пожалуйста, а можно с помощью avreal программировать SPI Flash, например 25L128? Спасибо

    • ReAl says:

      Увы, нет. Часто спрашивют, но всё никак не возьмусь.
      Мне, похоже, нужно придумать себе задачу, где мне самому будет нужно шить такие флешки, тогда и сделаю…

      • swmicro says:

        Я на досуге вожусь с DLP-USB1232H (FT2232H). FT2232H сконфигурировал в MPSSE и SPI готов, но не могу найти пример как хотя бы прочитать через SPI байты с Flash. Какой пакет нужно отправить в MPSSE чтобы потом прочитать? Был бы очень благодарен за помощь. Спасибо

        • ReAl says:

          Чтобы только читать из MPSSE, нужно посылать пакет с командой, у которой бит 4 нулевой, а бит 5 поднят — старшая часть команды 0x2_, а в младшей вместо подчеркивания выставить биты, соответствующие нужному режиму SPI (см. «Data Shifting Command Overview» в документе «AN2232C-01 Command Processor for MPSSE and MCU Host Bus Emulation Modes»).
          Т.е., как мне кажется, чтение из SPI флеш лучше делать двумя командами — сначала с 0x1_ (только запись) записать команду чтения и адрес начала, потом командой с 0x2_ вычитать нужную длину данных.
          Сам я такой командой не пользовался, так как для AVR все равно для чтения каждого байта нужно писать отдельную команду. В avreal используется только 0×3 (запись и чтение).

          • swmicro says:

            Отправляю 10 03 00 9F 00 00 00 чтобы прочитать Flash ID, а в ответ получаю 4 байта FA 00 FA 00. Выглядит как последние нули не принимает. Менял длину пакета, ответ тот же. Буду играться дальше. Спасибо за совет!

            • swmicro says:

              Упс! Нашел баг. FA 00 FA 00 это осталось в буфере после неудачной инициализации.
              Теперь шлю
              10 03 00 9F 00 00 00 – в ответ ничего (так и нужно),
              потом
              20 04 00 00 00 00 00 – отвечает FF FF FF FF FF FA 00 FA 00 FA 00 FA 00
              Ковыряюсь дальше :)

            • ReAl says:

              FA — это ответ «Bad command», дальше байт, который собственно и вызвал сообщение.
              20 04 00 — это прочитать пять байт. На них пять FF-ов и отдаётся.
              Дальше 00 00 00 00 воспринимается как четыре неправильніх команды, вот на них и ответ четыре пары FA 00

              • swmicro says:

                Похоже что из-за бага в библиотеке от чипа приходят только 0xFF. На хабре статья хорошая http://habrahabr.ru/post/207214/

              • ReAl says:

                Ну я всеми теми прослойками LibMPSSE-* не пользуюсь. Они же просто «высокоуровневые оболочки вокруг ftd2xx.dll»
                Точнее, LibMPSSE-SPI не пользуюсь, так как остальные интерфейсы ещё не смотрел вообще :-) Но на библиотеку MPSSE-SPI тоже кто-то жаловался.
                Я c самого начала стал работать через ftd2xx.dll(Win)/libftd2xx.so(Lin) и не жалею. Заработало все в первый день.

  4. very funny quotes says:

    дравствуйте!!!
    Пытаемся попользоваться устройством “FT2232H Mini Module”
    Дрова встали,прогамму обновили.Но не работает.
    Обнаружился странный эфект.При попытке прошить “avreal32 -a +mega8 -o100 -e”
    выдается сообщение “Can’t resync”.

    • ReAl says:

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

      p.s. Я, бывает, после незначительных изменений по лени не проверю FT2232D или PCI-LPT, но FT2232H — мой основной программатор, используемый каждый день.

  5. Виталий says:

    Александр,
    Не подскажите будет ли авреал работать с этими китайскими адаптерами:
    http://dx.com/p/usbasp-usbisp-downloader-programmer-for-51-avr-157167
    http://dx.com/p/usbisp-ccl-programmer-down-loader-module-black-silver-160102
    http://dx.com/p/free-drive-usbasp-usbisp-download-cable-w-aluminum-cover-for-51avr-microcontroller-151604

    я понимаю, что по картинкам сложно сказать на чем они сделаны, но может кто уже заказывал и пробовал…

    • ReAl says:

      Зато по словам USBASP и USBISP просто. avreal такие не поддерживает. И пока не планируется.

  6. Алексей1533 says:

    Доброго дня ! Я покупал готовые и настроенные модули на сайте ,, micro51@mail.ru ,,! Документация на прогроматор находится по адресу ,, http://www.electroniclab.ru/137.htm ,, !

    • ReAl says:

      Ага, видел когда-то фото платы.
      Судя по виду, никаких шинников нет. Т.е. плата является простейшей.
      Устанавливайте драйвер FTD2XX, берите самый свежий на данній момент архив avreal. Архив нужно просто распаковать, ничего устанавливать не нужно.
      avreal32-1.28r14.exe лучше сразу переименовать в avreal32.exe и желательно разместить в каталоге, прописанном в переменной PATH. Иначе придётся держать в текущем каталоге.
      Соединяйте один к одному X2 программатора и X1 платы с мегой.
      Подключайте обе платы к USB.
      В командной строке набирайте (вместо mega328 подставить тип установленной на 135-той плате микросхемы):

      avreal32 -aft2232 +mega328

      Результат в студию.

      • Алексей1533 says:

        Здравствуйте ! Скачал всё , что вы советовали ! Переименовал фаил avreal32-1.28r14.exe , подключил платы 137 и 135 ! Мой комп ни чего мне показал и ни чего не произшолло ! Где и как мне найти командную строку ? И при помощи каой проги происходит програмирование МК ( IC- prog или PoniProg или winPic ) ?

        • ReAl says:

          Уезжал на несколько дней, только сейчас добрался до компьютера-интернета.
          Командная строка в Win7 находится в главном меню в разделе «Все программы»/«Стандартные» — «Командная строка».
          Программирование производится именно avreal-ом, который вызывается из командной строки с нужными ключами. Чтобы не набирать каждый раз вручную, вызов утилит командной строки, к которым относится и avreal, делается из меню Tools применяемого продвинутого редактора или IDE. На этом экономится постоянный переход из одной графической оболочки (редактора) в другую (PonyProg и иже с ним) и обратно.

          При выборе позиции «Командная строка» появится окно консоли, которое по привычке называют «ДОС-окно», хотя тот же avreal32 — 32-битное консольное windows-приложение под DOS-ом не запустится. Наберите в строке даже не так, как я писал раньше, а

          avreal32 -aft2232 +mega328 >log.txt

          У Вас в текущем каталоге появится файл log.txt, который можно посмотреть блокнотом и вставить сюда в сообщение.

          Для avreal когда-то была написана так графическая оболочка avrealshell, так же бесплатная, как и avreal. Но я не слежу за этим проектом и не знаю, в каком он состоянии и где находится.

          Честно говоря, считаю это несправедливым — кто-то выпускает платы, получает за это деньги, но не удосуживается дать подробных объяснений по их использованию с avreal, просто даёт линк на меня. После чего я, и так потративший время на написание бесплатной программы, должен тратить еще время на бесплатную поддержку чужого коммерческого продукта, не получая за это ни копейки.
          Иногда такие продавцы даже прямо требуют — «я дал у себя на сайте линк на ваш сайт, поэтому вы должны дать у себя линк на мой».
          За что?

      • Алексей1533 says:

        Здравствуйте ! Я сделал всё как вы советовали ( скопировал вашу строку в командную строку = нажал enter и мой комп ни чего не показал ) ! Поставил Пони прог , пытался найти прогроматор , машина его не видит ! Вы меня простите за мою не образованность , но поясните , ПОЖАЛУЙСТА , по подробнее что , куда и как нажинать ( скачивать ) ! Я в програмировании полный лузер ! Пока освоил прошивку МК PICов ! Но программы я не пишу ( пока ) ! ПОЖАЛУЙСТА , ПОМОГИТЕ чайнику освоить програмирование МК семейства AVR ATM и тд !

        • ReAl says:

          PonyProg эту железку №137, насколько я знаю, не понимает.

          avreal и есть программатор, просто программатор командной строки. Т.е. все операции по стиранию/программированию он производит вот так, из командной строки. Например, ключ -e означает «стереть», команда

          avreal32 -aft2232 +mega328 -e

          сотрёт флеш и EEPROM. Все ключи тут.

          С ARM-ами есть возможность не только программирования, а и отладки. Но то же самое — непосредственно с платой работает OpenOCD, который сам по себе тоже только из командной строки работает.

          Так сделано для возможности интеграции (почти) куда угодно. Это другой путь, отличающияся от подхода «отдельная программа с кнопками для каждой работы». Гораздо удобнее, на мой взгляд, программировать прямо из той IDE, в которой производится компиляция, а не переключаться на PonyProg или что-то подобное. Но первоначальная настройка сложнее и зависит от используемой IDE. Посмотрите статьи по использованию в Eclipse Программирование AVR и ARM микроконтроллеров в Eclipse., Использование адаптера FTDI JTAG для программирования AVR микроконтроллеров.

          По команде avreal32 -aft2232 +mega328 >log.txt он и не должен был ничего показать — в том каталоге, в котором запускался avreal, должен был появитсья текстовый файл log.txt. Проще его вставить сюда, чем делать скриншот.
          Без >log.txt была бы выдача на экран.
          Если добавить -% (avreal32 -aft2232 +mega328 -% >log.txt) то лог-файл будет подробный. Посмотрите в том каталоге, в котором запускали. Его имя было в приглашении командной строки.
          Можно запустить сначала без перенаправления в файл >log.txt, чтобы увидеть реакцию, а потом сделать перенаправление, открыть файл редактором и скопировать текст в сообщение.

          Попробуйте ещё.

  7. Алексей1533 says:

    Плата 137 _ это прогромматор AT mega ! Он работает на ОС 7 по интерфейсу USB ! Вторая плата – это плата , в которую подключается МК !Я уже пробывал зашивать МК и у меня получилось ! Зашивал PIC через IC-prog и winpic ! А на этот сайт меня направил производитель плат 137 и 135! Но я здесь теряюсь ! Слишком много ссылок , вот я и не знаю какую установить !

    • ReAl says:

      Раз производитель послал сюда, значит плата программатора на одной из микросхем FT2232, FT2232H, FT4232, FT232H. В любом случае, программа и драйвера ставятся одни и те же, для всех версий Windows одинаковые («ОС 7» — это ведь Windows, а не Система 7).
      Неплохо бы линк на производителя с описанием платы, так как могут быть нюансы в зависимости от типа FTDI-микросхемы и наличия/отсутствия шинников, схемі подключения шинников.

      На страничке загрузки берёте верхний архив в колонке Windows таблички AVReAl, т.е. самый свежий для используемой ОС.

      DLPortIO не нужно, это для LPT.

      Драйвера — у производителя (этот линк есть на странице загрузки avreal).

      Работа с avreal – из командной строки, т.е. совсем вручную, через bat-файлы или подключая к той IDE, которой пользуетесь.
      Ключи и конфиг-файлы будем уточнять после выяснения подробностей по «плате 137».

  8. Алексей1533 says:

    Здравствуйте ! Я приобрёл платы 137 135 ! хочу прошить МК , но какой программой не знаю ! Подскажите . пожалуйста , какую программу поставить и как её скачать !

    • ReAl says:

      Что такое «платы 137 135»? Какие-то смутные ассоциации с такими числами у меня есть, но ничего определённого вспомнить не могу.
      Исходя из того, что Вы спрашиваете на этой странице, могу только догадываться:
      • как минимум на одной из плат стоит микроконтроллер AVR;
      • на сайте продавца есть линк на avreal.

      Уточните, разберёмся.

  9. Serj says:

    Подскажите что делаю не так, хочу прошить ATmega16A.
    +mega16a -p0x5068 -am=pxi.cfg -%% -e -w -v main.hex

    Файл конфигурации:
    name=gener
    mosi=D3
    miso=ONLINE
    sck = D4
    reset = D2

    Выдает ошибку can’t resync by SCK pulse

    На всех выводах которые участвуют в прошивке есть импульсы.

    • ReAl says:

      Шинника, я так понимаю, нет.
      А какое питание и тактирование контроллера, прошивался ли до этого (менялись ли fuses)?
      Попробуйте снизить частоту, скажем, -o100
      Попробуйте без контроллера соединить на адаптере mosi-miso, при нормальной работе адаптера должно выдать в духе

      PgmOn reply AC 53 00 00
      % Try to resync by reset pulse PgmOn reply AC 53 00 00 // и так много раз

      Из “А” я пока работал с mega8A и mega48PA, с ними проблем не было.

  10. martin says:

    Скажите пожалуйста, последняя версия avreal(avreal32-1.28r7) – как и предыдущие не опознает byte blaster (он исправен, проверялся неоднократно на рабочем компе). Система Win7-64, драйвера подписал, установил. В ответ: DLportIO.dll succesfully loaded, DLportIO.sys interface activated, а ВВ не находит. Проблема может в PCI-LPT карте? менял ее два раза уже на другую. Адрес смотрел в винде 0xbd00. Строка для запуска выглядит так : avreal32 -ab -p0xbd00 +mega16 -%. Adapter not found. Это что на современной машине без интегрированного LPT-порта не запустить, или я все же косячу? Спасибо!

    • ReAl says:

      Если честно, то я довольно давно проверяю только на набортном, так как дома PCI-LPT пришлось вынуть — в новой маленькой материнке гнездо перекрыла видеокарта… А на работе не держу W7.
      От PCI/набортный ничего зависеть не должно. Т.е. если драйвер подписан, тестовый режим включен, …, то должны работать и набортный, и PCI-ный интерфейсы.
      Надо проверить, не внёс ли я ошибку. Подумаю, где можно подоткнутся с карточкой к W7.

  11. MegaJohn says:

    возвращает 403 по ссылкам “description” и “adapters”
    Более детальная информация находится на странице description, схемы адаптеров для программаторов — на странице adapters.

  12. Геннадий says:

    LPT распайка под fbprg – работает с AVReal
    LPT распайка под STK-200 работает с avrdude и ICCAVR

    Подскажите почему AVReal не работает с STK-200:
    на команду
    avreal.exe +mega128 -as -p1 пишет
    Atmel STK* adapter not found

    • ReAl says:

      У STK200/STK300 есть перемычки детектирования со второй на двенадцатую и с третьей на одиннадцатую ножки LPT.
      avreal проверяет наличие хотя бы одной из этих перемычек.

      • Геннадий says:

        Эти перемычки присутствуют.

        • Геннадий says:

          В Вашей схеме STK-200, предлагаю резистор между Vcc и MISO подключать по необходимости.
          Чтобы отлаживать устройства, не отключая адаптер, на MISO не нужно Vcc.

          На многих схемах STK-200 этого резистора нет.

          • Геннадий says:

            ключи -r не отрабатывает, т.к. останавливается на Atmel STK* adapter not found.

            Но интересный факт: ключ -! отрабатывает.
            Пишет, что Atmel STK* adapter not found, но команду -! выполню и …
            выполняет правильно: определяет микросхему и шитает фьюзы.

    • ReAl says:

      Вот добрался до компьютера с LPT. Linux, XP — адаптер распознаётся:

      avreal/WIN32  -  AVR controllers programmer by Redchuk Alexandr
      v1.28r12 (Jan  4 2013 15:22:05)  http://real.kiev.ua/avreal
      bug-reports, suggestions and so on mail to avreal@real.kiev.ua
      Command:
        -as -p1 +mega8
      Adapter enabled
      Device connected, mega8|mega8A detected
      Chip not locked
      avreal/Linux32  -  AVR controllers programmer by Redchuk Alexandr
      v1.28r12 (Jan  4 2013 14:52:34)  http://real.kiev.ua/avreal
      bug-reports, suggestions and so on mail to avreal@real.kiev.ua
      Command:
        -as -p1 +mega8
      Adapter enabled
      Device connected, mega8|mega8A detected
      Chip not locked

      А ключ -! снимает все проверки, так что если с ним работа с микроконтроллером идёт, а без него ругается на отсутствие адаптера, то надо искать неконтакты в кабелях на детектирующих перемычках.

  13. Hrabosh says:

    Hi Alex,

    thanks for the great job on AvReal.

    One question: How do I change CKDIV fuse on AtMEga165A? See what I get if I’m trying to change it:

    avreal -p1 -ab -o10kHz +MEGA165A -fCKDIV=OFF -v

    avreal/Linux32 – AVR controllers programmer by Redchuk Alexandr
    v1.28r12 (Jan 4 2013 14:52:34) http://real.kiev.ua/avreal
    bug-reports, suggestions and so on mail to avreal@real.kiev.ua
    Command:
    -p1 -ab -o10kHz +MEGA165A -fCKDIV=OFF -v
    Adapter enabled
    Device connected, mega165A detected
    Chip not locked
    Fuses
    OSCCAL = 83
    _LOCK = 0xFF
    BLB1 = 3
    BLB0 = 3
    _LOW = 0×62
    CKDIV = 0
    CKOUT = 1
    SUT = 2
    CKSEL = 2
    _HIGH = 0×99
    OCDEN = 1
    JTAGEN = 0
    WDTON = 1
    EESAVE = 1
    BOOTSZ = 0
    BOOTRST = 1
    _EXT = 0xFF
    BODLEVEL = 7
    RSTDISBL = 1
    Verifying fuses
    CKDIV : expected 1, read 0
    Verifying of fuses failed

    FAILED
    Reset pin released
    Adapter disabled

    According to datahseet, I should change LB0 and LB1 fuses firts (to unlock fuses), but I can’t see them in the list.

    please help,

    Zbynek

    • ReAl says:

      There are no write command in your command line:

      avreal -p1 -ab -o10kHz +MEGA165A -fCKDIV=OFF -v

      Add write switch:

      avreal -p1 -ab -o10kHz +MEGA165A -fCKDIV=OFF -w -v

      Chip is not locked now (see avreal messages), LB0, LB1 fuses are erased.
      LB0, LB1 fuses can be erased only by “chip erase” -e command, not via -f switch.

  14. Юрий Савицкий says:

    Александр, доброго здоровья и успехов в Новом году.
    Насчет PDI_Xmega понятно, что непросто, а как-бы осилить
    TPI? Как раз в “ракурсе Ваших интересов” – для поделок!
    Готов распаять для Вас макетки tiny10, tiny20 -
    последняя в корпусе SOP_0,65 очень симпатична!

    • ReAl says:

      tiny10 вже розпаяна. Залишилося час знайти :-)
      Причому одна вдома, одна на роботі — хтозна, де «час та натхнення» матиму :-)

  15. Kostas says:

    Хочу собрать программатор на FT2232D по простейшей схеме приведенной в разделе “адаптеры”, но с буффером на выходе. Почитал, но не доконца понимаю есть ли возможность подключить вход ОЕ буффера к FT2232D, что бы переводить выходы буффера в третье состояние после программирования?

    • ReAl says:

      Для разрешения выходов можете использовать любой свободный вывод из ADBUS или ACBUS, нужно только будет его прописать в конфигурации.
      Например, для ADBUS7 при буферах, открывающихся низким уровнем:

      enable=~adbus7

      При буферах, открывающихся высоким уровнем:

      enable=adbus7

  16. Vlad says:

    Добрый день.
    Не могли бы Вы прикрутить к Вашему и без того отличному программатору поддержку PDI для xMega?

    • ReAl says:

      «Хороший вопрос»™

      С Xmega-ми такая беда, что у меня к ним нулевой интерес.
      ATtiny24A..84A, ATmega48PA..ATmega328PA идут в мелкие домашние поделки и в серийные проекты (включая находящиеся сейчас в стадии опытных образцов), ATmega64 стоит в разных платках для внутренних нужд, их есть некоторый запас уже запущенных/проверенных.

      А вот с ATXmega128A1 даже есть уже спаянная плата с 512 K внешней памяти и 3*RS485 + 3*I2C (выпущены наружу через 2N7002L), но она лежит без движения уже года два.

      Ну а нет непосредственного интереса — не находятся и кусочки времени для постепенного выковыривания из них результата.

      • Vlad says:

        До недавнего времени и у меня к xMega тоже был нулевой интерес. Но вот на рынке стали появляться дешёвые графические дисплеи от мобильных телефонов (S5230, к примеру), для управления которыми ресурсов обычных мег уже не хватает. Народ начинает эти дисплеи осваивать (есть уже проекты карманных осциллографов и т.д.). Вот и начальник моей наноконторки по разработке в том числе и портативных глюкалец, насмотревшись на мобильники, уже воротит нос от ч/б алфавитно-цифровых индикаторов и плёночных клав – “маловато будет”, да и нерационально использовать переднюю панель отдельно для индикатора и клавы (которую ещё и сделать надо). Так что придётся ваять очередное глюкало на этом дисплее, а в качестве камня планирую xMega – ресурсов вполне достаточно (есть и DMA, поддержка склероза, ядро 32МГц, знакомая система команд и т.д.). Есть и минусы: PDI вместо SPI (с предназначенным только для программирования выводом) и отсутствие поддержки Вашим программатором.

        Впрочем, скорее всего такая поддержка вообще невозможна, т.к. программатор должен обеспечить минимальную частоту тактов около 10кГц, иначе контроллер выйдет из режима программирования: “If the clock frequency on PDI_CLK is lower than approximately 10kHz, this is regarded as inactivity on the clock line. This will automatically disable the PDI… This also means that the minimum programming frequency is approximately 10kHz.” Частота тактов через параллельный порт может быть гораздо выше (что-то около 2МГц), а вот непрерывность последовательности вряд ли может быть обеспечена (разве что под чистым ДОСом).

        И вопрос по программатору, затронутый уже DreamCat, по поводу fuses: можно ли убрать постоянный их вывод на экран (очень много нечасто используемой инфы выводится)? Выводить только по ключу, а если указано имя файла, то и в файл (в том же формате как в командной строке). Из этого файла можно и писать в контроллер (тем более, что техника чтения из файла в таком формате у Вас уже используется для конфигурации выводов).

        • ReAl says:

          Да, про это ограничение 10 кГц я уже кому-то тоже писал. С LPT врядли реально. С FT2232 может и получиться, так как есть буфер в микросхеме. Нужно думать и пробовать, но для этого нужно совсем свободное время :-)

          А вот про fuses хорошо, что напомнили. Давно пора сделать ключ уровня болтливости (и заодно уйти от случайно проскочившего %, который в батниках приходится набирать как %%) и по умолчанию поставить уровень, на котором распечатка fuses не делается. Ну и про файл для fuses тоже подумаю.

          • Vlad says:

            Да, действительно, Вы уже отвечали на вопрос о xMega, причём не раз, извините (а вопрос в FAQ, однозначно). Первый раз Вас спрашивали непосредственно о xMega (тут попробую, можно ли вставлять в текст ссылки – тынц) (http://real.kiev.ua/avreal/comment-page-1/#comment-102), где Вы писали и о 10кГц и об отключающей паузе в 100мкс, делающей проблематичным программирование через параллельный порт из-за непредсказуемых пауз во время исполнения программы. Я же инфу об этой прекрасной особенности нашёл в доке на xMega только после Вашего ответа на мой первый комментарий, когда Вы не проявили интереса к этой теме. ;)

            Второй раз Вы упомянули об этом в ответе на вопрос о ATtiny4/5/9/10 (http://real.kiev.ua/avreal/comment-page-2/#comment-30413). В доку ATtiny4/5/9/10 я тоже заглянул, но временнЫх ограничений что-то не нашёл. Хотя формат похож, но для перевода в/из режима программирования в tiny используется отдельный сигнал сброса, в то время как в xMega этот сигнал совмещён с тактовым сигналом (поэтому, очевидно, разработчики были вынуждены ввести ограничения на длительность такта). Так что работа с ATtiny4/5/9/10 через LPT вполне возможна, на мой взгляд.

            Самая же сложная (а, стало быть, и самая интересная) ситуация, конечно, с xMega. Но даже с ней, по-моему, не всё так безнадёжно: ведь, хотя невозможно предсказать момент времени увеличения продолжительности тактового импульса, померить-то его длительность мы всегда можем, используя хотя бы счётчик тактов в писюгане (команда RDTSC), а, следовательно, можем узнать, была ли у контроллера возможность выпасть из режима программирования. Если была, то входим заново, а если нет – продолжаем, собственно, шить (т.е., если нельзя предотвратить сбой, то можно попробовать написать обработчик сбоя). Система тормозит не так часто, так что, “думаю, прокатит”. ;)

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

            • ReAl says:

              В Xmega-х сбойную страницу практически наверняка придётся пере-(до-)писывать.

              Да, по tiny4..10/20/40 я позже прочитал внимательнее и увидел, что ограничения нет, что упрощает дело.
              Камушки довольно интересные, жаль только, нет ни EEPROM, ни возможности самопрограммирования для его эмуляции :-( (это опять к вопросу о моём интересе ;-) ).
              Но, опять таки, «спасибо, что напомнили».

              • Vlad says:

                Да, камешки ATtiny4–20 неплохие, особенно в SOT-23, но, видно, староваты – ядро 12МГц, усечённый набор команд (да и Ваш программатор их почему-то не поддерживает ;) ) Поэтому предпочитаю более поздние, ATtiny13, например: 20МГц, EEPROM, SPI, 6 выводов, корпус 10-QFN 3мм.

                Сбойную, т.е. недозалитую или без заданной команды записи – понятно, что надо. А вот что будет с уже залитой в буфер, когда уже дана команда записи и сбой по такту случится во время опроса флага FBUSY?

                Впрочем, есть гораздо более интересный вопрос, а именно: что конкретно случится при растяжке такта системой? Ведь такт может быть заморожен как в низком, так и в высоком состоянии по произвольному выбору родной Системы. Будем считать хорошим случаем, если такт замёрзнет в низком состоянии – ведь это активный уровень для входа сброса. А вот что произойдёт, если такт замёрзнет при высоком уровне? Очевидно, что контроллер вывалится из режима программирования, дальше, видимо, сработает задержка внутреннего сброса (раз сигнал сброса неактивен) и контроллер начнёт исполнять недозалитый код (со всеми вытекающими из этого волшебного случая весёлыми последствиями ;) ) Тормознуть система может и на сотни миллисекунд, так что времени хорошенько “взлохматить бабушку” у контроллера будет предостаточно ;)

                Т.е., вообще говоря, очень желательно, чтобы волшебного случая с высоким уровнем мёрзлого такта никогда не возникало и подключать напрямую xMega к LPT, возможно, несовсем правильно, правильно? ;)

                Тем более, что и сам Атмел учит нас в своём Канонiчном Труде под названием “Как вам обустроить нашу xMega” “AVR1612: PDI programming driver” как подключать xMega к тому же контроллеру AT90USB1287 (посмотреть можно на стр.3 Труда):

                Так почему же нам, кустарям, не поддержать это славное начинание профессионалов примерно такой непостижимой сложности схемкой:

                При замерзании такта в состоянии “1″ конденсатор C1 просто разрядится через резистор R4, который достаточно мал для того, чтобы на выводе сброса установился уровень с делителя внутренний pull-up резистор (25k) и R4 (2k0) примерно 0.1Vcc при пороге срабатывания по сбросу 0.5Vcc – и контроллер не выйдет из состояния сброса ;)

                Вместе с тем, R4 достаточно велик для того, чтобы не шунтировать такты с токоограничивающего R3. Исходя из его сопротивления прикидываем примерное значение ёмкости – примем постоянную времени цепочки R4C1 равной примерно 500мкс (с запасом) и получим
                t=R*C
                C=t/R
                C=5*10-4/2*103=2.5*10-7 – примерно 0,22мкФ – “думаю, прокатит” и 0,1мкФ ;)

                У меня и так по всем сигнальным проводам Вашего программатора стоят последовательные резисторы 300 Ом, так что для программирования xMega мне осталось сделать небольшой переходник с папой на 6 и мамой на 4 контакта, двумя детальками C1 и R4, и соединёнными проводами MOSI/MISO – и железо готово ;)

                Остаётся только один вопрос: Вы будете допиливать Ваш программатор или мне попробовать наваять что-то своё? Уж очень охота мне продолжать невозбранно троллить коллег, показывая в ответ на их вопрос “каким программатором пользуешься” шлейф о шести проводках и пустой разъём ;)

              • ReAl says:

                Еле долез до ответа.

                Tiny 4..10,20,40 как раз новые и кое-что интересное в них сделано. Tiny10 перекрыла номер старой Tiny10, которая была совсем не такой.
                При сбое (сбросе) после команды старта записи но до окончания страница останется недописанной, я бы её записал заново поверх.
                Принудительный увод замёрзшего такта в 0 — да, похоже, так и надо сделать. А резистор R1 (MOSI – PDI DATA) увеличить, так как выходу PDI DATA его надо будет пересиливать.

                На последний вопрос ответить тяжелее. Точнее, на вопрос «когда?», который неизбежно последует за попыткой ответить «буду».
                Тут вот хорошо перебрать все варианты работы с новыми ключами -i, подвигать уровни разных собщений — и то времени нет ;-)
                Ну начну я потихоньку в перерывы смотреть (сначала tiny10, видимо), но как быстро дело продвигаться будет — не знаю.

              • Vlad says:

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

                По поводу R1: да, пожалуй, сопротивление маловато, но такое значение взято из атмеловской доки, что видно на первой картинке. “И что, блин, характерно”: при номинальном для xMega Vcc=3.3V ток через резистор k22 будет 15mA, т.е. ровно 3/4 Imax выхода, так что пересилит без проблем. Единственное, что при питании от маломощного источника, вроде выходов LPT, может быть просадка по питанию (что, на мой взгляд, не повлияет на заливку, т.к. контроллер гарантированно работает даже при 1,6В). Впрочем, R1 вполне можно и увеличить, мы же не можем отключать выходы порта, как можно отключать передатчик отдельно от приёмника в контроллере (видимо, что в схеме из атмеловского букваря резисторы стоят на случай нештатных разноуровневых сигналов на выходах контроллеров).

                По поводу ключей “i” – можно ввести подключи для progress bar & fuses, и тогда сам пользователь будет решать, нужны ли они – это уменьшит количество уровней и заморочки с их выбором.

                Ну а то, что Вы решили таки допилить программатор (благоразумно начав с tiny10) очень хорошая новость – мы все с нетерпением будем ждать вариант с xMega и с удовольствием его тестировать :) . А затем Вас поджидает уже и 32-разрядный монстр AT32, правда, уже с асинхронным интерфейсом ;) .

              • ReAl says:

                Может допишет, может и нет. В процессе отладки можно поэкспериментировать, нарочно убирая такт после разной задержки.
                В атмеловской доке могло иметься ввиду, что программирующий чип перед переходом на приём переводит ножку на вход (если снять TXEN, то ножка начинает/продолжает управляться DDR-ом). А резистор так, на всякий случай.
                Двунаправленная нога DebugWire точно не тянет такие токи, там и 1 килоом уже маловат. По крайней мере, avrdragon не воспринимал ответ.

                p.s[0] = “Возможно, у движка разные права по тегам для просто зашедших, зарегистрированных, а то и в админке. Так как в режиме управления комментариями редактирование дало и sup вставить, и img.”
                p.s[1] = “Подзадержался с ответом, но было совсем не до этого.”

              • Vlad says:

                Благодарю за исправления в моём посте. А здешний движок действительно весёлый: мало того, что он не все теги воспринимает, так ещё у него, видимо, есть ограничение на вложенность ответов: я уже второй раз отвечаю Вам, хотя движок не предоставляет такой возможности: под Вашими последними двумя постами просто нет ссылки “Reply” ;)

                По поводу дописывания страницы: возможно, эксперименты тут вообще не понадобятся – есть одна идея ;)

                Про ногу DebugWire: она и не должна тянуть низкоомную нагрузку. Вот что сказано в доке по этому поводу: “Pull-up resistors on the dW/(RESET) line must not be smaller than 10kOhm. The pull-up resistor is not required for debugWIRE functionality.”

                Впрочем, в xMega этот интерфейс не используется. А вот выходные характеристики на PDI_DATA я в букварях что-то так и не нашёл – то ли проглядел, то ли они не отличаются от характеристик обычных линий ввода/вывода.

                На днях я наваял небольшую прожку для оценки частоты и длительности подмерзания системы. Исходил я из того, что для программирования xMega нужно временнОе окно между двумя тормозами более 80 мкс (с запасом) такой длительности, чтобы можно было залить страницу и дождаться подтверждения её записи. Длительность окон измерялась в тактах параллельного порта, работающего на максимальной скорости (в xMega, вроде, нет привязки к частоте тактов контроллера).

                Необходимое для заливки одной страницы количество тактов можно вычислить, исходя из того, что страница в xMega равна 256 байт, а для передачи одного байта используется 12 бит, отсюда получаем: 256*12=3072 такта + необходимые команды, итого с запасом 3500 тактов + 4мс на запись во флэш.

                Результаты не очень оптимистичные. Если под 98-ми форточками есть довольно много достаточно длинных временнЫх окон, в которые ещё можно просунуть страницу и опросить флаг занятости для её записи, то под ХРюшкой всё гораздо хуже – окна слишком короткие. Впрочем, всё ещё зависит от используемого железа – чем быстрее порт, тем лучше (в разумных пределах, конечно – сигналы ещё надо пропихнуть до контроллера).

                В общем, на мой взгляд, если даже на каких-то компах и осях, возможно, и прокатит, то в целом овчинка не стоит выделки.

                И тут настало время вернуться к вышеозначенной идее. Почему бы не сделать небольшой адаптер-переходник, преобразующий SPI-интерфейс Вашего программатора в PDI-сигналы xMega. Причём, здесь не надо AT90USB128 – достаточно будет какой-нибудь mega48 или даже tiny2313. Всё, что ему надо делать – это принимать данные по SPI и отправлять по uSart и обратно. А если писюган тормознёт – тупо передавать в xMega IDLE. Этот же адаптер можно будет использовать и для AT32.

  17. Nikolay says:

    Здравствуйте, интересует возможность записать прошивку Raw binary с определенного адреса, поддерживается ли такой данный режим?

    • ReAl says:

      (пока) нет.
      В выходные (воскресенье-понедельник) подумаю. Как ключ офоримть :-)
      :bin:filename:offset для линукса-то без проблем, двоеточие часто прмиеняемый разделитель. В win двоеточие в пути легко может оказаться.
      Может, :bin+offset:filename ?
      Напрмиер, :bin+EF00:filename.

      Хотя я сторонник применения чего-то типа srecord для конверсии файлов, в том числе с двиганьем туда-сюда, а программатор только чтобы шил.
      Как-от так:

      srec_cat bf.bin -Binary --offset 0x100 -O bf.hex -Intel

      И уже файл bf.hex скормить avreal-у.
      Может, освоитесь с заталкиванием srec_cat в командные файлы / Makefile и не стоит нагружать программатор «несвойственными ему функциями, подменяя собой» утилиту манипулирования файлами прошивок?

      • Nikolay says:

        Спасибо, за подсказку попробую разобраться c srecord – не знал, что такие программы существуют. Действительно случай специфичный и мало кому требуется, поэтому Makefile хороший выход.

  18. Сергей says:

    Не могу запрограммировать MEGA32 с USB-программатора MegaJohn на двух разных машинах с Windows7/x64. На машинах с х32 работает прекрасно. Пользуюсь AVReal уже много лет (в том числе совместно с MegaJohn тоже очень давно).

    Вот что он пишет:

    avreal/WIN32 – AVR controllers programmer by Redchuk Alexandr
    v1.28r11 (Jun 22 2012 23:30:09) http://real.kiev.ua/avreal
    bug-reports, suggestions and so on mail to avreal@real.kiev.ua
    Command:
    +MEGA32 -aft2232:enable=~adbus4,~acbus2 – -az -o11.0592MHz -e -w -v -cRelease\exe\code.hex -dRelease\exe\eeprom.hex
    Start address record in HEX file ignored
    Start address record in HEX file ignored
    Adapter enabled
    Device connected, mega32|mega32A detected
    Chip not locked
    Device erased
    Device connected, mega32|mega32A detected
    Fuses
    OSCCALs = B3 B2 AE AF
    _LOCK = 0xFF
    BLB1 = 3
    BLB0 = 3
    _LOW = 0x3F
    BODLEVEL = 0
    BODEN = 0
    SUT = 3
    CKSEL = F
    _HIGH = 0xCA
    OCDEN = 1
    JTAGEN = 1
    CKOPT = 0
    EESAVE = 1
    BOOTSZ = 1
    BOOTRST = 0
    Programming CODE memory
    …………………………………….. done (1.50s)
    Verifying CODE memory

    Synchronisation lost

    FAILED
    Reset pin released
    Adapter disabled
    FTDI chip left in MPSSE mode with programming pins configured as inputs

    • ReAl says:

      Странно…
      Это ж не LPT, у которого из-за использования сейчас 32-битной dll в 64-битных меняются времена и может проявляться их нестабильность. Для FT2232 частота работы от разрядности ОС зависеть не должна, откуда ж тогда этот sync lost ?
      Я проверял перед выкладыванием релиза, но на atmega168. В выходные опять подброшу диск со всеми вариантами ОС к компьютеру и проверю для mega8 и mega64 (mega32 у меня нет под рукой).
      Правда, у меня нет MegaJohn-овского адаптера, но между записью и чтением не произваодится передёргивания reset, так что работа не должна отличаться от других адаптеров.

      p.s. Попробуйте еще раздельно двумя вызовами, -e -w и -v раздельно.

      • Сергей says:

        Раздельно тоже не получается. Я попробовал другую прошивку на ATmega64. Та же самая песня, даже ещё хуже – программирование даже не начинается, сразу Can’t resync. Что бы это значило?

        Пишет вот что:

        avreal/WIN32 – AVR controllers programmer by Redchuk Alexandr
        v1.28r11 (Jun 22 2012 23:30:09) http://real.kiev.ua/avreal
        bug-reports, suggestions and so on mail to avreal@real.kiev.ua
        Command:
        +MEGA64 -aft2232:enable=~adbus4,~acbus2 -az -o11.0592MHz -e -w -cRelease\exe\code.hex -dRelease\exe\eeprom.hex
        Start address record in HEX file ignored
        Adapter enabled
        Can’t resync

        FAILED
        Reset pin released
        Adapter disabled
        FTDI chip left in MPSSE mode with programming pins configured as inputs

        Прошу помощи!
        С уважением, Сергей

        • ReAl says:

          А пришлите-ка мне эту прошивку, которая даже не стартует, mega64 у меня таки есть.
          И туда же в почту развёрнутый лог с -%%, там сразу будут всякие подробности типа версии библиотеки/драйвера.
          И какая версия Win7.

          Странно как-то это всё.

      • Сергей says:

        Попробовал с другими кабелями, с другим питанием на том же MegaJone – получилось запрограммировать ATmega64 через Win7/x64.
        Причём на х86 всё работало по-любому: и с разными вариантами питания и с разными кабелями и с разными MegaJohnами.
        Видимо какие-то критичные задержки так проявляются.
        Даже не знаю, радоваться или огорчаться, будет ли это работать стабильно? Завтра буду тестировать дальше.

      • Сергей says:

        Не долго музыка играла! Запрограммировать под х64 получилось только без верификации (-v). Как только дописываю -v, сразу снова Syncronisation lost. Привет…

    • ReAl says:

      Добился похожего эффекта у себя в Ubuntu :-) Хотя он может быть похожим только внешне несмотря на то, что под Win7/64 описанные ниже действия дали такой же эффект.

      Дома нашлась плата с atmega64 на внутреннем RC 8 МГц (нет даже места под кварц).

      Два адаптера — на FT2232H с быстрыми и мощными буферами (74LVC1G125) и на FT2232C без буферов и даже без EEPROM (т.е. негде прописать включение б́о́льшего тока выходов).

      С ключом -os2MHZ адаптер с буферами уверенно шьёт и верифицирует. Адаптер без буферов при питании контроллера и IO адаптера 3.3 V успевает на верификации выдать несколько точек до Synchronisation lost, при питании 5 V ситуация точно как у Вас в логе.

      Для тактирования ядра 8 МГц частота SPI 2 МГц на грани даже без учета того, что RC может и занизить частоту. Завалы фронтов на адаптере без буферов повлияли.

      С ключом -o8MHz и адаптер без буферов уверенно работает. Дело в том, что ключ -os задаёт желаемую частоту SCK (выбирается наибольшая возможная из сетки, не превышающая заданную), а -o задаёт частоту тактирования контроллера, от которой сначала берётся запас -5% на возможное работу от внутреннего RC с отклонением частоты, только потом делается рассчёт по документации (делится на 4 для atmega64). В итоге при ключе -o8MHZ на FT2232C устанавливается частота SCK 1.5 МГц

      Похоже, подтверждается правило «проблемы с прошивкой — попробуй снизить частоту» :-)

      В Вашем случае запас по частоте большой (11 МГц тактирование процессора и 2 МГц SPI), но всё же…
      На компьютерах с 64-битной Win7 использовались физически те же адаптеры и кабели, что и на 32-битной?
      Или где-то проскочили изоляторы ADuM с другой буквой (ниже рабочая частота), шлейф длиннее, …

      p.s. Изменение в программе размера порции на чтении (-r, -v) не влияет на потерю синхронизации при частоте на грани. Хоть по одному байту читать.

      • Сергей says:

        Отвечаю на вопрос: На компьютерах с 64-битной Win7 использовались физически те же адаптеры и кабели, что и на 32-битной!
        И вообще, это то же самое устройство (было изготовлено в составе партии программаторов для предприятия), а не подобное внешне, но с другими примочками.

        • ReAl says:

          Эх…
          «Будем искать…»™

        • ReAl says:

          Наконец-то смог сесть и погонять это дело ещё.
          Итак: плата с atmega64-16 и панелькой под кварц, диск с мультизагрузкой XP/32, XP/64, W7/32, W7/64. Два разных программатора на FT2232C, один из них простейший, как на страничке «адаптеры», другой буферизованный 74VHC244.
          Вот такие батники для вызова avreal:
          tests_m64.bat

          @echo off
          for %%x in (8 9.14 10 12 14.74) do (
              echo insert %%xMHz XTAL and press any key >&2
              pause >nul
              echo.
              echo ==================================================
              echo ====    XTAL = %%xMHz
              echo.
              for %%f in (1MHZ 1.5MHZ 2MHZ 3MHZ) do (
                  echo -os%%f >&2
                  call test.bat %1 mega64 code.hex %%f
                  call test.bat %1 mega64 m64.hex %%f
              )
          )

          test.bat

          @echo --------------------------------------------------
          @echo ----    Programming %2 with %3 by %~1 -os%4
          @%~1 +%2 -e -w -v %3 -os%4
          @echo ----
          @echo.
          @echo.

          Первому батнику подсовывалась аргументом нужная версия avreal с ключами для выбранной платы и вывод перенаправлялся в соответствующий файл:

          tests_m64 "avreal32-1.28r11.exe -aft2232" >w7-64-unbuffered.log
          tests_m64 "call avreal-denis.bat" >w7-64-denis.log

          В основном проверялась версия 1.28r11.

          Батник просил менять кварцы (сетку видно в батнике) и вызывал второй батник с нужными параметрами, перебирая частоты SPI и чередуя два разных файла. 11.059 у меня не было, но это, думаю, не так важно при наличии от 9 до 12.

          Вышло больше трёхсот килобайт логов :-)

          Отдельно попробовал программатор на FT2232H:
          ATmega64-16 с кварцем 16 MHz и -os3.75MHz
          ATmega168-20 с кварцем 20 MHz и -os5MHz, -os4.3MHz

          Итог — у меня отличий между ОС не выявлено. Что а старушке WinXP/32, что в Win7/64 — поведение соответствует ожидаемому. При пограничных комбинациях (кварц 8 MHz и -os2MHz, кварц 12 MHz и -o3MHz, кварц 20 MHz и -o5MHz) синхронизация теряется. Да, при этом чаще срывается на верификации, чем на программировании, но это хоть и любопытно, но не настолько интересно, чтобы тратить сейчас на это время. Там на разбегах кварцев что угодно может быть.

          При снижении частоты SPI относительно кварца, например, при тактировании 9.14 МГц и SPI 2 MHz ничего не сбоит (у Вас сбоило при 11.059 MHz и 2 MHz).

          Самое противное, что я пока не могу придумать, какие можно сделать тесты в программе, чтобы выслать её Вам для дополнительных проверок :-(

  19. DreamCat says:

    how can I read/write fuse bit or flash data only?

    I’m trying to write a windows GUI client for AVReAl. it’s free same as AVReAl, LOL.

    • ReAl says:

      Fuses are read at any avreal call but reported as text to stdout only:

      v1.28r11 (Jun 22 2012 22:46:27)  http://real.kiev.ua/avreal
      bug-reports, suggestions and so on mail to avreal@real.kiev.ua
      Command:
        -aft2232h=avreal-f32ha_a.cfg +mega64
      Device connected, mega64|mega64A detected
      Chip not locked
      Fuses
        OSCCALs   = C0 C0 B9 B9
      _LOCK = 0xFF
        BLB1          = 3
        BLB0          = 3
      _LOW = 0x94
        BODLEVEL      = 1
        BODEN         = 0
        SUT           = 1
        CKSEL         = 4
      _HIGH = 0xD1
        OCDEN         = 1
        JTAGEN        = 1
        CKOPT         = 1
        EESAVE        = 0
        BOOTSZ        = 0
        BOOTRST       = 1
      _EXT = 0xFF
        M103C         = 1
        WDTON         = 1
      Total time 0.36s
      All OK

      There is no way to write fuses state into file in hex or binary form now.

      Command

      avreal [adapter and chip switches] -f[fuselist] -w

      will write fuses only, no acces to flash/eeprom even for reading. Fuse state reported twice, first for fuse state before programming, second — after one:

      avreal/Linux64  -  AVR controllers programmer by Redchuk Alexandr
      v1.28r11 (Jun 22 2012 22:46:27)  http://real.kiev.ua/avreal
      bug-reports, suggestions and so on mail to avreal@real.kiev.ua
      Command:
        -aft2232h=avreal-f32ha_a.cfg +mega64 -fboden=1 -w
      Adapter enabled
      Device connected, mega64|mega64A detected
      Chip not locked
      Fuses
        OSCCALs   = C0 C0 B9 B9
      _LOCK = 0xFF
        BLB1          = 3
        BLB0          = 3
      _LOW = 0x94
        BODLEVEL      = 1
        BODEN         = 0
        SUT           = 1
        CKSEL         = 4
      _HIGH = 0xD1
        OCDEN         = 1
        JTAGEN        = 1
        CKOPT         = 1
        EESAVE        = 0
        BOOTSZ        = 0
        BOOTRST       = 1
      _EXT = 0xFF
        M103C         = 1
        WDTON         = 1
      Programming fuses
      New fuses value
        OSCCALs   = C0 C0 B9 B9
      _LOCK = 0xFF
        BLB1          = 3
        BLB0          = 3
      _LOW = 0xD4
        BODLEVEL      = 1
        BODEN         = 1
        SUT           = 1
        CKSEL         = 4
      _HIGH = 0xD1
        OCDEN         = 1
        JTAGEN        = 1
        CKOPT         = 1
        EESAVE        = 0
        BOOTSZ        = 0
        BOOTRST       = 1
      _EXT = 0xFF
        M103C         = 1
        WDTON         = 1
      Total time 0.41s
      All OK
      Reset pin released
      Adapter disabled

      Flash or EEPROM can be read/write separately using -c and -d switches for files.
      For flash:

      avreal [adapter and chip switches] -c [flash file name] [read/write/verify switches]

      For eeprom:

      avreal [adapter and chip switches] -d [eeprom file name] [read/write/verify switches]
      • DreamCat says:

        Thank a lot.
        here is two screen shot. it just is begining.
        https://sites.google.com/site/myeaglecad/avreal_wingui/2012-07-05%2000%2006%2031.jpg
        https://sites.google.com/site/myeaglecad/avreal_wingui/2012-07-05%2000%2007%2023.jpg

        btw, I have a few FT232BM, is it can be use as FT232H to program AVR chip?

        • ReAl says:

          > here is two screen shot. it just is begining.
          Cool :-)

          > I have a few FT232BM, is it can be use as FT232H to program AVR chip?
          No, FT232BM has neither MPSSE (like FT2232*, FT232H — usable by avreal) nor synchronous bitbang (like FT2232*, FT232H, FT232R — usable by avrdude) support.

          FT232BM can be used only as “COM-port control lines bit-bang programmer” but it is very sloooooow for any USB-to-serail converter beacuse of 1ms USB tick.

          btw, fuse reading by

          avreal32 +mega16 -aft2232

          eventually resets chip and can be used as “remote reset button”.

        • ReAl says:

          I am sorry, your comment was blocked by spam filter and through inattention I wiped the comment instead of unblock it.

          About spaces:
          In command line all spaces in full program name and in arguments must be quoted by double-quote character otherwise they will be splitted by spaces on multiple “words”. This is common command processor feature.
          Example

          "C:\Program Files\some cool program.exe"  argument_without_spaces "argument with spaces"

          It is safe to quote all arguments either with spaces or not.

          Please, repeat the rest of the lost post :-)

  20. MegaForever says:

    Добрый День.Возникла проблема по использованию avreal32 в WIN7-64bit, программатор alterabb LPT.В консоли пишет что BB не найден, хотя под XP-32bit на этом же компьютере все работает. Драйвера(dlportIO-64) устанавливал как написано было в тхт файле архива(в консоли пишет что файлы драйвера найдены и подгружены). Скажите в чем может быть проблема. Заранее спасибо.

    • ReAl says:

      На диске, назначенном для экспериментов, восстановил из образа раздел с чистой Win7/64 Pro sp1 build 7601.
      Чего-то свежее нет, я и этот диск к компьютеру подключаю раз в пол года.
      Для полной уверенности взял архив с сайта и пошагово провёл инсталляцию: подписал драйвер, включил тестовый режим, запустил bat-файл.
      Перегрузился.
      В правом нижнем углу экрана появилась надпись

      TestMode
      Windows 7
      Build 7601

      Т.е. тестовый режим программа dseo включила.
      avreal на набортном LPT1 заработал, а PCI-LPT в этот компьютер не становится, материнская плата маленькая, видеокарта перекрыла вентилятором гнездо PCI.
      Посмотрите по надписи в углу — включился ли режим тестовых подписей.
      Если у Вас PCI карта — возможно, в Win7 она получила другой адрес, хотя на том же компьютере должна бы тот же.

      • MegaForever says:

        И в тестовом режиме пробовал через dseo пробовал ниче не помогает. Драйвера подгружает а BB так и не находит. LPT порт у меня встроен в материнку, по стандартному адресу 0×378

        • ReAl says:

          Странно.

          Драйвер и библиотека сели в свои каталоги, Windows\system32\drivers и Windows\SysWOW64 соответственно? Проверьте родным файловым менеджером, он в 64-битном режиме работает. Программам в 32-битном режиме подстановка делается: вместо Windows\system32 они видят Windows\SysWOW64, поэтому-то и инсталляционный батник запускать нужно в 64-битном режиме.

          В dseo нужно выполнить две операции — подписать драйвер и установить тестовый режим. Win по дороге поругивается, но на это нужно не обращать внимания.
          После перезагрузки (без F8, обычная перезагрузка) в правом нижнем углу десктопа должна появиться надпись TestMode.
          После этого и в первых Win7/64, и с sp1 всё работало.

          p.s. Почему-то Ваши сообщения попадают сразу аж в спам-отстойник. Возможно, IP где-то неудачно засветился.

        • MegaForever says:

          Повторил всю процедуру установки драйвера заново, заработало, но только в тестовом режиме, в обычном таже проблема.

          • ReAl says:

            Если режим тестовых подписей не включен (через dseo или при загрузке), оно и не должно работать.
            Для обычного режима подпись нужно у микрософта покупать, они проверят драйвер на своих тестах на совместимость и выдадут постоянную подпись.

            Кстати, тестовый режим можно включать-выключать и без dseo, она нужна, фактически, только для подписи.
            А тестовый режим можно из командной строки (батником) имеющимися средствами Win7
            Включить тестовый режим:

            Bcdedit.exe -set TESTSIGNING ON

            Соответственно, выключить:

            Bcdedit.exe -set TESTSIGNING OFF

            После чего перегрузиться.

            Всё никак не доберусь добавить в архив командные файлы для этого.

  21. Андрей says:

    Здравствуйте!!!
    Пытаемся попользоваться устройством “FT2232H Mini Module”
    Дрова встали,прогамму обновили.Но не работает.
    Обнаружился странный эфект.При попытке прошить “avreal32 -a +mega8 -o100 -e”
    выдается сообщение “Can’t resync”.
    Причем при подкюченном устройстве и без оного.
    В чем проблема.
    Спасибо!!

    • ReAl says:

      Проблема в том, что avreal почему-то на «голый» ключ -a не выругался, что адаптер не указан :-)
      Просто включился в режим FBPRG, полез на LPT2, … Это все было бы видно при наличии ключа расширенной выдачи -% (-%% для bat-файлов).
      Для FT2232H надо указать -aft2232h. В зависимости от остального могут понадобиться уточнения, чтобы для работа avreal с MPSSE-режимом была успешной.

      • Андрей says:

        Здравствуйте!!!
        Спаибо за ответ.
        Мы это пробовали. Результат такой.

        avreal/WIN32 – AVR controllers programmer by Redchuk Alexandr
        v1.28r10 (Apr 29 2012 12:24:52) http://real.kiev.ua/avreal
        bug-reports, suggestions and so on mail to avrеal@reаl.kiev.ua
        Command:
        -aft2232h -p?
        2 FTDI devices detected
        0: FT_DEVICE_2232H (0×6) – “FT2232H MiniModule A”, serno “FTUFEUT4A”
        1: FT_DEVICE_2232H (0×6) – “FT2232H MiniModule B”, serno “FTUFEUT4B”

        avreal/WIN32 – AVR controllers programmer by Redchuk Alexandr
        v1.28r10 (Apr 29 2012 12:24:52) http://real.kiev.ua/avreal
        bug-reports, suggestions and so on mail to аvreal@real.kiev.uа
        Command:
        -aft2232h +mega8 -o100 -e
        Can’t open FTDI device with description “Dual RS232-HS A” (FT_DEVICE_NOT_FOUND)

        Для продолжения нажмите любую клавишу . . .

        • ReAl says:

          Ну так у этого модуля прошита EEPROM-ка, заменено описание по умолчанию для FT2232H. А avreal без специального указания использует именно значение по умолчанию "Dual RS232-HS A".
          Вам нужно указать либо описание:

          avreal -aft2232h -pd=”FT2232H MiniModule A” +mega8 -o100 -e

          либо серийный номер:

          avreal -aft2232h -ps=FTUFEUT4A +mega8 -o100 -e

          Это для канала A, для канала B соответственно буква B в конце.

          Если у вас таких модулей несколько и к компьютеру они могут подключаться по очереди (какой ухватил, такой и подключил), то лучше в командном файле указать -pd="FT2232H MiniModule A". Будет работать с любой платой.

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

  22. LowBass says:

    Здравствуйте! Только начал знакомство с AVR, пока плохо понимаю, что к чему. Спаял байтбластер по Вашей схеме, но очень захотелось запитывать его и МК от LPT, чтобы избежать лишних проводов, удлинителей, разъемов и т.д. В итоге из схемы выкинул r2, r3, освободив 13 вывод LPT SELECT, и с него через диод рассчитываю подавать питание на схему. Но только после того, как развел печатку и собрал в неразборный корпус!!))), прочитал, что с ключом -ab команда -am:pinmap работать не будет…
    Написал конфиг:
    mosi = D6
    miso = BUSY
    sck = D0
    reset = D1
    power = SELECT
    enable = ALF
    xtal = D3

    Конечно, ничё не работает))) И я понимаю, что ещё куча ног припаяна, которые, видимо тоже должны быть в конфиге. Могу ли я просить у Вас конфигурационный файл для байтбластера, чтобы я мог его подредактировать под свою плату? Или совета, что именно прописывать в файле? Спасибо

    • LowBass says:

      При использовании конфига пишет:

      power on
      adapter enabled
      can’t resync

      reset pin released
      adapter disabled
      power off

      При этом на пине13 select на включения-выключения питание остается на уровне 2,3V, даже не шелохнется
      Светодиоды светятся оба всегда

      При запитывании платы снаружи (от 5V компа) с ключом -ab пишет, что байтбластер не найден. ЧЯДНТ? Неужели этот select и 7 вывод разъема ISP, которые not connected, участвуют в процессе? P.S. Диоды стоят шоттки, один как на Вашей схеме, второй анодом к SELECT, катодом к аноду первого.

      • ReAl says:

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

        enable = ~ALF

        Во вторых, ножка 13 SELECT — вход LPT. На мой взгляд, правильнее её было бы назвать SELECTED — принтер сигнализирует, что он выбран. Ну уж как назвали, так назвали.
        Выход — ножка 17 SELECT IN (вход принтера, выход LPT).

        На входе SELECT подтяжка к питанию, вместе с байтбластером и его светодиодами а также с подтяжками на остальных входах баланс 2,3 В и установился.

        Для питания можно взять несколько выходов LPT, например, 4 (D2), 6 (D4), можно и уже упомянутую 17-ю.
        Диод VD3 на схеме байтбластера при этом не нужен вообще, он как раз защищает плату от запитки со стороны LPT через байт-бластер (через резисторы подтяжки на входах LPT и защитные диоды на выходах 74HC244 а также через защитные диоды на входах шинника).

        Так что те два диода шоттки переставьте анодами к 4 и 6 ногам разъёма LPT, катодами вместе на VCC шинника и на микроконтроллер. В конфиг-файл добавьте

        power = D2,D4

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

  23. Геннадsq says:

    Намагаюся прочитать мегу8535. Windows XP.

    K:\Documents and Settings\Admin\Рабочий стол\avreal-1.28r10-win32>avreal32.exe +
    MEGA8 -pd=”Dual RS232 A” -aft2232 -o4MHz -r flash.hex -%

    avreal/WIN32 – AVR controllers programmer by Redchuk Alexandr
    v1.28r10 (Apr 29 2012 12:24:52) http://real.kiev.ua/avreal
    bug-reports, suggestions and so on mail to avreal@real.kiev.ua
    Command:
    +MEGA8 “-pd=Dual RS232 A” -aft2232 -o4MHz -r flash.hex -%
    % ‘ftd2xx.dll’ successfully loaded, version 3.2.7
    % FTDI driver version 2.8.24
    % FT2232 MPSSE SPI adapter created, SCK frequency 0.86MHz
    % Reset
    % PgmOn reply 00 00 00 00
    % Try to resync by reset pulse % 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

    K:\Documents and Settings\Admin\Рабочий стол\avreal-1.28r10-win32>pause

    В чому помилка? Як правильно встановити драйвера? Можливо в цьому помилка

    • ReAl says:

      Драйвери стоять нормально, бо обмін з FTDI йде.
      По якій схемі зібрано адаптер, як підключено мікроконтролер?

  24. stenogriz says:

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

    • ReAl says:

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

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

  25. mika222 says:

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

    • ReAl says:

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

  26. Nipochomus says:

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

    • ReAl says:

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

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

      • Nipochomus says:

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

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

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

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

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

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

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

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

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

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

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

        • ReAl says:

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

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

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

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

          • Nipochomus says:

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

          • Nipochomus says:

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

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

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

            Reset pin released

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

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

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

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

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

            • Nipochomus says:

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

              • ReAl says:

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

  27. amalgama says:

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

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

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

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

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

    Спасибо!

    • ReAl says:

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

  28. mkh says:

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

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

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

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

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

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

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

      Странно.

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

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

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

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

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

    • ReAl says:

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

      sudo rmmod ftdi_sio

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

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

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

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

  29. Андрей says:

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

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

    Reset pin released
    Adapter disabled

    • ReAl says:

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

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

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

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

  30. Ruslan says:

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

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

    Reset pin released
    Adapter disabled

    • ReAl says:

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

  31. Dmitriy says:

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

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

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

    • Dmitriy says:

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

      • ReAl says:

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

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

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

  32. Vadim says:

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

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

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

  33. vsityz says:

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

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

    • ReAl says:

      О, вовремя.

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

      • vsityz says:

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

    • ReAl says:

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

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

  34. olkor says:

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

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

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

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

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

    Reset pin released
    Adapter disabled

    • ReAl says:

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

      • olkor says:

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

        :100FF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01
        :00000001FF

        • ReAl says:

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

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

          • olkor says:

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

  35. Vadim says:

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

    • ReAl says:

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

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

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

  36. mastexplorer says:

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

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

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

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

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

    • mastexplorer says:

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

    • ReAl says:

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

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

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

      • mastexplorer says:

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

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

        • ReAl says:

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

          pgm.bat                    MEGA32      8000

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

          cmd.exe /C pgm.bat         MEGA32      8000

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

      • mastexplorer says:

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

        • ReAl says:

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

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

          • mastexplorer says:

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

  37. pavel says:

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

    • ReAl says:

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

  38. Vitaly says:

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

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

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

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

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

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

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

    • ReAl says:

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

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

  39. alexey_laa says:

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

  40. homeness says:

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

    • ReAl says:

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

      -am=config-file.cfg

      или

      -am:reset=PIN_NAME:mosi=…

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

      • ReAl says:

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

        • homeness says:

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

  41. Shafurka says:

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

    • ReAl says:

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

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

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

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

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

Leave a Reply

[flagcounter image]