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-адаптер.

Схоже, помилка давня, але в більшості випадків до неї не доходило, бо синхронізація встановлювалася після обов’язкового початкового циклу RESET-синхронізації.
Наче хтось колись на щось подібне жалівся, але я не міг відтворити у себе і не знаходив нічого підозрілого в коді avreal. На цей раз мені знадобилося «підняти» одну стару плату з AT90S8515 і я таки отримав оте «Can’t resync» на USB-адаптері. Спробував за допомогою маленької тестової програми відтворити ситуацію на ATmega168 — все нормально працює і через MPSSE, синхронізується першою RESET-спробою, до SCK-імпульсів справа не доходить. А от AT90S8515 не програмується.

Все необхідне я зробив через ByteBlaster, помилку ловитиму за хвіст найближчим часом.


Помилку виправлено у версії 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

AVReAl/Linux та права адміністратора

Від самого початку AVReAl/Linux працював з LPT напряму, командами процесора для доступу до портів вводу/виводу. Для цього потрібні права адміністратора і avreal встановлюється з параметрами власника та групи root та піднятим SUID-бітом. Пізніше було дописано підтримку роботи з пристроями /dev/parport, для доступу до яких достатньо включити користувача в групу lp. Все це описано у публікації AVReAl та LPT в Linux.

Коли в програму додалася підтримка роботи з FTDI MPSSE, я помітив, що без прав рута не виходить з’єднатися з мікросхемою FT2232. Але у мене на комп’ютері всі версії AVReAl працюють від імені адміністратора, бо час від часу робиться перевірка роботи з прямим доступом до LPT. Тому програма працювала з FT2232 і у мене не було потреби копати глибше.

Нарешті вирішив розібратися з цим питанням. Як це часто буває, щоб зробити правильно, досить лише зупинитися, знайти час трохи почитати та подумати.

Для того, щоб обійтися без привілеїв адміністратора при роботі з програматорами на базі мікросхем FTDI, потрібно в каталог /etc/udev/rules.d/ додати файл з іменем, наприклад, 55-ftdi.rules та наступним вмістом:

# FTDI-based devices
#
# FTDI vid=0403
# FT2232, FT2232H: pid=6010
# FT4232H:  pid=6011
# FT232H:   pid=6014
SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010|6011|6014", OWNER="root", GROUP="root", MODE="0666"

Якщо програматор було підключено, його слід відключити та знову підключити до комп’ютера. Перезавантажуватися непотрібно.

Правила написано з розрахунку на мікросхему FTDI, якій записом в конфігураційній EEPROM не замінено vid/pid за умовчанням. Якщо використовується адаптер з іншими vid/pid, треба додати відповідний рядок в цей файл.

Пакет OpenOCD містить в собі файл правил для всіх адаптерів, які він підтримує. При використанні з AVReAl з адаптером на мікросхемі FTDI з цього списку можна просто перенести файл правил OpenOCD в каталог /etc/udev/rules.d/. В правилах OpenOCD використано GROUP="plugdev", MODE="0664". Але я не бачу принципової різниці між цими двома варіантами на «десктопі», де всіх користувачів за умовчанням включено в групу plugdev, щоб вони могли підключати USB-флешки та переносні диски.

Звісно, щоб записати цей файл, права адміністратора знадобляться. Але після цього AVReAl працюватиме від імені будь-якого користувача.

Attached Files:

AVReAl та MPSSE

Деякі з мікросхем фірми FTDI мають вбудований апаратний блок послідовних інтерфейсів MPSSE, який призначено для реалізації інтерфейсів JTAG, SPI, I2C. FT2232D та її старіші версії FT2232C, FT2232L підтримують Full-Bandwidth USB та мають верхню межу частоти сигналу TCK/SCK 6 МГц. Для мікросхем, що працюють в стандарті USB 2.0 Hi-Speed, тобто FT2232H, FT4232H, FT232H, межа вища — 30 МГц.

MPSSE визначає використання ліній DBUS0..DBUS2 як сигналів TCK/SCK, TDI/MOSI та TDO/MISO. Для програмування мікроконтролерів AVR потрібен сигнал RESET, для якого можна використати лінію DBUS3 (TMS/CS), що і зроблено в AVReAl за замовчуванням.

»»» Використання MPSSE з AVReAl

[flagcounter image]