Archive for the ‘AVReAl’ Category.

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 рік. І що до наступної осені я ще можу щось встигнути.

“B” and “not-B” AVRs

Извините, данного текста на русском (пока) нет.
Отмазка там. Можно попробовать гуглопереводчиком.


Від публікації огляду відмінностей між «A» і «не-A»-версіями мікроконтролерів AVR пройшло чимало часу і вже давно можна порівнювати «B»-версії. Таких мікроконтролерів ще небагато, але є на що подивитися. Errata на кристали я ще не вивчав, як там буде що важливе — доповню пізніше.

Раніше я вже коротко писав про ATmega48PB…168PB. ATmega328PB і ATmega324PB просунулися набагато далі, це вже практично нові мікроконтролери, сумісні по виводах з «not-B». Для всіх цих мікроконтролерів є спільний, з першого погляду непомітний, але важливий момент — DIP-корпусів більше нема. Тому тим, хто розраховує лише на них, далі можна не читати 😉

З точки зору програматора змінилися лише сигнатури (ідентифікатри) мікроконтролерів та додався один fuse в ATmega328PB і ATmega324PB. Він забороняє нову функцію (CFD, див. нижче) і з заводу запрограмований. Якщо його не треба міняти і якщо можна змусити програматор проігнорувати сигнатуру, то всі ці кристали можна прошивати як відповідні PA. Втім, в avreal ці мікроконтролери вже додано, а для всіх іншіх програматори це, думаю, зроблено давно 🙂

Можливо, цей список і не збільшуватиметься вже, бо анонсовано геть нові ATmega3208/3209/4808/4809 із суттєво збільшеним обсягом оперативної пам’яті (натомість зменшеною EEPROM) та розширеною периферією.

Отже, відмінності… » » »

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.

OpenOCD та FTDI-MPSSE

Зрідка щось пробуючи на LPC1766, вже доволі тривалий час не зазирав у новини OpenOCD. Як зібрав колись 6-тої версії, так і працював. Ще раніше, коли робив собі плату на FT2232H, трохи промахнувся і керування драйверами зробив несумісним з жодним з підтримуваних OpenOCD 6.x адаптерів. Тому для роботи з кортексами діставав напівмакетку (плата з FT2232D та шинником, перерізана на сумісність з Amontec JTAGkey).

А оце підтягнув git-ом свіжий стан, а там вже 8.0. А з 7.0 вже для FTDI/MPSSE підтримується довільне призначення службових виводів (reset, керування драйверами). Навіть краще, ніж в avreal, бо можна задати довільне своє ім’я сигналу, прив’язати його до ніжки і керувати ним командами OpenOCD — інтерактивно або з командного рядка. Додав у makefile в частині формування командного рядка вмикання червоного світлодіода на початку програмування і вимикання в кінці. Все чудово запрацювало, через FT2232H програма зашивається у півтора-два рази швидше, ніж через FT2232D, веріфікується у три-чотири рази швидше. І таке враження, що і через FT2232D свіжа версія OpenOCD працює відчутно швидше, ніж 6.x, але вже ніде перевірити, а спеціально збирати ліньки.

І дуже вчасно я сьогодні (хм… вже вчора) за це взявся — через хвилин двадцять після того, як зберіг на флешку конфігураційний файл та приклад makefile, подзвонив колега і сказав, що на роботі полетів J-Link. А там у мене точно така ж плата з FT2232H лежить.

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.

«A»-AVR: POR

В обзоре изменений в микроконтроллерах AVR при переходе на новую технологію (статья “A” and “not-A” AVRs) часто встречаются слова «Поменялись уровни POR».

Изменение уровней Power-On Reset обусловлено переходом на «advanced POR circuit», что на уровне конструктора систем на микроконтроллерах означает:

  • Специфицировано не только типовое значение напряжений POR, но и минимальное и максимальное.
  • Специфицировано минимальную скорость нарастания напряжения питания.
  • Типовые значение уровня POR немного увеличилось.

Раньше (для «не-А» микроконтроллеров) первые два пункта не были указаны вообще и приходилось только догадываться, к какой границе можно без риска приближаться.

Последний пункт рассмотрим подробнее.

Например, при переходе от ATtiny13 к ATtiny13A (AVR520, Table 2-4. Power-On Reset) типовое значение уровня POR при наростаннии напряжения увеличилось от 1,2 В до 1,4 В. Оба значенния менше, чем специфицированное для версии ATtiny13V минимальное напряжения питания 1,8 В, поэтому в проектах, сделанных без нарушения спецификаций производителя, переход на новые типы не вызовет проблем. Возможно, они будут работать даже лучше, так как уменшится разница между напряжением, при котором POR «отпускает» схемы микроконтролера и фиксирует значения FUSES, и минимальным напряжением гарантованой работы.

Но в проектах «для себя» в часто оправданном в таких случаях стиле «эти конкретные экземпляры заработали — и хорошо» могуть возникнуть проблемы.

[flagcounter image]