“A” and “not-A” AVRs
После короткого ответа на вопрос о разнице между новыми микроконтроллерами tinyAVR/megaAVR с буквой ‘A’ и их предшественниками я решил подробнее рассмотреть различия этих микроконтроллерова с точки зрения программиста. Не претендую на полноту, но просмотрены были не только Migration Notes, но и документация на соответствующие микроконтроллеры.
Как было уже сказано, версии A работают во всём диапазоне питающего напряжения и тактовой частоты, который перекрывался предыдущими обычными и L/V-версиями. Кроме того, в большинстве случаев несколько снижено максимальные токи потребления и существенно типовые. В остальном новые микроконтроллеры — тождественная замена старых. За исключением особо отмеченных случаев не поменялись и сигнатуры-идентификаторы контроллеров.
Но в некоторых случаях отличие есть и на уровне возможностей — добавились новые регистры и биты в старых регистрах.
Из относящегося к питанию также у многих новых кристаллов изменились уровни POR. Здесь это отмечено, подробнее можно прочитать в заметке «A»-AVR: POR.
Итак, чем отличаются
- ATmega8A от ATmega8, ATmega8L
- ATmega16A от ATmega16, ATmega16L
- ATmega32A от ATmega32, ATmega32L
- ATmega64A от ATmega64, ATmega64L
- ATmega128A от ATmega128, ATmega128L
- ATmega48A, ATmega88A, ATmega168A
от ATmega48, ATmega48V, ATmega88, ATmega88V, ATmega168, ATmega168V - ATmega48PA, ATmega88PA, ATmega168PA
от ATmega48P, ATmega48PV, ATmega88P, ATmega88PV, ATmega168P, ATmega168PV - ATmega644A от ATmega644, ATmega644V
- ATmega164PA, ATmega324PA, ATmega644PA
от ATmega164P, ATmega164PV, ATmega324P, ATmega324PV, ATmega644P, ATmega644PV - ATmega165PA, ATmega169PA від ATmega165P, ATmega165PV, ATmega169P, ATmega169PV
- ATtiny2313A от ATtiny2313, ATtiny2313V
- ATtiny13A от ATtiny13, ATtiny13V
- ATtiny261A, ATtiny461A, ATtiny861A
от ATtiny261, ATtiny261V, ATtiny461, ATtiny461V, ATtiny861, ATtiny861V - ATtiny24A, ATtiny44A
от ATtiny24, ATtiny24V, ATtiny44, ATtiny44V
Различие 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