“B” and “not-B” AVRs

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

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

З точки зору програматора змінилися лише сигнатури (ідентифікатри) мікроконтролерів та додався один fuse в ATmega328PB і ATmega324PB. Він забороняє нову функцію (CFD, див. нижче) і з заводу запрограмований. Якщо його не треба міняти і якщо можна змусити програматор проігнорувати сигнатуру, то всі ці кристали можна прошивати як відповідні PA. Втім, в avreal ці мікроконтролери вже додано, а для всіх іншіх програматори це, думаю, зроблено давно 🙂

Можливо, цей список і не збільшуватиметься вже, бо анонсовано геть нові 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

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

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

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

Leave a Reply

[flagcounter image]