AVReAl update — 1.29r1

Вийшла нова версія програматора avreal — v1.29r1 (Sun 2018-02-11).

  • Додано підтримку:
    • Attiny441, ATtiny841
    • ATmega48PB, ATmega88PB, ATmega168PB, ATmega328PB
    • ATmega324PB
  • Файл із серійним номером пристрою тепер може містити шістнадцяткове число з префіксом 0x.
  • Виправлено внесену в 1.29r0 помилку, через яку символьні масиви довідки по ключу -h стали задовгими й обрізалися під час виводу функцією vsnprintf(). Завдяки тому, що вони обрізалися, avreal не падав так гучно, як то робив avr-ld ;-) .

Парасолька і болтик М8

Парасольки я ремонтую. Поки це більш-менш можливо. Більшість типових проблем швидше полагодити, ніж сходити по нову.

Оце й сьогодні всівся одній калічній вправляти «суглоб» — трубочка-заклепка протерлася і випала. Слідом за нею випала і петелька, яка тримала тягу. Дві металеві скріпки (звичайна для петельки і велика для скоби замість заклепки), кусачки, надфіль — затерти гострі краї на місці відкусювання, щоб не чіплялося ні за що, плоскогубці-качконоси і звичайні. Кілька хвилин часу. І ще побігає.

Але це була особлива парасолька… Років два тому я її вже ремонтував.
На парасольках тканину в центрі здебільшого підтримує або пластикова декоративна «гайка», а з маточини стирчить шматочок різьбової шпильки, або ж в маточині нарізано внутрішню різьбу і закручено декоративний пластиковий «болтик». Та до цієї парасольки мені траплялися лише з різьбою близько 6 мм. Іноді таки М6, якось ковпачкову гайку замість втраченої пластмасової накручував, іноді щось дюймове.

А ця відремонтувалася вкручуванням чесного болта M8. Трохи вкороченого, потрібної довжини вдома не знайшлося.


Ремонт парасольки болтом М8Ремонт парасольки болтом М8

avr-ld buffer overflow

Дійсно прикра помилка в avr-ld (binutils-avr 2.25) — та, що спонукала мене до перевірки використання Raspberry Pi як комп’ютера для роботи, — виявилася доволі цікавою.

Почала вивалюватися вона у мене доволі давно, але я помилково вважав, що вона притаманна 64-бітній версії Ubuntu 16.04, бо на роботі в 32-бітній все працювало. Думав, що це якісь проблеми невраховування розмірів чи співвідношення розмірів змінних на зразок «подаруночка від FTDI». Чесно кажучи, у повідомлення не особливо і вчитувався — «та хай, це по роботі, то на роботі й зберу» і вдома більше не запускав аж до того, як нещодавно перезібрати знадобилося негайно, бо це зупиняло термінову роботу. Тоді ж ото зібрав на Raspberry й написав про все це.

Ну й на ключову фразу *** buffer overflow detected *** Іван у коментарях пояснив, як із цим можна боротися.
Докладніше читайте » » »

Відвідуваність статей Вікіпедії

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

Всі три різновиди графіків відвідуваності

Умовно їх можна назвати «новинний», «святковий» і «студентський». Далі про них докладніше » » »

Дрібна програмована логіка

Дивлюся оце на схему адаптера для програмування мікроконтролерів на мікросхемі FT2232 з перемиканням між JTAG і SWD і вкотре жалкую про передчасну смерть дрібної програмованої логіки. Дрібної не в сенсі корпусу ультра-нано-wlcsp, а в сенсі невеликої кількості логічних елементів.

Так, у продавців ще зустрічаються (вже Мікрочіпівські) ATF16V8/ATF22V10, але то старі серії швидше на підтримку старого обладнання, ніж на якісь нові розробки, бо Cypress і TI від різних PALCE вже відмовилися. І однак — ціна ATF16V8 штучно на DigyKey мало відрізняється від сумарної вартості (там же і теж штучно) тих трьох корпусів дрібної логіки, що стоять на JTAG/SWD-адаптері.

