AVReAl – ISP програматор AVR
Програму AVReAl призначено для програмування мікроконтроллерів Atmel AVR в режимі ISP (in-circuit serial programming – послідовне програмування в схемі).
AVReAl може запрограмувати (“прошити”) мікроконтроллер через
- практично будь-який простий адаптер для порта LPT — “5 дротиків“, “HC244” – Altera ByteBlaster, STK200/STK300, чи інший, заданий через конфігурацію виводів.
- USB-адапетри на мікросхемах FT2232C, FT2232L, FT2232D а також FT2232H, FT4232H, FT232H фірми FTDI.
AVReAl – програма командного рядка (console application), що дозвляє інтегрувати її у використовуване середовище розробки (IDE).
Підтримуються версії програми для Windows, Linux та FreeBSD, підтримку DOS припинено з версії 1.26r0. Остання версія для DOS 1.25r6 доступна для завантаження. Версія для FreeBSD не підтримує роботу з мікросхемою FT2232, версії для Win* та Linux працюють через драйвер/бібліотеку від FTDI.
Роботу avreal/win32 з FT2232 перевірено для Windows2000, WindwsXP/32, WindowsXP/64 та для Windows7/32, Windows7/64.
Роботу avreal/win32 з LPT через драйвер DLPortIO перевірено для Windows2000, WindowsXP/32, WindowsXP/64 та для Windows7/32, Windows7/64. Для Windows98 драйвер не потрібен.
Vista не перевірялася, в моєму оточенні такого не водиться.
Програму можна використовувати безоплатно з комерційною чи не-комерційною метою, але її тексти закриті, тобто вона безкоштовна (freeware), але не вільна (free software)
Завантажити програму, а також 32- та 64-бітні драйвери DLPortIO, необхідні для доступу до LPT під Windows, можна зі сторінки download.
Детальніша інформація знаходиться на сторінці description, схеми адаптерів для програматорів — на сторінці adapters.
Повідомлення про оновлення програми та про виявлені помилки публікуються в категорії Історія, окремі повідомлення про помилки публікуються в тому разі, коли нема часу на термінове виправлення або коли я вважаю помилку не дуже важливою, такою, що може побути «особливістю» до наступного оновлення.
Перелік попередніх змін та деякі з попередніх версій програми можна отримати на «старій» сторінці History.
Перелік мікроконтроллерів, що підтримуються програмою, можна отримати командою
avreal -h
Моделі, перераховані через символ ‘|’, не розрізняються програматором, про це можна прочитати детальніше.
На даний момент підтримуються такі моделі:
86RF401 90S1200 90S2313 90S4414 90S8515 90S4434 90S8535 90S2333 90S4433 90S2323 90S2343 tiny12 tiny22L tiny22 tiny13|tiny13A tiny2313|tiny2313A tiny4313 tiny15 tiny25 tiny45 tiny85 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
Уважаемый, Александр. Пользовался вашей программой еще лет 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?
Заранее благодарен, Владимир. Новосибирск.
У меня на мащине проблемы с параллельным портом, разводка проводов на разъёме сделана не правильно, со сдвигом, так, что D4 стал D5, D5 стал D6, и так далее.
Для решения этой проблемы я купил отдельную PCI-E плату с LPT портом и двумя COM-портами.
Вопрос такой.
Как мне заставить AVReal работать с ней, если адрес базового порта ввода-вывода равен $EC00 ???
> что D4 стал D5, D5 стал D6, и так далее.
-am=mapfile
> Для решения этой проблемы я купил отдельную PCI-E плату с LPT портом и двумя COM-портами.
> Как мне заставить AVReal работать с ней, если адрес базового порта ввода-вывода равен $EC00 ???
-pEC00
Как задонатить?
Ответил почтой
Здравствуйте! Пользуюсь программатором 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 Если нет, то какой недорогой программатор можно купить и использовать с вашей программой?
Извините за задержку, видел, но «вот вечером отвечу» дотянулось до субботы.
USB-LPT ориентирован на принтеры, произвольно дёргать ножками не позволяет.
С USB avreal работает только через FTDI MPSSE (FT2232C/L/D, FT2232H, FT4232H, FT232H).
Они же используются через OpenOCD для работы с JTAG с 32-битными микроконтроллерами, поэтому давно поддерживаю.
Через FT232R (SBB) не работает. В має в очередной раз достал платку с FT232R, но так и лежит. На завтра в календарь отметку поставил, но не уверен, что найде время 🙁
А не подскажите, какой недорогой USB программатор можно купить готовый, чтобы работал с вашей программой?
На FT2232 недорогий не вийде, бо чомусь зараз у цих мікросхем незрозуміло задрана ціна (у Києві найдешевші в Filur Electric по ~180грн). Вже готовий програматор avreal-usb (злизана розробка Megajohn з RU.EMBEDDED та electronix.ru) зовсім дорогий, бо там ще гальванорозв’язка на ADUM1401. Гола плата дешевша, замість ADUM можна і дротики кинути.
Це якщо я себе таки на FT232R розкачаю, то буде легше, адаптер з алі-експресу копійчаний.
Здравствуйте Александр!
Давно пользуюсь Вашей программой, за что Вам огромное спасибо – все прекрасно работает!
Но вот столкнулся с проблемой, которую не могу “победить”, может Вы, со своим колоссальным опытом поможете.
В общем, собрал на монтажке устройство на 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 китайского производства… плохо подделали?:-) А может все-таки, есть какие-то изменения в алгоритме программирования? По факту получились однократно программируемые контроллеры, да еще и с хитрой предварительной подачей питания перед программированием. Хрень какая-то.:-))
Извините, Александр, что так много написал – хотелось подробнее.
Заранее благодарен за ответ!
С уважением,
Дмитрий.
г. Красноярск.
Александр, можете не отвечать – разобрался, все работает 🙂
🙂
А я уж думал купить mega168PB для експериментов.
Привіт, Сашку! Твій програматор досі не підтримує атхмеги. Може, привезти тобі парочку чіпів? Маю 32A4U і 32D4. також можу припаяти їх у платку “на погратися”. там є serial, USB, Писав у скайп, ти не відгукнувся…. Пичалька
Привіт, Руслане!
Та… я у скайп заходжу через два дні на третій…
Як я пам’ятаю, у ATXmega для програмування синхронний протокол, який вимагає постійної присутності тактової частоти, не меншої за 10 кГц. Коли частота виходить за межу — вивалюється з протоколу програматора.
Зручно для мікроконтролера з USART, але з непередбачуваними затримками операційних систем точно не підходить для LPT і під питанням для FT2232. Можливо, вийде лише шляхом прикручування до avreal протоколу AVR isp [mkII].
То мо привозь, спробую. Десь у мене лежить подарований років надцять тому AVR Dragon, можна на ньому тренуватися.
Ой, тут пишуть, що дракон з Xmega не дуже дружить.
Десь на роботі був isp mkII, про нього такого не пишуть. Чужі плати з Xmega кілька років тому пробігали, ним в них оновлення зашивали.
Добрый! Хочу прошить два байта серийного номера в ЕЕPROM
-d*serno2=7cc,serno.txt
К сож. пишется в начало области ЕЕPROM, вместо 7сс
Что не так делаю!? Спасибо!
avreal32-1.29r1 -aft2232 -pd=”Olimex OpenOCD JTAG TINY A” +mega64A …
Не зміг повторити помилку.
+mega64 -o7373 -d ff4k.hex -d*serno2=7cc,serno.txt -w -v
Пише у адреси 0x07CC, 0x07CD.
Якщо cc у рядку кирилічні, то пише у адреси 0x0007, 0x0008, але воно винне хіба в тому, що не виловлює таку помилку набору командного рядка.
Любопытная история: по Вашей наводке правлю 7сс.
Если на русском пишу – программирует но в начало адресного
Если на англ. раскладке то ошибка “ERROR: HEX record for SERNO not found”
-d “EEPROM.hex” -d*serno2=7cc,serno.txt
Так і має бути, у документації на ключі -d*, -с?, -c* це сказано (у вхідному файлі має вже щось бути на цьому місці).
Передбачалося (і я лише так і працюю), що для серійного номера чи іншого параметра заводиться змінна (фрагмент асм-коду для -c?) і в avreal передається адреса цієї змінної. При необхідності, для фіксації структури з різними параметрами у певному місці пам’яті, використовується іменована секція з розміщенням її лінкером.
Загалом можна і додати можливість не переписувати якусь змінну, а просто писати у задане місце, просто досі цього ніхто не просив.
Хм. А якщо попросили записати у певні 2 байти, один із цих байтів вже присутній у вхідному файлі, і лише другий потрапляє у порожнє місце, що тоді?
Да, спасибо! Создал файл больших размеров и все встало на свои места. Что касается всякого рода “перекосов” и наложения на границы, то я к сож. не достаточно компетентен, чтоб обсуждать эти вопросы с Вами. Спасибо!
Скажите, пожалуйста, можно ли с помощью AVREAL прошивать ATMEGA324PB ?
Так, починаючи з версії avreal-1.29r1.
Перевірено лише 328PB, але там зміни аналогічні, все має працювати.
Проверил. Работает!
Доброго дня! Користуюсь Вашим програматором ще з часів LPT. Зараз маю USB-Avreal. Питання – чи плануєте , чи може вже існує софт для програмування SPI – флешок , типу 25xx, наприклад W25Q32?
Вітаю! З різних причин я з осені 13-го не випускав оновлень avreal, і, як нещодавно для себе з’ясував, навіть ті дрібні зміни, що вносив, не викладав (зараз сам користуюся v1.29r1b7, випуск реліза v1.29r1 давно можна було зробити).
Нещодавно самому знадобилося запрограмувати SPI-флешки з іншим протоколом, AT45DBxxx, то для цього довелося знайти свою стару програму (виправлено: не DOS-івську, а вже win32, вона теж через DLportIO працює) і перекинути з лінукса у віртуальну XP доступ до LPT. На щастя, все запрацювало.
Тож я виділив окремий диск для встановлення різних систем, якими не користуюся щодень, — для збирання і перевірок avreal (FreeBSD поки не ставитиму, здається, версію avreal v1.29r0 для BSD жодного разу не витягували). Збираюся повернутися до цього діла, перше додам ATmega328PB, про що просили нижче, а там дивитимуся, як і куди розвиватися.
SPI-флешки 25xx у черзі першими, бо це найзапитуваніша опція на цій сторінці 🙂
Здравствуйте. Планируется ли поддержка контроллера ATmega328PB?
Так, додати всю лінійку 48-88-168-328PB легко, відмінності від PA невеликі.
Одна біда — у мене після заміни комп’ютера зараз лише лінукс.
Диск для декількох версій віндовс, що був раніше, давно віддав, бо планував відразу зробити аналогічне на більшому на новому комп’ютері. Але оце рік пройшов, а я лише виділив для цього вінчестер і поклав на поличці поруч 🙂
Форсую це діло, постараюся найближчим часом зробити.
p.s. Перевірено Костянтином і, разом із ATmega324 та зробленими раніше ATtiny441/ATtiny841, додано у версію 1.29r1.
Здравствуйте !
Запускаю на двух виртуалках одного компа. Одна виртуалка – Windows 7, другая – XP. На Windows 7 работает, а в XP – Altera ByteBlaster not found. В свойствах LPT1 обоих виртуалок всё идентично
Добавлю, что перед ERROR: Altera ByteBlaster not found имеются 2 предупреждения
Warning: incredibly Fast LPT found, min write cycle time 5.8ns
Warning: Cycle time forced to 0.20us
Не знаю, LPT через ViryualBox никогда не пробовал.
Судя по «5.8нс» драйвер DLPORTIO установился, но ничего не делает, моментально возвращает управление. Смотреть настройки виртуализации.
Спасибо !
Разобрался. Если запущено несколько виртуалок, то программатор будет работать только с LPT виртуалки, запущенной первой
Здравствуйте. Почему-то не смог работать с программатором altera byteblaster. AVreal не находит программатор – пишет altera byteblaster not found. Хотя этот же программатор работает на этом же компьютере с ISP-programmer.
Странно.
Адрес порта указан правильно?
Перемычки определения наличия на LPT между контактами 7-10 напрямую и контактами 9-12 через шинник (тоже можно напрямую) стоят?
Здравствуйте Александр! Скажите,пожалуйста,Вы не планируете прикрутить Altera USB Blaster?
Давно колись збирався, бо тоді працював з альтерою. USB-Blaster (клон) на столі завжди лежав. Але так повернулося, що я з програмованою логікою працювати перестав.
Зараз порився — опис протоколу на архівному дискові знайшов. От із USB-Blaster-ом гірше. У мене є з тих часів залишилося вдома два подарованих клони, на C8051F321 і на CY7C68013, але… Років 3-4 тому діставав їх, один взагалі не розпізнався комп’ютером, на інший вилаявся QuartusII (побачити побачив, але перепрошивати плату відмовився).
Подивлюся якось, там обидва напівмакетні, мо де що відвалилося 😀
Не два, а три. Ще «повний клон» на 245-тій FTDI-ці та дрібній альтерині. Оце він починаючи з якогось Квартуса перестав працювати.
І зараз він для OpenOCD+STM32F105 розпізнався, але прошивати відмовився. Хоча колись працював.
А от на C8051F321 і на CY7C68013 обидва STM32 прошивають, тільки обидва чомусь дуже повільно: прошивка на рівні 300 байт за секунду, верифікація — менше 4 кілобайтів за секунду.
Адаптер на FT2232H — 23 і 58 кілобайт за секунду відповідно.
Питання в тому, це клони так зроблені (хоча з альтерами нарікань не було, що з MAX7000/MAX3000, що з першими циклонами чудово працювало). Перевірити не можу, оригінального у мене нема.
Може ще це інтерфейсний модуль бластера в OpenOCD неефективно написаний.
Найгірше, якщо це протокол USB-Blaster для такої роботи не дуже підходить — тоді й з AVR працюватиме повільно.