20 років avreal

Отак багато часу пройшло. Весь 2018 рік — рік 20-річчя програми avreal, назва якої утворена дуже просто, як комбінація AVR і ReAl. І деякий час пошук по слову avreal видавав лише обговорення на інтернет-форумах або мій сайт, і лише потім почав вважати це помилкою набору і видавати «якусь співачку» 🙂

Писати я його почав влітку 1998 року, під час роботи над реальним проектом з AT90S8515.
До того лише трохи «грався для себе» і для того мені вистачало PIP04, був для Windows такий попередник PonyProg-а. Але для реальної щоденної роботи возити мишкою мені було незручно, хотілося інструмента, якого можна запхати у makefile і викликати з редактора. Тобто потрібна була утилітка командного рядка. Здається, тоді вже існував лінуксовий uisp, але на лінукс я перейшов кількома роками пізніше. Для MS DOS знайшлася лише (підказали в RU.EMBEDDED) програма fbprg. Та з’ясувалося, що вона хоч і «command line», але страшенно незручна.

От тоді й всівся за своє. Паралельно із робочим проектом, продовжуючи в ньому використовувати fbprg. Саме тому перший адаптер, який підтримував avreal, був той fbprg, а LPT за умовачанням використовувався другий, бо на першому був принтер.

Зрештою, воно більш-менш впевнено запрацювало, хтось із знайомих (Євген Краштан?) перевірив на 90s1200 і 90s2313, знайшов декілька помилок, надав парочку 90s1200 із запоротим DevID для експериментів. Таке ж саме запитання — «де знайти програматор AVR, який добре вбудовується в ланцюжок make і компіляторів командного рядка» — виникало в RU.EMBBEDED і SU.HARDW.SCHEMES, на початку вересня 1998 року я запропонував свою програму.

Так і пішло. Фактично, навіть сайт я завів, ще на LuckyNet, для розміщення нових версій та опису, у щось блогоподібне воно перетворилося набагато пізніше, десь ближче до 10-річчя програми.

З часом додавалися інші адаптери (спочатку Altera ByteBlaster, бо працював тоді з альтерівськими PLD і цей адаптер був і вдома, і на кожному столі на роботі, затим за компанію Xilinx Download Cable, а тоді просто можливість задати довільну конфігурацію).
З Win98 на роботі перейшли на WinNT — з’явилася win-версія (через DLPortIO, який на роботі ж використовувався для іншого). Сам я перейшов на Linux — от вам лінуксова версія. Попросили FreeBSD — зробив, але реально його окрім прохача майже ніхто не використовував, та й для нього з часом стало неактуально. Тому ця версія трохи «недорізаною» тяглася, туди нові можливості додавалися лише ті, які «само собою» починали працювати. Пізніше я зовсім відмовився від підтримки.

З’явилися мікросхеми FTDI з MPSSE, тобто апаратним JTAG/SPI, відповідно, в avreal з’явилася можливість працювати через USB. Для USB були ще геть недорогі адаптери з soft-USB, зокрема, з емуляцією COM-порта і AVR910. Але вони були повільні, відчутно повільніші за PCI-LPT карту, не набагато швидші за звичайний LPT. Згодом і звичайні, і PCI-LPT почали уповільнюватися, але то інша історія.

І от так потихеньку і пройшло 20 років.

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

Тому, на жаль, на рік 20-річчя сам avreal не отримав ніяких подарунків у вигляді якихось нових можливостей, але в результаті змін у житті я познайомився з кількома чудовими людьми, які «в молодості» використовували avreal 🙂 І відновив контакт з кількома такими ж, яких знав раніше.

p.s. Мене заспокоюють, що «справжня зрілість» це 21 рік. І що до наступної осені я ще можу щось встигнути.

AVReAl update — 1.29r1