Так, PLD-шка ще потребувала б програмування, але при сучасних технологіях це не потребувало б 12-вольтової напруги і робилося б за долі секунди під час тестування зібраної плати. Ну хай тут, в адаптері, щось зовсім просте, навіть без тригерів. Але, як на мене, ще досить задач, де підійшло б щось на зразок (теж вже застарілої) EPM3032, але в корпусі TSSOP20…28 з програмуванням вбудованої EEPROM простим поширеним інтерфейсом на зразок I2C.

Перехідна плата qfp32

Зовсім випадково надибав на AliExpress чудову перехідну плату з qfp32 на два ряди штирів 2,54 мм для безпаєчної макетки. На відміну від інших, зі зворотного боку вона має не tssop32, виправданий з точки зору здешевлення макетки, а місця під корпуси 0805 з кожного виводу мікроконтролера, які виходять на полігон.

Адаптер з QFP32 на штирі з місцями 0805

Чудове рішення для того, щоб відразу з’єднати потрібні виводи з землею і якомога ближче до мікросхеми розмістити конденсатори. Також зручно для підтяжок до землі на потрібних виводах, наприклад, BOOT0 в мікроконтролерах STM32 (тут запаяно STM32L051K8). І не забудеш поставити при зміні схеми, і не займає дірочок у макетній платі.

Вона є у декількох продавців, я брав у цього.

p.s. Паяв знову не сам. Пора заводити тег скористався службовим становищем. ;-)

Старий варіант перемикача гірлянд

Слово за слово, і таки поліз у барахлі шукати стару макетку, прототип позавчорашньої конструкції. Знайшов.

Хвіст на батарейку давно кудись відкушений, «гірляндочка» (стовпчик з трьох світлодіодів різного кольору) залишилася одна. На кінчиках дротиків гнізда з якихось розпиляних ГРПМ, а у макетці штирі, щоб можна було гірлянди підключати до різних виходіві отримувати різні ефекти. Можна оцінити довжину МГТФ-у і, відповідно, розмір ялинки, на яку було розраховано.

Тригери JK, К561ТВ1. Два елементи ЛН2 як генератор, чотири — як буфери для більшого струму світлодіодів. На виходах з 561ЛН2 резистори 470 Ом.

Макетка — огризок «ВУМ-івської», з тих, що вони собі самі робили для макетування плат розширення до «Поіск-2».

Стара макетка перемикача гірлянд

Судячи з кількості штирів, підключити взагалі можна було лише чотири гірлянди. Вільне місце на макетці натякає, що могла бути допаяна додаткова логіка для «пригасання на 1/4 періоду», про яку згадано у попередньому дописі, і буферну мікросхему після неї. Але було вирішено, що і так добре.

Простий перемикач гірлянд

Тему навіяно різким збільшенням інтересу до моєї старої публікації щодо відмінностей між «А-» і «не-А»-версіями мікроконтролерів AVR. Переходи з логу на сторінки-джерела посилань показують, що цікавить переважно відмінність ATtiny13A від ATtiny13. З урахуванням календаря у мене склалося таке враження, що десь є старі (на tiny13) схеми-прошивки простої світлодіодної блималки, яку всім чухається повторити до новорічних свят, а дотягнутися можна лише до ATtiny13A.

І я згадав той перемикач гірлянд на мікросхемах К561ТВ1 і К561ЛН2, що його напаяв на макетці років 25 тому, теж за кілька днів до Нового року. Пропрацював він років п’ятнадцять. «Гірлянд», може, й гучно сказано, але для невеличкої ялинки пару десятків вогників вистачало.

Зараз повторив схему на безпаєчній макетці на мікросхемах HEF4013 (два D-тригери) і HEF4093 (чотири елементи 2I-НЕ з тригерами Шмітта на входах).

І ось що з цього вийшло » » »

Силіконова долина

Знову різонуло по очах так, що геть зовсім «не можу мовчати».

Купив оце книжку «Як музика стала вільною. Цифрова революція та перемога піратства» Стівена Вітта («Наш Формат»). Загалом цікаво, я ж пам’ятаю ті перші mp3, іноді навіть на 64 кілобітах на секунду, які до мене потрапляли.

