ATmega48PB

А також вся компанія ATmega88PB та ATmega168PB. Зацікавило, оскільки саме мега48 — один з небагатьох представників AVR, який я досі використовую. Іноді ATmega168 — на тих же платах під час налагодження, для свободи використання printf. Ще іноді ATtiny13A для малоногого та ATtiny26-ATtiny261 за їхню 64-мегагерцову PLL для таймера.

У порівнянні з ATmega48P/ATmega48PA зміни достатньо значні, навіть сигнатура помінялася :-), чого не було при переході від ATmega48P до ATmega48PA.

  • Нарешті викинули оту дурницю з двома парами VCC/GND (на додаток до VCCA/GNDA) і додали звільнені ніжки у PORTE. У той же порт додали ніжки ADC6 та ADC7, які тепер можуть бути і виходами.
  • Вихід аналогового компаратора тепер доступний на одному з цих доданих IO-виводів. Тепер можна зробити чесний апаратний гістерезис та ще й подати цей вихід на вхід RXD, а не ліпити програмний UART у випадках, коли сигнал приймається саме на компаратор (ну от такий він, сигнал).
  • Детектор стартового біта USART тепер працює в усіх sleep-режимах, тобто навіть у power down! Внутрішній RC вмикається по спаду на RXD, але тактування подається лише на USART, процесор піднімається вже після приймання. Особливо цікаво у поєднанні з попереднім пунктом.
  • 9-байтовий унікальний ідентифікатор кристалу. Але чомусь недоступний для програматора — розміщений у горішній частині регістрів і читається лише з програми. Принаймні у цій версії документації інших методів отримати не описано.
    Дрібна дурниця — в документації молодший регістр унікального ідентифікатора названо DIDR0 (Device IDentifier Register 0), тобто так само, як регістр заборони цифрових входів на аналогових ногах (Digital Input Disable Register 0).

Чого досі не вистачає:

  • Можливості перемкнути бітиком компаратор у low power режим — хай він спрацьовує не за 0.5-0.7 мкс, а за 3-5, але при цьому перестає жерти аж 60 мкА (при 3,3 В). Було б особливо приємно при використанні аналогового компаратора з UART у режимі power down.
  • Перемикання тактування на ходу, а не лише через fuse CKSEL. У деяких нових ATtiny це вже зробили, то могли б і тут.
  • Хоча у багатьох випадках мені б вистачило мультиплексора перед таймером 2, який вже має асинхронний режим. От туди б запускати не лише зовнішній «годинниковий» кварц, а ще й «128-кілогерцовий» генератор. Залишається додати до цього таймера input capture та прокидання по цій події — і можна з основного 8-мегагерцового RC йти в сон, звідки прокидатися, маючи час від попередньої події.

Leave a Reply

[flagcounter image]