AVReAl – ISP programmer for AVR

 

AVReAl designed for programming of Atmel AVR microcontrollers in ISP (in-circuit serial programming) mode for MS-DOS, Windows, Linux and FreeBSD (see download page).
AVReAl requires one of

The program is free for commercial or non-commercial use but its sources are 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 the ‘History’ category. Separate posts about bugs are 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 the “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

462 Responses to “AVReAl – ISP programmer for AVR”

  1. Артем says:

    Доброго вечора!
    Не можу зрозуміти в чому проблема.
    Створюю з вихідного кода за допомогою avrassembler2.exe (той що з пакету AtmelStudio7) файл mainFLASH.hex. Ассемблер видає, що все відбулось без помилок. Потім намагаюсь зашити в Attiny24a і виконати веріфікацію згідно з командою:
    C:\AVRProject\avreal\avreal32-1.29r1 +tiny24a -aft2232h=adapter.cfg -pd=”Dual RS232-HS A” -os0.1MHz -az -w -v -cC:\AVRProject\projects\mainFLASH.hex
    Прошивка відбувається, а от веріфікація видає кучу помилок.
    Підкажіть будь ласка, що я роблю не так?
    Дякую

    • ReAl says:

      Вітаю!

      avreal за умовчанням не стирає попередню прошивку, це зроблено для того, щоб можна було дошивати шматки. Наприклад, всі пристрої прошиваються базовою прошивкою, потім калібруються і в задану область флеша записуються калібрувальні дані.

      Запис біта флеш-пам’яті це переписування стертого стану “1” у стан “0”. Якщо зашивати нестерту пам’ять, то зрештою в ній опиниться побітове AND старого і нового вмісту, і ото верифікація й видає помилки.

      Додайте у командний рядок ключ -e

      • Артем says:

        Дякую! Цікаво, а avrdude теж спочатку витирає флеш а потім записує нову прошивку?

        • ReAl says:

          Так, звісно. Інакше можна перевести 1 → 0, але неможливо 0 → 1.
          В avreal я зовсім відділив операцію стирання від запису — замість того, щоб додавати ключ «не стирати».

  2. Sergey says:

    Доброго вечора! Вчора з’явилася проблема, прошивав USBASP-ом через AVRDUDE процессор Atmega16A-PU і щось пішло не так, підозра на неправильний fuse bit. Процессор не пізнається і не читається ні з кварцом ні без. Раніше був зроблений программатор STK200-300 для LPT, я тільки ним і користувався і я пам’ятаю що є можливість задіяти вихід LED, отже настав цей час. Про Avreal нагуглив після появи цієї потреби, до цього шив через Поні-Прог. Як мені правильно написати командну строчку з параметром -о0 щоб відновити ф’юзи? Зарані дякую!

    • ReAl says:

      Вітаю!

      Щоб відновити заводські налаштування для ATmega16A, слід вихід LED адаптера STK подати на вивід XTAL1 і виконати команду (у припущенні, що використовується LPT1)
      avreal +atmega16a -p1 -as -e -f_high=99,_low=E1 -w

      Зважте на те, що проблема може бути не лише у виборі CKSEL на зовнішній RC чи тактовий сигнал.
      Якщо, наприклад, ненароком активувати (зашити 0) BODEN і BODLEVEL, то буде увімкнено brownout reset на рівень 4 вольти при 3.3 вольтах ATmega16A не працюватиме.

      • Sergey says:

        Дякую, що відповіли! А про BODEN я трохи не зрозумів, програматор в мене від USB заживлений і видає 5V, чи я не про те?

        • ReAl says:

          Так, про це. Я про всяк випадок і про це написав, бо при 3-вольтовому живленні і помилці в BODEN можна отримати начебто заблокований кристал.

      • Sergey says:

        Дякую! Все вийшло, з ключем -о0 Atmega розпізналася і вдало зашилася. Прийшлось правда Win7 x32 ставити на окремий диск, не бачила програма на 10-ці DlportIo. Не став морочитися.

        • ReAl says:

          Я у десятці сам і не перевіряв. Доволі давно вже основна система Linux, а XP/W7 стояли лише щоб avreal перевіряти. І на /64 там свої заморочки, в XP точно працювало (але повільніше за /32), а далі не пам’ятаю.

        • ReAl says:

          У 10-ці там з розблокуванням непідписаних драйверів заморочено, треба у спецрежим перезавантажуватися. Я ледь був проштовхався, коли на роботі треба було людям підключити linux gadget по RNDIS.
          Та 10-ка чомусь (однакові коди) вирішила, що то USB-IART, проініціалізувати як CDC не змогла і відключила пристрій.
          Полікувати — підсунути потрібний .inf, але воно його вперто не хотіло брати.

  3. Артем says:

    Доброго вечора Олександре!
    А чи буде працювати avreal в Linux на Raspberry Pi 4B?

    • ReAl says:

      Добрий вечір.
      Збірка з сайту так точно не буде.
      Треба спробувати зібрати крос-компілятором під arm-linux-gnueabi, відбивши LPT (весь, як прямий доступ так і parport).
      Але тоді потрібен FTDI-драйвер під arm-linux, здається у них на сайті є.
      Я подумаю, але раніше другої половини грудня у мене не буде на те часу.

  4. Артем says:

    Доброго дня, Олександре!
    Потрібна Ваша порада.
    Наскільки я зрозумів,в avreal ми може в якості mosi, miso, sck, reset вибирати довільно порти FT2232H зі списку adbus0..adbus7?
    Однак коли я намагаюсь зробити такий вибір
    c:\avreal\avreal32-1.29r1 +mega328p -aft2232h:mosi=dbus4:miso=dbus5:sck=dbus6:reset=dbus7 -pd=”Dual RS232-HS A” -os2MHz -az -r -cFLASH.hex -dEEPROM.hex
    програма не працює.
    Що я роблю не так?
    Дякую.

    • ReAl says:

      Добрий день, Артеме.

      На жаль, ні — довільно можна вибрати лише reset.
      MOSI/MISO/SCK (вони ж TDI/TDO/TCK у випадкові JTAG) фіксовані, бо це сигнали апаратного блока MPSSE.

      • Артем says:

        Зрозуміло. Дякую за оперативну відповідь.

        avreal – супер програма! Юзаю і під Windows і під Linux.

  5. Евгений says:

    Привет. С новым годом!
    Подскажите, пожалуйста, какая проблема в макете с мегой644р может сопровождаться сообщением программатора “Can’t resync”?
    c:\avreal32>avreal32-1.29r1 +mega644p -aft2232 -ps=FTMQZ2W1A -w -f_lock=EF,_low=
    D7,_high=D4,_ext=FC
    avreal/WIN32 v1.29r1 (Feb 10 2018 22:43:14)
    ERROR: Can’t resync

  6. Эдуард says:

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

    • ReAl says:

      Геть не до відповіді було, багато роботи.
      Останнім часом я практично не працюю з AVR, лише іноді підтримка старих проектів на ATmega48PA.
      Тому важко знайти «час та натхнення» для доповнень avreal новими контролерами та протоколами.
      На жаль, не можу нічого обіцяти.

  7. maleon says:

    Доброго дня Олександр.
    Не можу залочити МК mega2561 (біти LB1, LB2), чи це неможливо, чи я не правильно задаю команду?
    Видача http://caxapa.ru/upload/files/beca92506611/

    • maleon says:

      Команда:
      avreal32.exe +mega2561 -aft232H -pd=”Single RS232-HS” -os100 -e -w -v -l -f_lock=00 -i5

      • ReAl says:

        Доброго дня.

        -f_lock не міняє загальні lock-біти, лише BLB
        Щоб залочити кристал, потрібно подати ключ -l (-l2 для запису обох лок-бітів) і це буде зроблено останньою операцією після всіх записів і всіх верифікацій.

        • maleon says:

          Дякую, спрацювало. Може ще комусь буде цікаво – команди
          Перша команда:
          avreal32.exe +mega2561 -aft232H -pd=”Single RS232-HS” ^
          -os100 -e -w -v -l2 -f_lock=00
          Лок-біти:
          _LOCK = FF
          _LOCK = C3
          Друга команда:
          avreal32.exe +mega2561 -aft232H -pd=”Single RS232-HS” -os100 -f
          Лок-біти:
          _LOCK = С0

          Бажаю Вам міцного здоров’я та інших гараздів

  8. У меня на материнке нового компа есть LPT .который я специально купил, чтобы прошивать AVR и использовать старый принтер. Однако в Win10-64бит старые драйвера не работают. Я для решения проблемы думал установить виртуальную машину с Win Xp, но мне объяснили, что не получится работать с LPT портом и старыми драйверами. Тогда более правильным решением будет загрузка Windows XP с флешки. В соответствии с этим у меня вопрос: не можете ли дать ссылку на образ такой флешки, чтобы в ней было минимальное необходимое для работы.

    • Yuriy says:

      Более правильным решением будет купить бюджетную платку FT232H и забыть о LPT 🙂 Cсылку я давал ниже. Это будет всяко удобнее, чем перегружать компьютер для прошивки. Я в свое время безуспешно потратил немало времени пытаясь заставить работать в W10 64 свой фирменный атмеловский STK200. Уж больно я к нему привык за почти 20лет :). Пробовал в том числе и через ХР в виртуальной машине. Правда у меня LPT был PCI.
      Кстати, способ через виртуальную машину иногда работает и бывает полезен. Для прошивки Xмег я использовал AVR ISP MKII. Поначалу на W10 32 у меня все работало нормально. А потом, после очередного обновления вылезла какая-то странная проблема с драйвером Jungo. Типа драйвер старый и винда теперь не даст ему работать. Удалось запустить через виртуальную машину с ХР. Сейчас этот способ прошивки Хмег иногда использую и на W10 64.

      • Получается, что даже при физическом наличии LPT порта на современном компе, Win10 yt дает возможности им пользоваться. Дело в том, что его можно использовать и для других целей, кроме AVReal. Вот нашел в сети https://soltau.ru/index.php/themes/dev/item/452-drajver-dlya-raboty-s-lpt-portom-integrirovannym-i-vide-platy-pci Автор пишет, что его программа решает проблему. Мне не понятно как это использовать совместно с Avreal32

      • ReAl says:

        Так, з FTDI-MPSSE легше, бо вони працюють через драйвер-бібліотеку від виробника мікросхем.
        Ба більше — USB нормально передається від host до guest операційної системи в VirtualBox. Принаймні, у «віртуальній» 7-ці на «реальному» лінуксі працюють що avreal з FTDI, що програми ST Microelectronics з ST-LINK.

        А от PCI-LPT я пробував закинути з лінукса у віртуальну машину, avreal навіть працював. Але при цьому нестабільно працювало все це разом, після повернення LPT назад в лінукс воно не хотіло знову його у віртуальну машину передавати, віртуальна win якось криво стартувала. Хто винен — Linux, Windows, VirtualBox чи сама ідея прокидання фізичних регістрів у віртуальну машину — не знаю.

    • ReAl says:

      Де можна взяти образ флешки XP відразу з DLportIO чи InpOut32 — навіть не уявляю.

      Посилання про використання LPT на 10-ці подивлюся, може розберуся.

      p.s. Вдома проблеми з проводкою, електрики може не бути пару днів, а з роботи, як зараз, багато часу виділити не можу.
      Прикрутити FT232H чи якусь FT2232 може бути швидше 🙂
      В LPT загалом лише один сенс — використання -o0, яке я так і не дописав для FTDI.
      Але pci-express платку LPT я нещодавно купив для експериментів, бо у новому компі старого PCI нема.

      • Александр, вот здесь http://www.dlldownloader.com/dlportio-dll/ фирма, которая занимается поддержкой пишет об использовании в Win10 для различных задач их новых драйверов. Можно ли использовать эту информацию для адаптации AvReal под новую Win10-64бит? Они пишут, что техподдержка на запрос ответит в течение 1 суток: “If you try all the methods and your error still continues, you can reach us and ask us questions through our feedback form via the next link. …… For the most part, our editor will respond to your questions within 1 business day.”
        Может все таки сможете адаптировать AvReal под их новые драйвера?

        • ReAl says:

          Там у них на сторінці dlportio написано “The latest version of the Dlportio.dll file is 1.0.0.1 version released for use on 2012-07-31. Before this, there were 1 versions released. All versions released up till now are listed below from newest to oldest”
          А якщо подивитися лінки завантаження, то там один лінк від XP до Win10, у архіві лише dll без драйвера і ця dll побітово збігається з тією, що у мене на сторінці в інсталяторах.
          Тобто це не нові драйвери 🙁

    • ReAl says:

      А от свіжі драйвери для ftdi стають на Win10 без проблем, через ft2232h все працює.
      Win10 у мене зараз лише на маленькому ноутбуці без LPT, а PCIe LPT лише на комп’ютері без windows взагалі. На тому дискові вільного місця нема, щоб гратися з Win мені треба звільнити якийсь диск від архівів.

  9. Yuriy says:

    Здравствуйте Александр.
    Пользуюсь avreal где-то с 2001года и до сих пор. За что Вам огромное спасибо! Осталось у меня одно такое живучее устройство на AVR, которое до сих пор приходится выпускать мелкими сериями. В последнее время приходилось держать для прошивки старенький компьютер с LPT. На новом компьютере под Win10 64 я его так и не смог запустить на PCI LPT плату. Хотя ПониПрог таки заработал после танцев с бубном. Но Пони это не та программа, которой я бы доверил мелкосерийное программирование…
    Поэтому решил попробовать USB вариант. Купил на Алиэкспрессе вот такую платку на FT232H: https://www.aliexpress.com/item/32823948346.html
    Распаял кабель, отредактировал bat файл и жизнь наладилась 🙂 Все снова привычно и намного быстрее…

    Если кто захочет быстро повторить не копаясь в мануалах, то краткая инструкция такая:
    Распайка кабеля(сигнальные цепи паяем через последовательные резисторы 470 Ом):
    AD0->SCK
    AD1->MOSI
    AD2->MISO
    AD3->RST
    GND->GND
    У меня кабель около метра длиной работает хорошо.

    В bat файле убираем ключи, которые относятся к LPT и адаптеру. У меня это были -p3 -as . Вместо них вставляем ключ -aft232h . Саму платку Винда определяет как USB Serial Converter и сама находит и устанавливает для нее драйвер.

    Юрий,
    г.Днепр

    • ReAl says:

      (був завал, потім відпустка з обмеженим інтернетом, потім розгрібання того, що набралося за відпустку)

      Дякую, цікава й недорога платка. Замовлю і собі таку.
      У мене є одна на двоканальній FT2232H — часом дуже зручно, можна підключити відразу два пристрої, взаємодія між якими налагоджується, та перешивати не перемикаючи кабель.
      Але і таку мати не завадить.

    • ReAl says:

      До речі, можна ж додати статусні світлодіоди і кнопку, по якій програмувати (і потім ключ -k для avreal, командний файл зациклити).
      Дуже прискорює роботу, якщо треба прошити більше, ніж десяток пристроїв.

      • Yuriy says:

        Спасибо за подсказку! Прямо с утра и реализовал. На платке кроме светодиода питания есть еще два. Подключены к AC3 и AC4. К сожалению, все три красного цвета. Кнопку подключил на AC0(+подтягивающий резистор 1кОм на 3.3В) Чтобы заработало в командную строку пишем -aft232h:led_ok=~cbus3:led_error=~cbus4:key=~cbus0 -az -k

        PS.Хотів відповісти українською мовою, але зрозумів що моя технічна українська у жалюгідному стані. Наприклад як перекласти “ключ” стосовно командного рядка? Так і буде ключ, чи перемикач?

        • Yuriy says:

          Вибачаюсь, вже побачив що буде “ключ”.

        • ReAl says:

          Можливо, «перемикач» було б і правильніше, бо це перемикає режими роботи програми. Хоча й перемикання режимів апаратури часто здійснюється саме ключем, як от запалювання у автомобіля чи аналогічні ключі на пультах керування обладнанням у цехах.

          Але у слова «перемикач» є проблема — воно довге 🙂
          Тому я використовую «ключ», зрідка «опція».

    • Anatoliy says:

      Здравствуйте! Скажите ,плз, а ключ -o0 будет поддерживаться с платой CJMCU FT232H? Если да, то с какого порта брать клок?

      • ReAl says:

        Це мені нарешті треба зробити не через MPSSE, а через SBB (synchronous bit-bang). Бо MPSSE має апаратне втілення jtag/spi, а інші ніжки можна просто перемикати для enable, перемикання режимів (jtag/SWD для Cortex-M) чи індикації світлодіодами.
        SBB дозволяє видати у відносно високому темпі довільний потік байтів на вихід і синхронно з ним отримати потік байтів на вхід. Там можна буде -o0 зробити.

        • Anatoliy says:

          Спасибо! Т.е. пока не поддерживается. На мой взгляд очень полезная фича на случай неправильной прошивки фузов.

  10. Артем says:

    Доброго дня Олександр.
    Знайшов посилання на Ваш сайт в avrdude.conf, коли конфігурував виходи FT2232H. І мені дуже приємно, що є в Україні фахівці такого рівня! Тепер обовязково спробую AVReAl!
    Можливо не зовсім в тему, але запитаю Вашої поради. Зацікавився програмуванням мікроконтролерів. Для старту вибрав сімейство AVR. В якості мови- асемблер (цікаво зрозуміти функціонування на найнижчому рівні). В перспективі планую розібратися з сучасними ARM. Скажіть будь-ласка, чи вдалий я вибрав початок з точки зору співвідношення ефективність/затрачений час? Вміння програмувати обмежуються шкільними знаннями основ Basic.

    • ReAl says:

      Вітаю, Артеме!

      Якби йшлося про мову C, то я б вагався. Все ж таки при невеликій різниці в ціні ARM (Cortex-M) набагато потужніші і мають розвиненішу периферію. А якщо говорити про «верхні» моделі AVR (~mega256*), то відповідні по обсягах флеш та оперативної пам’яті кортекси навіть дешевші. Розвиненіша периферія, наприклад, STM32, складніша у керуванні, але воно того варте.

      Але, позаяк мова йде про асемблер, то тут кращі AVR. І сама мова асемблера простіша, і від самого початку «боротися» одразу і з програмуванням як таким, і зі складнішою системою команд Cortex-M, і з їхньою складнішою периферією — то вже занадто.
      Є ще STM8, у чомусь теж дуже цікаві, хоча для них так і не знайшов часу. На жаль, не можу їх порадити для старту початківця, та ще й на асемблері. Вони менш поширені у «хобійному» програмуванні, тому важче буде знайти з ким порадитися.

      Якщо виберете AVR, раджу взяти Arduino Nano як плату — «носій мікросхеми» зі стабілізатором, перетворювачем USB-UART і зручну для втикання у макетку. Цього Вам вистачить, а потужніші AVR невиправдано дорогі.

      У будь-якому разі буду радий допомогти. Зручніше це буде робити на форумі Replace.

      • Артем says:

        Дякую Олександре!
        Може підкажете добротне та зрозуміле керівництво по програмуванню на асемблері (можна і англійською)? Пробував Ю. Ревич Практическое программирование микроконтроллеров Atmel AVR на язіке ассемблера- як на мене занадто зарозуміло написана.

        • ReAl says:

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

          У Atmel було доволі багато рекомендацій-прикладів, багато, особливо давніх (коли AVR були дрібними), з прикладами на асемблері. Але то було зручно, щоб зазирати, а для навчання з початків потрібно щось послідовне-методичне.
          Я пошукаю, може щось знайду.

        • ReAl says:

          Нарешті перерив звалище різних книжок, яке мені колись скинули на DVD-шках. По AVR небагато. Перелік вартого уваги я вишлю листом.

          З того, що російською, велика частина просто переклад документації та прикладів з англійської, з мінімальними додатковими поясненнями.

          По асемблеру небагато, бо доволі швидко і самі мікроконтролери «потовщали» у сенсі обсягів пам’яті програм і даних, і компілятори нормальні з’явилися. Окрім цього, орієнтація переважно на старий асемблер від самої Atmel, який тоді був в їхній старій AVR Studio. Зараз у них нова, як C/C++ компілятор використовується gcc. Нову я собі ніколи не ставив, не впевнений, що вона взагалі стане на лінукс, на який я перейшов багато років тому.
          Але тими книжками цілком можна користуватися і використовуючи gnu avr-as, просто треба буде враховувати відмінності в директивах.

  11. Vladimir says:

    Уважаемый, Александр. Пользовался вашей программой еще лет 15 назад, с программатором Altera Byte Bluster для различных AVR, в частности atmega128. Все прекрасно работало через порт LPT. Сейчас возникла необходимость прошить несколько типов AVR, программатор Altera BB сохранился, но увы – портов LPT уже нет. Я купил китайский USBASP и программой avrdude прошивал несколько типов – в основном TINY. все было нормально.

    Но мне понадобилось прошить atmega128, я перепробовал все варианты, менял ноги MISO MOSI PB2/PB3 на PE0/PE1 и тактовую частоту подавал – и менял перемычки. Все бесполезно.

    Вопрос вот в чем – можно ли с помощью вашей avreal прошить atmega128 используя Byte Bluster? У меня Win7 x64. Я готов купить плату расширения (порт LPT и 2 порта COM).

    Или может быть у вас появилась поддержка USBASP?

    Заранее благодарен, Владимир. Новосибирск.

  12. Andrey says:

    У меня на мащине проблемы с параллельным портом, разводка проводов на разъёме сделана не правильно, со сдвигом, так, что D4 стал D5, D5 стал D6, и так далее.
    Для решения этой проблемы я купил отдельную PCI-E плату с LPT портом и двумя COM-портами.
    Вопрос такой.
    Как мне заставить AVReal работать с ней, если адрес базового порта ввода-вывода равен $EC00 ???

  13. Pavel says:

    Здравствуйте! Пользуюсь программатором AVreal LPT. Предвидится необходимость программировать контроллер на компьютере без LPT. Возможно ли подключить AVreal LPT к USB через переходник типа такого: https://www.olx.ua/obyavlenie/lpt-usb-perehodnik-provereny-na-rabochem-printere-horoshee-kachestvo-IDyNFK4.html?sd=1#079495cfde Если нет, то какой недорогой программатор можно купить и использовать с вашей программой?

    • ReAl says:

      Извините за задержку, видел, но «вот вечером отвечу» дотянулось до субботы.
      USB-LPT ориентирован на принтеры, произвольно дёргать ножками не позволяет.
      С USB avreal работает только через FTDI MPSSE (FT2232C/L/D, FT2232H, FT4232H, FT232H).
      Они же используются через OpenOCD для работы с JTAG с 32-битными микроконтроллерами, поэтому давно поддерживаю.
      Через FT232R (SBB) не работает. В має в очередной раз достал платку с FT232R, но так и лежит. На завтра в календарь отметку поставил, но не уверен, что найде время 🙁

      • Pavel says:

        А не подскажите, какой недорогой USB программатор можно купить готовый, чтобы работал с вашей программой?

        • ReAl says:

          На FT2232 недорогий не вийде, бо чомусь зараз у цих мікросхем незрозуміло задрана ціна (у Києві найдешевші в Filur Electric по ~180грн). Вже готовий програматор avreal-usb (злизана розробка Megajohn з RU.EMBEDDED та electronix.ru) зовсім дорогий, бо там ще гальванорозв’язка на ADUM1401. Гола плата дешевша, замість ADUM можна і дротики кинути.

          Це якщо я себе таки на FT232R розкачаю, то буде легше, адаптер з алі-експресу копійчаний.

  14. Дмитрий says:

    Здравствуйте Александр!
    Давно пользуюсь Вашей программой, за что Вам огромное спасибо – все прекрасно работает!
    Но вот столкнулся с проблемой, которую не могу “победить”, может Вы, со своим колоссальным опытом поможете.

    В общем, собрал на монтажке устройство на ATmega168 в корпусе DIP, питание 3,3 вольта, т.к. присутствует радиомодуль с максимальным питанием 3,6 В. Для программирования использую самодельный программатор STK200 доработанный до 3,3 вольт (дополнительно использован преобразователь уровней). Все отлично работает – программатор видит контроллер, многократно стирает его, записывает – никаких проблем. После отладки «на соплях» заказал в Китае партию 100 красивых плат, с контроллерами ATmega168PB (TQFP32). На этом все хорошее закончилось. Программатор не видит контроллер -Can’t resync. Использую последнюю версию программы (v1.29r1), в которой эти контроллеры добавлены. Что я только не делал и менял частоту SPI (ключи –o(-os)) и задержку вводил (ключи -1..-5) – ноль реакции. Совершенно случайно, принудительно подал питание 3,3 вольт на плату, а затем активировал *bat файл с командной строкой – контроллер определился и выдал список фьюзов! Следующим шагом я запрограммировал контроллер, так же предварительно подав питания на контроллер до активации программирования. Все отлично – устройство в целом работает как часы. Но на этом проблемы не закончились. Дело в том, что контроллер в этой «зашитой» плате повторно не определяется даже при предварительной подаче питания. Единственно, что я изменил при прошивке – это один бит в фьюзе_low CKDIV8 (тактирование осталось от внутреннего RC-генератора, только без деления (т.е. 8МГц) и залочил чип наглухо (-l2). Больше ничего. Однако повторно не определяться, не стираться он не хочет, хотя устройство работает, и на внешний RESET реагирует. Сигналы на осциллографе проверял – чистые, да и на ATmega168 все то же перешивается без проблем. Вот такие чудеса. Может ATmega168BP китайского производства… плохо подделали?:-) А может все-таки, есть какие-то изменения в алгоритме программирования? По факту получились однократно программируемые контроллеры, да еще и с хитрой предварительной подачей питания перед программированием. Хрень какая-то.:-))
    Извините, Александр, что так много написал – хотелось подробнее.
    Заранее благодарен за ответ!

    С уважением,
    Дмитрий.
    г. Красноярск.

  15. RuslanPidoprygora says:

    Привіт, Сашку! Твій програматор досі не підтримує атхмеги. Може, привезти тобі парочку чіпів? Маю 32A4U і 32D4. також можу припаяти їх у платку “на погратися”. там є serial, USB, Писав у скайп, ти не відгукнувся…. Пичалька

    • ReAl says:

      Привіт, Руслане!

      Та… я у скайп заходжу через два дні на третій…

      Як я пам’ятаю, у ATXmega для програмування синхронний протокол, який вимагає постійної присутності тактової частоти, не меншої за 10 кГц. Коли частота виходить за межу — вивалюється з протоколу програматора.
      Зручно для мікроконтролера з USART, але з непередбачуваними затримками операційних систем точно не підходить для LPT і під питанням для FT2232. Можливо, вийде лише шляхом прикручування до avreal протоколу AVR isp [mkII].

      То мо привозь, спробую. Десь у мене лежить подарований років надцять тому AVR Dragon, можна на ньому тренуватися.

    • ReAl says:

      Ой, тут пишуть, що дракон з Xmega не дуже дружить.
      Десь на роботі був isp mkII, про нього такого не пишуть. Чужі плати з Xmega кілька років тому пробігали, ним в них оновлення зашивали.

  16. Юрий says:

    Добрый! Хочу прошить два байта серийного номера в ЕЕPROM
    -d*serno2=7cc,serno.txt
    К сож. пишется в начало области ЕЕPROM, вместо 7сс

    Что не так делаю!? Спасибо!

    • Юрий says:

      avreal32-1.29r1 -aft2232 -pd=”Olimex OpenOCD JTAG TINY A” +mega64A …

    • ReAl says:

      Не зміг повторити помилку.

      +mega64 -o7373 -d ff4k.hex -d*serno2=7cc,serno.txt -w -v

      Пише у адреси 0x07CC, 0x07CD.
      Якщо cc у рядку кирилічні, то пише у адреси 0x0007, 0x0008, але воно винне хіба в тому, що не виловлює таку помилку набору командного рядка.

      • Юрий says:

        Любопытная история: по Вашей наводке правлю 7сс.
        Если на русском пишу – программирует но в начало адресного
        Если на англ. раскладке то ошибка “ERROR: HEX record for SERNO not found”
        -d “EEPROM.hex” -d*serno2=7cc,serno.txt

        • ReAl says:

          Так і має бути, у документації на ключі -d*, -с?, -c* це сказано (у вхідному файлі має вже щось бути на цьому місці).
          Передбачалося (і я лише так і працюю), що для серійного номера чи іншого параметра заводиться змінна (фрагмент асм-коду для -c?) і в avreal передається адреса цієї змінної. При необхідності, для фіксації структури з різними параметрами у певному місці пам’яті, використовується іменована секція з розміщенням її лінкером.

          Загалом можна і додати можливість не переписувати якусь змінну, а просто писати у задане місце, просто досі цього ніхто не просив.
          Хм. А якщо попросили записати у певні 2 байти, один із цих байтів вже присутній у вхідному файлі, і лише другий потрапляє у порожнє місце, що тоді?

          • Юрий says:

            Да, спасибо! Создал файл больших размеров и все встало на свои места. Что касается всякого рода “перекосов” и наложения на границы, то я к сож. не достаточно компетентен, чтоб обсуждать эти вопросы с Вами. Спасибо!

  17. Pavel says:

    Скажите, пожалуйста, можно ли с помощью AVREAL прошивать ATMEGA324PB ?

  18. Sergey says:

    Доброго дня! Користуюсь Вашим програматором ще з часів LPT. Зараз маю USB-Avreal. Питання – чи плануєте , чи може вже існує софт для програмування SPI – флешок , типу 25xx, наприклад W25Q32?

    • ReAl says:

      Вітаю! З різних причин я з осені 13-го не випускав оновлень avreal, і, як нещодавно для себе з’ясував, навіть ті дрібні зміни, що вносив, не викладав (зараз сам користуюся v1.29r1b7, випуск реліза v1.29r1 давно можна було зробити).

      Нещодавно самому знадобилося запрограмувати SPI-флешки з іншим протоколом, AT45DBxxx, то для цього довелося знайти свою стару програму (виправлено: не DOS-івську, а вже win32, вона теж через DLportIO працює) і перекинути з лінукса у віртуальну XP доступ до LPT. На щастя, все запрацювало.

      Тож я виділив окремий диск для встановлення різних систем, якими не користуюся щодень, — для збирання і перевірок avreal (FreeBSD поки не ставитиму, здається, версію avreal v1.29r0 для BSD жодного разу не витягували). Збираюся повернутися до цього діла, перше додам ATmega328PB, про що просили нижче, а там дивитимуся, як і куди розвиватися.
      SPI-флешки 25xx у черзі першими, бо це найзапитуваніша опція на цій сторінці 🙂

  19. Константин says:

    Здравствуйте. Планируется ли поддержка контроллера ATmega328PB?

    • ReAl says:

      Так, додати всю лінійку 48-88-168-328PB легко, відмінності від PA невеликі.
      Одна біда — у мене після заміни комп’ютера зараз лише лінукс.
      Диск для декількох версій віндовс, що був раніше, давно віддав, бо планував відразу зробити аналогічне на більшому на новому комп’ютері. Але оце рік пройшов, а я лише виділив для цього вінчестер і поклав на поличці поруч 🙂
      Форсую це діло, постараюся найближчим часом зробити.

    • ReAl says:

      p.s. Перевірено Костянтином і, разом із ATmega324 та зробленими раніше ATtiny441/ATtiny841, додано у версію 1.29r1.

  20. Ivan says:

    Здравствуйте !
    Запускаю на двух виртуалках одного компа. Одна виртуалка – Windows 7, другая – XP. На Windows 7 работает, а в XP – Altera ByteBlaster not found. В свойствах LPT1 обоих виртуалок всё идентично

    • Ivan says:

      Добавлю, что перед ERROR: Altera ByteBlaster not found имеются 2 предупреждения
      Warning: incredibly Fast LPT found, min write cycle time 5.8ns
      Warning: Cycle time forced to 0.20us

      • ReAl says:

        Не знаю, LPT через ViryualBox никогда не пробовал.
        Судя по «5.8нс» драйвер DLPORTIO установился, но ничего не делает, моментально возвращает управление. Смотреть настройки виртуализации.

        • Ivan says:

          Спасибо !
          Разобрался. Если запущено несколько виртуалок, то программатор будет работать только с LPT виртуалки, запущенной первой

  21. Александр says:

    Здравствуйте. Почему-то не смог работать с программатором altera byteblaster. AVreal не находит программатор – пишет altera byteblaster not found. Хотя этот же программатор работает на этом же компьютере с ISP-programmer.

    • ReAl says:

      Странно.
      Адрес порта указан правильно?
      Перемычки определения наличия на LPT между контактами 7-10 напрямую и контактами 9-12 через шинник (тоже можно напрямую) стоят?

  22. Anatoliy says:

    Здравствуйте Александр! Скажите,пожалуйста,Вы не планируете прикрутить Altera USB Blaster?

    • ReAl says:

      Давно колись збирався, бо тоді працював з альтерою. USB-Blaster (клон) на столі завжди лежав. Але так повернулося, що я з програмованою логікою працювати перестав.

      Зараз порився — опис протоколу на архівному дискові знайшов. От із USB-Blaster-ом гірше. У мене є з тих часів залишилося вдома два подарованих клони, на C8051F321 і на CY7C68013, але… Років 3-4 тому діставав їх, один взагалі не розпізнався комп’ютером, на інший вилаявся QuartusII (побачити побачив, але перепрошивати плату відмовився).

      Подивлюся якось, там обидва напівмакетні, мо де що відвалилося 😀

    • ReAl says:

      Не два, а три. Ще «повний клон» на 245-тій FTDI-ці та дрібній альтерині. Оце він починаючи з якогось Квартуса перестав працювати.
      І зараз він для OpenOCD+STM32F105 розпізнався, але прошивати відмовився. Хоча колись працював.

      А от на C8051F321 і на CY7C68013 обидва STM32 прошивають, тільки обидва чомусь дуже повільно: прошивка на рівні 300 байт за секунду, верифікація — менше 4 кілобайтів за секунду.
      Адаптер на FT2232H — 23 і 58 кілобайт за секунду відповідно.

      Питання в тому, це клони так зроблені (хоча з альтерами нарікань не було, що з MAX7000/MAX3000, що з першими циклонами чудово працювало). Перевірити не можу, оригінального у мене нема.
      Може ще це інтерфейсний модуль бластера в OpenOCD неефективно написаний.
      Найгірше, якщо це протокол USB-Blaster для такої роботи не дуже підходить — тоді й з AVR працюватиме повільно.

Leave a Reply

[flagcounter image]