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) has been released.

  • Added support for:
    • Attiny441, ATtiny841
    • ATmega48PB, ATmega88PB, ATmega168PB, ATmega328PB
    • ATmega324PB
  • The file with device serial number can now contain a 0x-prefixed hexadecimal number.
  • Fixed a bug where the character arrays for -h became too long and cuts off by vsnprintf(). But avreal was not crashes like avr-ld does.

    AVReAl update — 1.29r0

    avreal v1.29r0 (Wed 2013-12-11) has been released.

    • Switch -% replaced by message level switch -i;
    • If stdout is redirected to file critical messages are duplicated to stderr;
    • The final rejection of the switches grouping (-wv prohibited now, only -w -v allowed);
    • mega325PA, mega3250PA aliases added.

    AVReAl update — 1.28r14

    avreal v1.28r14 (Mon 2013-08-05) has been released.

    • Error in ATmega128rfr2, ATmega256rfr2 signatures — fixed;
    • ATmega32HVE, ATmega64HVE added.

    AVReAl update — 1.28r13

    avreal v1.28r13 (Sun 2013-06-02) has been released.

    bug in resync (MPSSE)

    Bug was found in SCK-pulse synchronisation in following conditions:

    • firmware sets high level on SCK pin;
    • an MPSSE-based adapter is used (FT2232, FT4232, FT232H).

    Microcontroller can be programmed again via USB-based adapter after erasing via LPT-based adapter.

    In my case the bug appears with AT90S8515 but not reproduced for ATmega168.

    Bugfix will be published as soon as possible.


    The bug has been fixed in version 1.28r13.

    AVReAl update — 1.28r12

    avreal v1.28r12 (Fri 2013-01-04) has been released.

    • ATtiny828, ATmega64RFR2, ATmega128RFR2, ATmega256RFR2 added.
    • “A lot of dots” replaced with something more like a progress bar.

    AVReAl update — 1.28r11

    avreal v1.28r11 (Sat 2012-06-23) has been released.

    • AT90pwm161, ATtiny1634 added
    • -a switch without arguments now generates an error message instead of usage of default FBPRG adapter

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

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

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

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

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

    AVReAl update — 1.28r10

    avreal v1.28r10 (Sun 2012-04-29) has been released.

    • Error in EEPROM size for ATmega328, ATmega328P — fixed.
    • Alias for ATtiny84A added.
    [flagcounter image]