AVReAl update — 1.28r7
Вийшла нова версія програматора avreal – v1.28r7 (Sun 2011-02-27).
- Виправлено помилку обробки ключа -v+.
. .. ..o .oO .oO failed
Вийшла нова версія програматора avreal – v1.28r7 (Sun 2011-02-27).
В avreal версій з 1.28r2 по 1.28r6 є помилка в обробці ключа -v+, тобто ключа -v з модифікатором +.
Помилково виконується перевірка на чистоту всього обсягу пам’яті мікроконтролера, а не лише адрес, не зайнятих вмістом hex-файлу. В результаті після першої ж верифікації робота припиняється і подальші операції, наприклад, запис fuses, не виконуютьcя.
Ключ -v без модифікатора працює нормально, тому рекомендується використовувати його.
Помилка не критична, буде виправлена в черговій версії avreal.
Чесно кажучи, я вже і не пам’ятаю з яких міркувань в avreal було додано можливість перевірки на 0xFF не задіяних у вхідному HEX-файлі позицій. Чи хтось колись просив зробити, чи мені самому раптом захотілося. Зараз от думаю, що особливої потреби в цьому і нема — при записові після стирання вони і так мали б бути стерті, а якщо дуже хочеться, можна ключ -b додати. При дозаписові якихось таблиць без стирання нема сенсу перевіряти на чистоту, бо в незайнятих цим HEX-файлом позиціях розміщено основний код.
А місце для внесення помилок додалося. Кажуть же, що «простота — запорука здоров’я» ![]()
Може, пізніше я цей модифікатор приберу зовсім.
Вийшла нова версія програматора avreal – v1.28r5 (Tue 2010-10-12).
Після короткої відповіді на питання про різницю між новими версіями мікроконтроллерами tinyAVR/megaAVR з літерою ‘A’ та їх попередниками я вирішив детальніше розглянути різницю між ними з точки зору програміста. Не претендую на повноту, але при підготовці матеріалу переглянуто було не лише Migrating Notes, але і документацію на відповідні мікроконтроллери.
Як вже було сказано, версії A працюють у всьому діапазоні напруг живлення та тактових частот, який перекривався попередніми звичайними та L/V-версіями. Крім того, в більшості випадків дещо знижено максимальні струми споживання та суттєво знижено типові. В усьому іншому нові мікроконтроллери є тотожньою заміною старих. За винятком окремо відзначених випадків не помінялися і сигнатури, по яким программатор їх розрізняє.
Але в деяких випадках різниця є і на рівні можливостей — додалися нові регістри периферії або біти в старих регістрах.
З переліком помилок в мікроконтроллерах (errata) ситуація різна, десь нічого не помінялося, десь кількість помилок зменшилася, десь додалися нові. Конкретний склад errata для кожного мікроконтроллера переписувати сюди не бачу сенсу, кожен може подивитися документацію на той контроллер, з яким працює. Більшість помилок не критичні і при уважному написані програми з ними можна ніколи не зустрітися.
Хочу лише зазначити, що у ATmega8A з’явилася неприємна особливість, про яку з часів AT90s1200 вже встигли забути — при певних умовах може зтертися пам’ять сигнатури мікроконтроллера, тобто його ідентифікатор та константа OSCCAL. Судячи з тексту errata слід гарантувати, що при програмуванні на мікроконтроллер не буде подано нових команд до завершення команди зтирання. Для ATmega8A номінальний час зтирання 9 мс. Зараз в avreal для ATmega8A встановлено час затримки при зтиранні 20 мс, що співпадає з заданим в файлі Partdescriptionfiles/ATmega8A.xml в AVR Studio і вдвічі більше номінального часу. При знижених напругах живлення може бути необхідно збільшити час очікування, для цього призначено ключі -1…-5
Отже, чим відрізняються
Вийшла нова версія програматора avreal – v1.28r4 (Tue 2010-09-07).
На жаль, не знайшлося часу виправити помилку втрати синхронізації, це вже після відпустки робитиму.
Виявилася доволі дивна помилка в avreal 1.28r2 та 1.28r3. При співпадінні умов
для деяких мікроконтроллерів після першої операції верифікації робота обривається на помилці synchronosation lost.
Вийшла нова версія програматора avreal – v1.28r3 (Mon 2010-08-16).
Ще одна група запитань, що доволі часто зустрічаються в логах, це запитання про відмінності нових «А-версій» мікроконтроллерів AVR від їх попередників. Шукають «в чому різниця між atmega48p та atmega48pa», «різниця програмування atmega8a та atmega8», або взагалі «перехід з atmega16 на atmega16A».
Вираз «програмування мікроконтроллера» може мати різні значення і лише іноді запитання поставлено хай з використанням сленгу, але однозначно — «прошивка atmega32 та atmega32A».
Continue reading ‘Чим відрізняється ATtiny2313A від ATtiny2313?’ »
avreal не обробляє fuse з Extended Fuse byte для мікроконтроллерів ATmega16M1, ATmega32M1, ATmega64M1, ATmega32C1, ATmega64C1. При зчитуванні показує для всіх нульові значення (начебто прошиті), запис не виконується.
Судячи з логів сайту, доволі часто шукають фразу «synchronisation lost», але чомусь досі ніхто не задав запитання про неї у коментарях до сторінки avreal.
Повідомлення «synchronisation lost» означає порушення обміну інформацією з програмованим мікроконтроллером. Обмін по SPI між адаптером програмування та вбудованою в мікроконтроллер апаратурою програмування відбувається так само, як і між двома мікроконтроллерами.