Але вже у вступі — «Силіконова долина». У контексті, який не залишає сумнівів — мова йде про Кремнієву. Різниця ж немаленька, силіконовою називають зовсім іншу долину, відому не завдяки кремнієвим мікросхемам і взагалі «високим технологіям», а завдяки порноіндустрії.

Докладніше щодо цієї помилки, на жаль, дуже поширеної, на сторінці неоднозначності Силіконова долина та у вступі статті Кремнієва долина в українській Вікіпедії.


Доповнення 21 лютого 2018.
Маю відзначити, що книжка цікава, особливо для тих, хто перетискав колись давно витягнуті mp3-шки на моно 128 кілобіт/с (а то й для голос+акустична гітара на 64), бо інакше воно на той нещасний вінчестер не лізло ;)
Крім оцього «силіконова» око майже ні за що не дряпнулося, хоча було пару місць, де виліз вплив російської («провалився у цю тимчасову щілину»часову́, рос. временну́ю, а не вре́менную). Але вцілому навпаки — враження доволі добрі.


Raspberry Pi як комп’ютер для роботи

Не від хорошого життя довелося провести тест Raspberry Pi як робочого комп’ютера.

Не знаю, після якого оновлення Ubuntu MATE, але на моєму основному комп’ютері перестав працювати avr-ld, валиться з помилкою «*** buffer overflow detected ***» (це на 64-бітній системі, пізніше я перевірив, що на 32-бітній такій же МАТЕ і з тими ж оновленнями все працює — це не так, залежить не від розрядності, докладніше тут).
А мені терміново знадобилося внести маленьку зміну в прошивку ATtiny13A. Мій «червоненький» ноутбук зараз інтенсивно використовує дружина, то щоб їй не заважати, я згадав про Raspberry, на яку оце ж нещодавно ставив (таку ж!) убунту.

Поставив там avr-gcc, все зібрав, перекинув на основний комп, прошив.

Стало цікаво порівняти швидкість. Цей маленький (близько 400 байт прошивки) асемблерний проект на роль такого тесту геть не годиться, тому я вирішив позбирати більший. Поставив, відповідно, arm-none-eabi-gcc, щоб збирати поточний проект для STM32F105. Там десятки файлів, за 40 кілобайт результат, — час вже можна міряти. Збирав на Raspberry, на основному своєму комп’ютері (AMD A8), на «червоненькому» Dell Vostro V130 (Core i3) і на роботі на Pentium D (дохлий, як на нинішні часи, комп’ютер, але його там цілком вистачає). На всіх системах стоїть Ubuntu MATE 16.04 з усіма оновленнями. Лише на AMD A8 64-бітна, всі інші 32-бітні (і на всіх 32-бітних avr-ld свою роботу чесно робить).

Ось що вийшло (time make -j число_ядер, час у секундах).
Воно від збирання до збирання трохи стрибало, але не принципово.

система
(ядер*ГГц)
real user system
Raspberry Pi 3
(4*1.2)
12.2 32.6 3.3
Pentium D
(2*1,8)
9.5 13.3 1.8
Core i3 M380
(4*1,33)
8.2 20.6 2.7
AMD A8-7600
(4*3.1)
3.1 7.7 1.2

Тут у табличці нема ширини і швидкості шини пам’яті, своє слово сказало і те, що Raspberry працює з SD-карти, Pentium-D і AMD A8 з SATA-дисків, а Core-i3 з SSD. Але тут я хочу порівняти все ж таки не кількість зкомпільованих рядків коду на гігагерц-ядро чи DDR-истість пам’яті, а абсолютний час — питання, що турбує: «чи йти заварювати чай, чи воно раніше збере» :-)

Виявилося, що Pi 3, на відміну від перших Raspberry, цілком придатний для роботи з прошивками такого обсягу.
І що ця плата реально набагато швидша, ніж комп’ютер, на якому 10 років тому я запускав альтерівський Quartus-II 9.1 для збирання прошивок альтер (не можу пригадати, що у мене тоді було… якийсь Athlon XP). Та й «мікроконтролерні» компіляції там більше часу займали.

[flagcounter image]