Вышла новая версия програматора avreal — v1.29r1 (Sun 2018-02-11).

  • Добавлена поддержка:
    • Attiny441, ATtiny841
    • ATmega48PB, ATmega88PB, ATmega168PB, ATmega328PB
    • ATmega324PB
  • Файл c серійним номером устройства теперь может содержать шестнадцатеричное число с префиксом 0x.
  • Исправлено внесённую в 1.29r0 ошибку, из-за которой символьные массивы справки по ключу -h стали слишком длинными и обрезались при выводе функцией vsnprintf(). Зато avreal не падал как avr-ld ;-).

AVReAl update — 1.29r0

Вышла новая версия програматора avreal — v1.29r0 (Wed 2013-12-11).

  • Ключ -% расширенной диагностики заменён ключом -i управления уровнем информационных сообщений;
  • При перенаправлении stdout в файл критичные сообщения дублируются на stderr;
  • Окончательный отказ от группирования ключей (теперь нельзя -wv, можно только -w -v);
  • Добавлены синонимы mega325PA, mega3250PA.

AVReAl update — 1.28r14

Вышла новая версия програматора avreal — v1.28r14 (Mon 2013-08-05).

  • Исправлена ошибка в сигнатурах ATmega128rfr2, ATmega256rfr2;
  • Добавлены ATmega32HVE, ATmega64HVE.

AVReAl update — 1.28r13

Вышла новая версия програматора avreal — v1.28r13 (Sun 2013-06-02).

Ошибка в синхронизации (MPSSE)

Обнаружена ошибка, из-за которой не проходит процедура пересинхронизации дополнительным импульсом SCK в следующих условиях:

  • программа в микроконтоллере выставляет на ножке SCK высокий уровень;
  • используется MPSSE-адаптер (FT2232, FT4232H, FT232H).

При работе через LPT-адаптер синхронизация проходит нормально, после стирания через него опять можно запрограммировать через USB-адаптер.

Ошибка обнаружена при работе с AT90S8515, на ATmega168 её воспроизвести не удалось.

Поисками займусь в ближайшие дни.


Ошибка исправлена в версии 1.28r13.

AVReAl update — 1.28r12

Вышла новая версия програматора avreal — v1.28r12 (Fri 2013-01-04).

  • Добавлены ATtiny828, ATmega64RFR2, ATmega128RFR2, ATmega256RFR2.
  • «Куча точечек» заменена на что-то более похожее на progress bar.

AVReAl update — 1.28r11

Вышла новая версия програматора avreal — v1.28r11 (Sat 2012-06-23)

  • Добавлены AT90pwm161, ATtiny1634
  • Исправлено реакцию на ключ -a без аргументов — выход из программы с сообщением об ошибке вместо использования адаптера по умолчанию FBPRG

Перехідник зі шлейфа на макетну плату.

Знадобилося мені якось терміново підключити до плати з ATmega64 макетку, на якій перевірити один задум. Вільні лінії мікроконтролера було виведено на 16-контактні штирі, залишалося підключити шлейф до макетної плати. А сама макетка — куплена в Імраді SOLDERLESS BREADBOARD EIC-406 фірми E-CALL (куплялися в Імраді, «там їх є»). Тобто не підпаятися (для того і бралося ж), потрібен перехідник.

Звичайно, можна було б використати з’єднувач DIP на шлейф. Та треба було «бігом», поки думка ворушиться, а до Нью-Паріса їхати зараз неблизько. Тому було знайдено шматочки макетки та штирі і мені швиденько запаяли ось такі перехідники:

Перехідник, макетка та штирі.

Все, що потрібно, було перевірено і на деякий час я про це забув. Аж тут раптом виявився потрібним аналогічний перехідник на шість контактів, під варіант 6-pin AVR ISP шлейфа програматора. Причому вдома — а паяти самому ліньки 🙂
Лінощі — двигун прогресу. Дуже швидко в голові промайнули … (подивитися, що саме)

AVReAl update — 1.28r10

Вышла новая версия програматора avreal — v1.28r10 (Sun 2012-04-29).

  • Исправлена ошибка размера EEPROM для микроконтроллеров ATmega328, ATmega328P
  • Добавлен синоним для микроконтроллера ATtiny84A
[flagcounter image]