“A” and “not-A” AVRs

Продовження: порівняння «B» і «не-B» версій: “B” and “not-B” AVRs

Після короткої відповіді на питання про різницю між новими версіями мікроконтролерів tinyAVR/megaAVR з літерою ‘A’ та їх попередниками я вирішив детальніше розглянути різницю між ними з точки зору програміста. Не претендую на повноту, але при підготовці матеріалу переглянуто було не лише Migrating Notes, але і документацію на відповідні мікроконтролери.

Continue reading ‘“A” and “not-A” AVRs’ »

AVReAl update — 1.28r4

Вийшла нова версія програматора avreal — v1.28r4 (Tue 2010-09-07).
На жаль, не знайшлося часу виправити помилку втрати синхронізації, це вже після відпустки робитиму.


Помилку виправлено у версії 1.28r5.

Помилки в avreal 1.28r2 та 1.28r3

Виявилася доволі дивна помилка в avreal 1.28r2 та 1.28r3. При співпадінні умов

  • Використовується програматор на базі FT2232/FT4232
  • Зайняті верхні два байти флеш-пам’яті (кодом або лічильником стирань)
  • В одному виклику avreal виконується робота як з флеш пам’яттю, так і з ф’юзами
  • Присутній ключ верифікації -v

для деяких мікроконтроллерів після першої операції верифікації робота обривається на помилці synchronosation lost.

Continue reading ‘Помилки в avreal 1.28r2 та 1.28r3’ »

AVReAl update – 1.28r3

Вийшла нова версія програматора avreal — v1.28r3 (Mon 2010-08-16).

  • Виправлено помилку, яка призводила до неможливості роботи з Extended Fuse Byte для мікроконтроллерів ATmega16M1, ATmega32M1, ATmega64M1, ATmega32C1, ATmega64C1.

Ой! Є неприємні помилки. Вони вилазять не для всіх контроллерів та програматорів, але…

Чим відрізняється ATtiny2313A від ATtiny2313?

Ще одна група запитань, що доволі часто зустрічаються в логах, це запитання про відмінності нових «А-версій» мікроконтроллерів AVR від їх попередників. Шукають «в чому різниця між atmega48p та atmega48pa», «різниця програмування atmega8a та atmega8», або взагалі «перехід з atmega16 на atmega16A».

Вираз «програмування мікроконтроллера» може мати різні значення і лише іноді запитання поставлено хай з використанням сленгу, але однозначно — «прошивка atmega32 та atmega32A».

Continue reading ‘Чим відрізняється ATtiny2313A від ATtiny2313?’ »

Помилка в обробці fuse

avreal не обробляє fuse з Extended Fuse byte для мікроконтроллерів ATmega16M1, ATmega32M1, ATmega64M1, ATmega32C1, ATmega64C1. При зчитуванні показує для всіх нульові значення (начебто прошиті), запис не виконується.


Виправлено в avreal 1.28rev3

avreal synchronisation lost

Все, про що ви хотіли дізнатися,
але боялися спитати.

Судячи з логів сайту, доволі часто шукають фразу «synchronisation lost», але чомусь досі ніхто не задав запитання про неї у коментарях до сторінки avreal.

Повідомлення «synchronisation lost» означає порушення обміну інформацією з програмованим мікроконтроллером. Обмін по SPI між адаптером програмування та вбудованою в мікроконтроллер апаратурою програмування відбувається так само, як і між двома мікроконтроллерами.

spi-loop

Continue reading ‘avreal synchronisation lost’ »

ATmega328P в Києві.

Знадобилося тут додати функціоналу в зроблені колись “технологічні” пульти. Плати були зроблено зовсім давно під ATmega8, саме в ці було запаяно ATmega168, але там вже було зайнято більше, ніж три чверті коду. Пару підходів — і вже маємо запас всього 10%. Вихід на перший погляд простий — поставити мікроконтроллер з вдвічі більшим об’ємом флеша і надовго забути про проблеми.

Заходжу на сайт Imrad, де колись бачив 328-мі, хоч і по не дуже приємній ціні. Оскільки це не серійний виріб, то ціна не дуже й важлива. Але… Їх нема! Сайт Biakom — нема!!
Ну якщо вже просто забігти і взяти однак неможливо — передаю естафету комплектатору. Він пішов обдзвонювати по своєму списку і знайшов на останньому дзвінку (треба було знизу починати).

В Rainbow ATmega328P-AU знайшлися по ціні близько 25грн при “партії” в п’ять штук. Це було пару тижнів тому, але я не поспішав писати, поки не перевірив, що мікроконтроллери “справжні”, адже вже встиг прочитати про підробки і вже не знав, чи радіти низькій ціні. Тоді по сайту у них на складі було трохи більше семисот штук, на момент написання цього повідомлення – майже шість сотень. Кому вони потрібні — поспішайте!

AVReAl update – 1.28r2

Вийшла нова версія програматора avreal — v1.28r2 (Mon 2010-04-19).

  • Виправлено помилку верифікації для елемента внутрішнього списку фрагментів коду, що перетинає межу 64К слів (ATmega2560, ATmega2561) – проявлялася лише на певним чином зроблених hex-файлах, мені після avr-gcc такі жодного разу не траплялися.
  • Прибрано помилку, яка призводила до краху програми у випадку, коли з ключем -a нема ключа -p або +chip (наслідок неуважної правки в 1.28r0 “вже непотрібно вказувати +chip”)
  • Додано контроллери ATmega164A, ATmega324A, ATmega1284, ATmega328, AT90pwm81
  • Додано імена-синоніми для тих контроллерів з літерою “A”, які не відрізняються від “не-A” кристалів:
        ATmega8A,    ATmega16A,  ATmega32A,
        ATmega64A,   ATmega128A,
        ATmega48A,   ATmega88A,  ATmega168A,
        ATmega48PA,  ATmega88PA, ATmega168PA,
        ATmega164PA, ATmega644A, ATmega165PA,
        ATtiny261A,  ATtiny461A, ATtiny861A
  • При відсутності функції блочного запису байтів в dlportio.dll (її емуляторі) використовується власна функція з побайтовим виводом.
  • win32-версія – вилучено динамічне лінкування функції FT_Reload бібліотеки ftd2xx.dll, програма не залежить від її наявності в бібілотеці.

bug in avreal -a swicth (1.28r0, 1.28r1)

При використанні ключа -a без хоча б одного з ключів -p чи +chip програма “падає” (“виконала неприпустиму операцію …” і так далі).
Вважаю цю помилку не критичною, бо при правильному використанні в комбінаціях -a -p або -a +chip програма працює нормально, а при неправильному нічого не ламає ні в мікроконтроллері, ні в операційній системі. Нова версія програми для виправлення цієї помилки випускатися не буде, виправлення буде додано пізніше в чергову версію.


Виправлено в avreal 1.28rev2
[flagcounter image]