“A” and “not-A” AVRs

Продолжение: сравнение «B» и «не-B» версий: “B” and “not-B” AVRs

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

Как было уже сказано, версии A работают во всём диапазоне питающего напряжения и тактовой частоты, который перекрывался предыдущими обычными и L/V-версиями. Кроме того, в большинстве случаев несколько снижено максимальные токи потребления и существенно типовые. В остальном новые микроконтроллеры — тождественная замена старых. За исключением особо отмеченных случаев не поменялись и сигнатуры-идентификаторы контроллеров.
Но в некоторых случаях отличие есть и на уровне возможностей — добавились новые регистры и биты в старых регистрах.
Из относящегося к питанию также у многих новых кристаллов изменились уровни POR. Здесь это отмечено, подробнее можно прочитать в заметке «A»-AVR: POR.

Итак, чем отличаются

Различие ATmega8A и ATmega8, ATmega8L

Описано в AVR523.

  • Немного увеличился уровень Uol для выходов портов.
  • Диапазон min-max внутреннего источника опорного напряжения увеличился с 2,3-2,7 В до 2,3-2,8 В.
  • errata – ни один пункт не пропал, добавились новые.

Различие ATmega16A и ATmega16, ATmega16L

Описано в AVR522.

  • Диапазон min-max для reset pull-up увеличился с 30-60 кОм до 30-85 кОм.
  • Сохранилась errata последних версий ATmega16.

Различие ATmega32A и ATmega32, ATmega32L

Описано в AVR521.

  • Диапазон min-max для reset pull-up увеличился с 30-60 кОм до 30-85 кОм
  • Добавилсяь errata и тепер вона соответствует errata ATmega16A (у ATmega32 ошибок было меньше, чем у ATmega16).

Различие ATmega64A и ATmega64, ATmega64L

Описано в AVR524.

  • Немного увеличился уровень Uol для выходов портов.
  • Добавился один пункт в errata.

Различие ATmega128A и ATmega128, ATmega128L

Описано в AVR525.

  • Немного увеличился уровень Uol для выходов портов.
  • Диапазон min-max для reset pull-up увеличился с 30-60 кОм до 30-85 кОм
  • Добавился один пункт в errata.

Различие ATmega48A, ATmega88A, ATmega168A и ATmega48, ATmega48V, ATmega88, ATmega88V, ATmega168, ATmega168V

Описано в AVR532.

  • Поменялись уровни POR.
  • Поменялись характеристики генератора для часового кварца.
  • Исправлено работу TWI в power-down.
  • Убрано ошибки предыдущих версий, одна ошибка добавилась.
  • Добавился датчик температуры.

Различие ATmega48PA, ATmega88PA, ATmega168PA и ATmega48P, ATmega48PV, ATmega88P, ATmega88PV, ATmega168P, ATmega168PV

Описано в AVR528.

  • Появился один пункт в errata.

Различие ATmega644A и ATmega644, ATmega644V

Описано в AVR536

  • Поменялись уровни POR.
  • ISP-сигнатура не поменялась, JTAG сигнатура изменилась.
  • Добавился второй USART.
  • errata пропала.

Различие ATmega164PA, ATmega324PA, ATmega644PA и ATmega164P, ATmega164PV, ATmega324P, ATmega324PV, ATmega644P, ATmega644PV

Описано в AVR527.

  • У ATmega324PA поменялась ISP-сигнатура, у всех остальных сохранилась.
  • errata как была пустая, так и осталась.

Различие ATmega165PA, ATmega169PA ATmega165P, ATmega165PV, ATmega169P, ATmega169PV

Описано в AVR529.

  • Поменялись уровни POR.
  • Добавился Sleeping BOD – биты BODS/BODSE в MCUCR.
  • Биты PCIE/PCIF в EIMSK/EIFR подвинулись на другие места, необходима перекомпиляция проетка, если эти биты используются.

Различие ATtiny2313A и ATtiny2313, ATtiny2313V

Описано в AVR533.

  • Поменялись уровни POR.
  • По архитектурным изменениям этот микроконтроллер рекордсмен серед всех A-вариантов. Новые возможности:
    • Sleeping BOD – регистр BODCR.
    • Регистр управления питанием PRR.
    • Буферный регистр USI – USIBR.
    • Прерывания по смене состояния вывода PCINT теперь работает на всех выводах, добавились регистры PCMSK1, PCMSK2 и соответствующие биты в GIMSK/GIFR.
    • Режим MASTER SPI у USART.
    • Бит RSIG в SPMCSR.
  • errata очистилась, новых известных ошибок нет.

Различие ATtiny13A и ATtiny13, ATtiny13V

Описано в AVR520.

  • Немного увеличился уровень Uol для выходов портов.
  • Поменялись уровни POR.
  • Добавились:
    • Sleeping BOD – регистр BODCR.
    • Регистр управления питанием PRR.

Различие ATtiny261A, ATtiny461A, ATtiny861A и ATtiny261, ATtiny261V, ATtiny461, ATtiny461V, ATtiny861, ATtiny861V

Описано в AVR531.

  • Поменялись уровни POR.
  • Добавился Sleeping BOD – биты BODS/BODSE в MCUCR.
  • OSCCAL теперь имеет монотонную характеристику.

Различие ATtiny24A, ATtiny44A и ATtiny24, ATtiny24V, ATtiny44, ATtiny44V

Описано в AVR526.

  • Поменялись уровни POR.

© 2010-2012, Александр Редчук aka ReAl

Leave a Reply

[flagcounter image]