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
- simple adapter connected to LPT — “5 wires“, “HC244” — Altera ByteBlaster, STK200/STK300 or other using pin mapping feature.
- USB-adapters built with FT2232C, FT2232L, FT2232D and FT2232H, FT4232H, FT232H by FTDI.
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
Доброго вечора!
Не можу зрозуміти в чому проблема.
Створюю з вихідного кода за допомогою 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
Прошивка відбувається, а от веріфікація видає кучу помилок.
Підкажіть будь ласка, що я роблю не так?
Дякую
Вітаю!
avreal за умовчанням не стирає попередню прошивку, це зроблено для того, щоб можна було дошивати шматки. Наприклад, всі пристрої прошиваються базовою прошивкою, потім калібруються і в задану область флеша записуються калібрувальні дані.
Запис біта флеш-пам’яті це переписування стертого стану “1” у стан “0”. Якщо зашивати нестерту пам’ять, то зрештою в ній опиниться побітове AND старого і нового вмісту, і ото верифікація й видає помилки.
Додайте у командний рядок ключ -e
Дякую! Цікаво, а avrdude теж спочатку витирає флеш а потім записує нову прошивку?
Так, звісно. Інакше можна перевести 1 → 0, але неможливо 0 → 1.
В avreal я зовсім відділив операцію стирання від запису — замість того, щоб додавати ключ «не стирати».
Доброго вечора! Вчора з’явилася проблема, прошивав USBASP-ом через AVRDUDE процессор Atmega16A-PU і щось пішло не так, підозра на неправильний fuse bit. Процессор не пізнається і не читається ні з кварцом ні без. Раніше був зроблений программатор STK200-300 для LPT, я тільки ним і користувався і я пам’ятаю що є можливість задіяти вихід LED, отже настав цей час. Про Avreal нагуглив після появи цієї потреби, до цього шив через Поні-Прог. Як мені правильно написати командну строчку з параметром -о0 щоб відновити ф’юзи? Зарані дякую!
Вітаю!
Щоб відновити заводські налаштування для 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 не працюватиме.
Дякую, що відповіли! А про BODEN я трохи не зрозумів, програматор в мене від USB заживлений і видає 5V, чи я не про те?
Так, про це. Я про всяк випадок і про це написав, бо при 3-вольтовому живленні і помилці в BODEN можна отримати начебто заблокований кристал.
Дякую! Все вийшло, з ключем -о0 Atmega розпізналася і вдало зашилася. Прийшлось правда Win7 x32 ставити на окремий диск, не бачила програма на 10-ці DlportIo. Не став морочитися.
Я у десятці сам і не перевіряв. Доволі давно вже основна система Linux, а XP/W7 стояли лише щоб avreal перевіряти. І на /64 там свої заморочки, в XP точно працювало (але повільніше за /32), а далі не пам’ятаю.
У 10-ці там з розблокуванням непідписаних драйверів заморочено, треба у спецрежим перезавантажуватися. Я ледь був проштовхався, коли на роботі треба було людям підключити linux gadget по RNDIS.
Та 10-ка чомусь (однакові коди) вирішила, що то USB-IART, проініціалізувати як CDC не змогла і відключила пристрій.
Полікувати — підсунути потрібний .inf, але воно його вперто не хотіло брати.
Доброго вечора Олександре!
А чи буде працювати avreal в Linux на Raspberry Pi 4B?
Добрий вечір.
Збірка з сайту так точно не буде.
Треба спробувати зібрати крос-компілятором під arm-linux-gnueabi, відбивши LPT (весь, як прямий доступ так і parport).
Але тоді потрібен FTDI-драйвер під arm-linux, здається у них на сайті є.
Я подумаю, але раніше другої половини грудня у мене не буде на те часу.
Доброго дня, Олександре!
Потрібна Ваша порада.
Наскільки я зрозумів,в 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
програма не працює.
Що я роблю не так?
Дякую.
Добрий день, Артеме.
На жаль, ні — довільно можна вибрати лише reset.
MOSI/MISO/SCK (вони ж TDI/TDO/TCK у випадкові JTAG) фіксовані, бо це сигнали апаратного блока MPSSE.
Зрозуміло. Дякую за оперативну відповідь.
avreal – супер програма! Юзаю і під Windows і під Linux.
Привет. С новым годом!
Подскажите, пожалуйста, какая проблема в макете с мегой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
может добавить UPDI раз уж используются FT2232 и прочие имс. расширить спектр программируемых контроллеров.
Геть не до відповіді було, багато роботи.
Останнім часом я практично не працюю з AVR, лише іноді підтримка старих проектів на ATmega48PA.
Тому важко знайти «час та натхнення» для доповнень avreal новими контролерами та протоколами.
На жаль, не можу нічого обіцяти.
Доброго дня Олександр.
Не можу залочити МК mega2561 (біти LB1, LB2), чи це неможливо, чи я не правильно задаю команду?
Видача http://caxapa.ru/upload/files/beca92506611/
Команда:
avreal32.exe +mega2561 -aft232H -pd=”Single RS232-HS” -os100 -e -w -v -l -f_lock=00 -i5
Доброго дня.
-f_lock не міняє загальні lock-біти, лише BLB
Щоб залочити кристал, потрібно подати ключ -l (-l2 для запису обох лок-бітів) і це буде зроблено останньою операцією після всіх записів і всіх верифікацій.
Дякую, спрацювало. Може ще комусь буде цікаво – команди
Перша команда:
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
Бажаю Вам міцного здоров’я та інших гараздів
У меня на материнке нового компа есть LPT .который я специально купил, чтобы прошивать AVR и использовать старый принтер. Однако в Win10-64бит старые драйвера не работают. Я для решения проблемы думал установить виртуальную машину с Win Xp, но мне объяснили, что не получится работать с LPT портом и старыми драйверами. Тогда более правильным решением будет загрузка Windows XP с флешки. В соответствии с этим у меня вопрос: не можете ли дать ссылку на образ такой флешки, чтобы в ней было минимальное необходимое для работы.
Более правильным решением будет купить бюджетную платку 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
Так, з FTDI-MPSSE легше, бо вони працюють через драйвер-бібліотеку від виробника мікросхем.
Ба більше — USB нормально передається від host до guest операційної системи в VirtualBox. Принаймні, у «віртуальній» 7-ці на «реальному» лінуксі працюють що avreal з FTDI, що програми ST Microelectronics з ST-LINK.
А от PCI-LPT я пробував закинути з лінукса у віртуальну машину, avreal навіть працював. Але при цьому нестабільно працювало все це разом, після повернення LPT назад в лінукс воно не хотіло знову його у віртуальну машину передавати, віртуальна win якось криво стартувала. Хто винен — Linux, Windows, VirtualBox чи сама ідея прокидання фізичних регістрів у віртуальну машину — не знаю.
Де можна взяти образ флешки 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 под их новые драйвера?
Там у них на сторінці 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 побітово збігається з тією, що у мене на сторінці в інсталяторах.
Тобто це не нові драйвери 🙁
А от свіжі драйвери для ftdi стають на Win10 без проблем, через ft2232h все працює.
Win10 у мене зараз лише на маленькому ноутбуці без LPT, а PCIe LPT лише на комп’ютері без windows взагалі. На тому дискові вільного місця нема, щоб гратися з Win мені треба звільнити якийсь диск від архівів.
Здравствуйте Александр.
Пользуюсь 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 и сама находит и устанавливает для нее драйвер.
Юрий,
г.Днепр
(був завал, потім відпустка з обмеженим інтернетом, потім розгрібання того, що набралося за відпустку)
Дякую, цікава й недорога платка. Замовлю і собі таку.
У мене є одна на двоканальній FT2232H — часом дуже зручно, можна підключити відразу два пристрої, взаємодія між якими налагоджується, та перешивати не перемикаючи кабель.
Але і таку мати не завадить.
До речі, можна ж додати статусні світлодіоди і кнопку, по якій програмувати (і потім ключ -k для avreal, командний файл зациклити).
Дуже прискорює роботу, якщо треба прошити більше, ніж десяток пристроїв.
Спасибо за подсказку! Прямо с утра и реализовал. На платке кроме светодиода питания есть еще два. Подключены к AC3 и AC4. К сожалению, все три красного цвета. Кнопку подключил на AC0(+подтягивающий резистор 1кОм на 3.3В) Чтобы заработало в командную строку пишем -aft232h:led_ok=~cbus3:led_error=~cbus4:key=~cbus0 -az -k
PS.Хотів відповісти українською мовою, але зрозумів що моя технічна українська у жалюгідному стані. Наприклад як перекласти “ключ” стосовно командного рядка? Так і буде ключ, чи перемикач?
Вибачаюсь, вже побачив що буде “ключ”.
Можливо, «перемикач» було б і правильніше, бо це перемикає режими роботи програми. Хоча й перемикання режимів апаратури часто здійснюється саме ключем, як от запалювання у автомобіля чи аналогічні ключі на пультах керування обладнанням у цехах.
Але у слова «перемикач» є проблема — воно довге 🙂
Тому я використовую «ключ», зрідка «опція».
Здравствуйте! Скажите ,плз, а ключ -o0 будет поддерживаться с платой CJMCU FT232H? Если да, то с какого порта брать клок?
Це мені нарешті треба зробити не через MPSSE, а через SBB (synchronous bit-bang). Бо MPSSE має апаратне втілення jtag/spi, а інші ніжки можна просто перемикати для enable, перемикання режимів (jtag/SWD для Cortex-M) чи індикації світлодіодами.
SBB дозволяє видати у відносно високому темпі довільний потік байтів на вихід і синхронно з ним отримати потік байтів на вхід. Там можна буде -o0 зробити.
Спасибо! Т.е. пока не поддерживается. На мой взгляд очень полезная фича на случай неправильной прошивки фузов.
Доброго дня Олександр.
Знайшов посилання на Ваш сайт в avrdude.conf, коли конфігурував виходи FT2232H. І мені дуже приємно, що є в Україні фахівці такого рівня! Тепер обовязково спробую AVReAl!
Можливо не зовсім в тему, але запитаю Вашої поради. Зацікавився програмуванням мікроконтролерів. Для старту вибрав сімейство AVR. В якості мови- асемблер (цікаво зрозуміти функціонування на найнижчому рівні). В перспективі планую розібратися з сучасними ARM. Скажіть будь-ласка, чи вдалий я вибрав початок з точки зору співвідношення ефективність/затрачений час? Вміння програмувати обмежуються шкільними знаннями основ Basic.
Вітаю, Артеме!
Якби йшлося про мову C, то я б вагався. Все ж таки при невеликій різниці в ціні ARM (Cortex-M) набагато потужніші і мають розвиненішу периферію. А якщо говорити про «верхні» моделі AVR (~mega256*), то відповідні по обсягах флеш та оперативної пам’яті кортекси навіть дешевші. Розвиненіша периферія, наприклад, STM32, складніша у керуванні, але воно того варте.
Але, позаяк мова йде про асемблер, то тут кращі AVR. І сама мова асемблера простіша, і від самого початку «боротися» одразу і з програмуванням як таким, і зі складнішою системою команд Cortex-M, і з їхньою складнішою периферією — то вже занадто.
Є ще STM8, у чомусь теж дуже цікаві, хоча для них так і не знайшов часу. На жаль, не можу їх порадити для старту початківця, та ще й на асемблері. Вони менш поширені у «хобійному» програмуванні, тому важче буде знайти з ким порадитися.
Якщо виберете AVR, раджу взяти Arduino Nano як плату — «носій мікросхеми» зі стабілізатором, перетворювачем USB-UART і зручну для втикання у макетку. Цього Вам вистачить, а потужніші AVR невиправдано дорогі.
У будь-якому разі буду радий допомогти. Зручніше це буде робити на форумі Replace.
Дякую Олександре!
Може підкажете добротне та зрозуміле керівництво по програмуванню на асемблері (можна і англійською)? Пробував Ю. Ревич Практическое программирование микроконтроллеров Atmel AVR на язіке ассемблера- як на мене занадто зарозуміло написана.
Вибачте, справи не давали відповісти.
На жаль, порекомендувати нічого не можу, бо перед AVR я програмував більшою чи меншою мірою ще щонайменше на чотирьох асемблерах, тому для AVR мені лише треба було продивитися систему команд процесора.
У Atmel було доволі багато рекомендацій-прикладів, багато, особливо давніх (коли AVR були дрібними), з прикладами на асемблері. Але то було зручно, щоб зазирати, а для навчання з початків потрібно щось послідовне-методичне.
Я пошукаю, може щось знайду.
Нарешті перерив звалище різних книжок, яке мені колись скинули на DVD-шках. По AVR небагато. Перелік вартого уваги я вишлю листом.
З того, що російською, велика частина просто переклад документації та прикладів з англійської, з мінімальними додатковими поясненнями.
По асемблеру небагато, бо доволі швидко і самі мікроконтролери «потовщали» у сенсі обсягів пам’яті програм і даних, і компілятори нормальні з’явилися. Окрім цього, орієнтація переважно на старий асемблер від самої Atmel, який тоді був в їхній старій AVR Studio. Зараз у них нова, як C/C++ компілятор використовується gcc. Нову я собі ніколи не ставив, не впевнений, що вона взагалі стане на лінукс, на який я перейшов багато років тому.
Але тими книжками цілком можна користуватися і використовуючи gnu avr-as, просто треба буде враховувати відмінності в директивах.
Уважаемый, Александр. Пользовался вашей программой еще лет 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?
Заранее благодарен, Владимир. Новосибирск.
Можна PCI (PCIe) LPT, Win64
Можна USB-FTDI (FT2232C/L/D, FT2232H, FT4232H, FT232H)
У меня на мащине проблемы с параллельным портом, разводка проводов на разъёме сделана не правильно, со сдвигом, так, что 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 працюватиме повільно.