“B” and “not-B” AVRs

I am sorry, this text in English does not exist (yet).
I apologized there. Try google translate.

Від публікації огляду відмінностей між «A» і «не-A»-версіями мікроконтролерів AVR пройшло чимало часу і вже можна порівнювати «B»-версії. Таких мікроконтролерів ще небагато, але є на що подивитися. Errata на кристали я ще не вивчав, як там буде що важливе — доповню пізніше.

Раніше я вже коротко писав про ATmega48PB…168PB. ATmega328PB і ATmega324PB просунулися набагато далі, це вже практично нові мікроконтролери, сумісні по виводах з «not-B». Для всіх цих мікроконтролерів є спільний з першого погляду непомітний, але важливий момент — DIP-корпусів більше нема. Тому тим, хто розраховує лише на них, далі можна не читати ;-)

Можливо, цей список і не збільшуватиметься вже, бо анонсовано геть нові ATmega3208/3209/4808/4809 із суттєво збільшеним обсягом оперативної пам’яті (натомість зменшеною EEPROM) та розширеною периферією.

Отже, відмінності

Відмінності ATmega48PB/88PB/168PB від ATmega48PA/88PA/168PA

Документація на ATmega48PB/88PB/168PB і опис відмінностей.

  • Прибрано надлишкову пару VCC/GND, ці виводи тепер знаходсться в PORTE
  • Виводи ADC6, ADC7, які досі не були портами, також тепер в PORTE, разом із попереднім чотири додаткових IO.
  • Вихід вбудованого компаратора можна подати на нжку PE0, для керування додано новий регістр ACSRB
  • USART може працювати в sleep, по старт-біту вмикається генератор. Мікроконтролер може прокидатися і по старт-біту, і вже аж по закінченню приймання байту, біти керування у новому регістрі UCSR0D.
  • CKSEL — пропав full swing XTAL (CKSEL 011x), у кого стояло таке — поміняти налаштування fuses для програматора (CKSEL 100x–111x). Інші fuses не змінилися.
  • Додано 9-байтовий унікальний ідентифікатор кристалу, який можна прочитати командою LPM після встановлення біта SIGRD в SPMCSR або навіть через «верхні» через порти IO з адресами F0-F8 (у дурному порядку).
  • Електричні характеристики
    • Заводське калібрування RC-генератора тепер не ±10%, а лише ±2% (±5% у повному діапазоні напруг і температур), крок через OSCCAL не змінився, ±1%
    • Дещо впало падіння напруги на виході при максимальному навантаженні
    • Став трохи швидшим компаратор
    • Зі струмами споживання каша — десь типові трохи збільшилися а максимальні зменшилися, десь типові збільшилися. То треба уважно дивитися, кого що цікавить. Струм PowerSave виріс!

Відмінності ATmega328PB від ATmega328P

Документація на ATmega328PB і опис відмінностей.
Зміни більші, навіть в описові відмінностей підкреслено «ATmega328PB is not a drop-in replacement for ATmega328 variants, but a new device».

Окрім всього перерахованого вище для ATmega48PB…ATmega168PB маємо ще:

  • Додалося по одному USART, I2C і SPI. Втім, ніжок не вистачає і USART1 сидить на тих же, що й SPI0. Оскільки комутатора периферії по портах нема, то одночасно використати не вийде.
  • Додалися два 16-бітних таймери TC3 і TC4, разом стало 10 PWM. Виходи output-compare-B додаткових таймерів на одній ніжці (PD2) і якщо увімкнені обидва, то збираються по AND або по OR залежно від стану бітика PORTD2.
  • З’явився апаратний touch-контролер, «Low CPU utilization through interrupt on acquisition-complete» і все таке, але в DS робота і регістри не описані, згадано лише які лінії сканування на які виводи мікроконтролера виведено і про фірмову бібліотеку QTouch.
  • Clock Failure Detection для OSC32K і XTAL з перемиканням на IntRC 1 MHz і можливістю переривання по події. fuse «disable CFD» з заводу прошите, тобто за умовчанням функцію вимкнено.

Відмінності ATmega324PB від ATmega324PA

Документація на ATmega328PB і опис відмінностей.

Все те ж саме, що для ATmega328PB (разом з увійшовшими туди змінами для ATmega48PB…ATmega168PB). Єдине що USART-ів й до того було два, то після додавання ще одного їх стало три. Та ще надлишковими визнано дві пари VCC/GND, разом із ними у PORTE пішли ще два виводи XTAL та ніжка AREF, тобто додатковий PORTE має аж сім IO. У багатьох випадках це дасть можливість обійтися 44-виводним корпусом.

Виглядає так, що ATmega328PB і ATMega324PB утворюють нову «лінійку», позаяк вони схожіші між собою, ніж кожен із них та відповідна P/PA-версія чи ATMega328PB та відповідні 8/16-кілобайтні PB-версії.

AVReAl update — 1.29r1

avreal v1.29r1 (Sun 2018-02-11) has been released.

  • Added support for:
    • Attiny441, ATtiny841
    • ATmega48PB, ATmega88PB, ATmega168PB, ATmega328PB
    • ATmega324PB
  • The file with device serial number can now contain a 0x-prefixed hexadecimal number.
  • Fixed a bug where the character arrays for -h became too long and cuts off by vsnprintf(). But avreal was not crashes like avr-ld does.

    Парасолька і болтик М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), бо інакше воно на той нещасний вінчестер не лізло ;)
    Крім оцього «силіконова» око майже ні за що не дряпнулося, хоча було пару місць, де виліз вплив російської («провалився у цю тимчасову щілину»часову́, рос. временну́ю, а не вре́менную). Але вцілому навпаки — враження доволі добрі.


    [flagcounter image]