AVReAl update — 1.28r14
Вийшла нова версія програматора avreal — v1.28r14 (Mon 2013-08-05).
- Виправлено помилку в сигнатурах ATmega128rfr2, ATmega256rfr2;
- Додано ATmega32HVE, ATmega64HVE.
. .. ..o .oO .oO failed
Вийшла нова версія програматора avreal — v1.28r14 (Mon 2013-08-05).
Вийшла нова версія програматора avreal — v1.28r13 (Sun 2013-06-02).
Виявлено помилку, через яку не проходить процедура пересинхронізації додатковим імпульсом SCK у наступних умовах:
При роботі через LPT-адаптер синхронізація проходить нормально, після стирання через нього знову можна запрограмувати через USB-адаптер.
Схоже, помилка давня, але в більшості випадків до неї не доходило, бо синхронізація встановлювалася після обов’язкового початкового циклу RESET-синхронізації.
Наче хтось колись на щось подібне жалівся, але я не міг відтворити у себе і не знаходив нічого підозрілого в коді avreal. На цей раз мені знадобилося «підняти» одну стару плату з AT90S8515 і я таки отримав оте «Can’t resync» на USB-адаптері. Спробував за допомогою маленької тестової програми відтворити ситуацію на ATmega168 — все нормально працює і через MPSSE, синхронізується першою RESET-спробою, до SCK-імпульсів справа не доходить. А от AT90S8515 не програмується.
Все необхідне я зробив через ByteBlaster, помилку ловитиму за хвіст найближчим часом.
Помилку виправлено у версії 1.28r13.
Вийшла нова версія програматора avreal — v1.28r9 (Tue 2011-12-20).
Робота ISP-програматора з мікроконтролером AVR починається з активації сигналу скидання мікроконтролера, за якою йде передача по SPI команди входу в режим програмування. На момент активації сигналу RESET на вході SCK обов’язково має бути низький рівень. Якщо ця умова з якоїсь причини не виконується, то спад сигналу SCK вже після встановлення низького рівня на RESET призводить до непередбаченої зміни стану автомату програмування.
Цей зайвий спад спотворює наступну 4-байтову команду входу в програмування, мікроконтролер її не розпізнає і не переходить у потрібний режим. Зсув фази на один період SCK між програматором та мікроконтролером порушує байтову синхронізацію, тому нема сенсу просто передавати команду ще раз. Перед нею теж буде зайвий спад на SCK — під час передачі останнього біту попередньої команди.
Синхронізацію може бути втрачено і під час програмування, про це можна почитати в публікації про повідомлення «synchronisation lost» в AVReAl.
В документації на мікроконтролери AVR різних років розробки описано два способи відновлення синхронізації у випадку, якщо перша команда входу у режим програмування закінчилася невдачею.
Щойно випадково помітив, що і в програмі avreal, і в текстах на сайті, і в назві тега я використовую британське написання слова «synchronisation». Як той моль’єрівський персонаж, для якого було новиною, що він все життя говорив прозою, я сам не знав, що пишу це слово британською англійською. І що в американському варіанті воно пишеться «synchronization». Це навіть дивно, бо в документації від Atmel, яку я читаю вже більше десяти років і сам процитував в повідомленні «avreal synchronisation lost», це слово використовується саме в американському написанні.
Вийшла нова версія програматора avreal — v1.28r5 (Tue 2010-10-12).
Вийшла нова версія програматора avreal — v1.28r4 (Tue 2010-09-07).
На жаль, не знайшлося часу виправити помилку втрати синхронізації, це вже після відпустки робитиму.
Виявилася доволі дивна помилка в avreal 1.28r2 та 1.28r3. При співпадінні умов
для деяких мікроконтроллерів після першої операції верифікації робота обривається на помилці synchronosation lost.
Судячи з логів сайту, доволі часто шукають фразу «synchronisation lost», але чомусь досі ніхто не задав запитання про неї у коментарях до сторінки avreal.
Повідомлення «synchronisation lost» означає порушення обміну інформацією з програмованим мікроконтроллером. Обмін по SPI між адаптером програмування та вбудованою в мікроконтроллер апаратурою програмування відбувається так само, як і між двома мікроконтроллерами.