Archive for the ‘AVReAl’ Category.

AVReAl update — 1.28r11

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

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

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:

FT2232C, FT2232L, FT2232D

Час від часу зустрічаю запитання по відмінностях між цими мікросхемами. В описах чи відкритих проектах в інтернеті згадується FT2232C, а в продажу зараз є FT2232D. Виникають сумніви у сумісності програм та адаптерів.
Як це часто буває, всі ці сумніви розвіюються при перегляді сторінки опису FT2232D. Але чомусь багатьом легше не подивитися на сайті виробника, а спитати на форумі чи набрати рядок «різниця FT2232C та FT2232D» в пошуковику. Ну що ж, ось він, цей рядок для нього, хай йому буде легше 🙂

Документації на старіші версії мікросхем на сайті вже немає, але безпосередньо на сторінці сказано:

The FT2232D is the 3rd generation of FTDI’s popular USB UART/FIFO IC. The FT2232D is an updated version of the FT2232C and its lead free version, the FT2232L. Please note that the FT2232D is not an new generation of device.

The FT2232D is lead free and pin compatible with the original FT2232C and FT2232L devices. All the original device features are supported with some additional features available including a CPU-style FIFO mode and an extended operating temperature range.

І що ж все це означає? » » »

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 » » »

AVReAl update — 1.28r9

Вийшла нова версія програматора avreal — v1.28r9 (Tue 2011-12-20).

  • Додано підтримку FT232H (режим MPSSE)
  • Змінено обробку затримок у Windows-версії: зменшено завантаження процесора при роботі з ключами -k/-K.
  • Для всіх мікроконтролерів змінено метод пересинхронізації (resync). Спочатку робиться одна спроба синхронізації імпульсом RESET, після чого виконується спосіб з додатковим імпульсом SCK.
    Більше про методи синхронізації.

Синхронізація ISP-програматора з AVR

Робота ISP-програматора з мікроконтролером AVR починається з активації сигналу скидання мікроконтролера, за якою йде передача по SPI команди входу в режим програмування. На момент активації сигналу RESET на вході SCK обов’язково має бути низький рівень. Якщо ця умова з якоїсь причини не виконується, то спад сигналу SCK вже після встановлення низького рівня на RESET призводить до непередбаченої зміни стану автомату програмування.

AVR programming waveforms

Цей зайвий спад спотворює наступну 4-байтову команду входу в програмування, мікроконтролер її не розпізнає і не переходить у потрібний режим. Зсув фази на один період SCK між програматором та мікроконтролером порушує байтову синхронізацію, тому нема сенсу просто передавати команду ще раз. Перед нею теж буде зайвий спад на SCK — під час передачі останнього біту попередньої команди.

Синхронізацію може бути втрачено і під час програмування, про це можна почитати в публікації про повідомлення «synchronisation lost» в AVReAl.

В документації на мікроконтролери AVR різних років розробки описано два способи відновлення синхронізації у випадку, якщо перша команда входу у режим програмування закінчилася невдачею.

»»» Дізнатися більше про способи пересинхронізації

AVReAl beta — 1.28r9b1

Вийшла бета-версія програматора avreal 1.28r9b1 з підтримкою FT232H.
Прохання до власників плат з мікросхемою FT232H перевірити роботу.


Доповнення: тестування закінчено, всім дякую.

AVReAl 1.28r8 / FreeBSD

Я дійсно сильно затримався на FreeBSD 6.4, бо сам я не користуюся цією операційною системою і забув слідкувати за виходом нових версій.
Мене довелося підштовхнути до переходу на FreeBSD 8.2.

Перезібрав avreal-1.28r8 для 8.2 та після перевірки виклав на сторінці завантаження avreal поруч зі збіркою для 6.4.

Всі наступні версії збиратимуться вже лише для 8.2.

AVReAl update — 1.28r8

Вийшла нова версія програматора avreal — v1.28r8 (Sat 2011-08-13).

  • Додано підтримку двійкового формату файлів (raw binary).
    Формат задається префіксом :bin: в імені файлу.
  • Змінено поведінку ключа -r.
    При використанні ключа з модифікатором -r+ у вихідний файл записується весь вміст відповідного регіону пам’яті мікроконтролера, тобто поведінка відповідає «старій» поведінці ключа.
    Без модифікатора, у формі -r, у вихідний файл формату :ihex: не записуються рядки, які в полі даних мають лише байти FF. У файли формату :bin: не записується «хвіст», що складається лише з FF.
[flagcounter image]