Компания Atmel применяет довольно неудобную систему именования чипов AVR, которая часто приводит в недоумение даже опытных пользователей. Бывает трудно понять, с какой именно маркировкой следует использовать кристалл для разработки, если имеется несколько на первый взгляд незначительно отличающихся вариантов. В этой статье сделана попытка обобщить различия между ATmega328, ATmega328P, ATmega328PU.
1. Для обычных применений нет никакой разницы между Atmega328P и Atmega328. Так что можно просто заменить ATmega328 на ATmega328P или наоборот.
2. Atmega328P меньше потребляет энергии, чем Atmega328 (в чем можно убедиться, если посмотреть таблицы параметров даташита). Это означает, что для Atmega328P использовался более точный техпроцесс (60 нм у ATmega328P против 90 нм у ATmega328), и обычно эти чипы дороже. Микроконтроллеры AVR, которые меньше потребляют, обладают по терминологии Atmel классификацией PicoPower. Таким образом, в устройствах с батарейным питанием предпочтительнее использовать ATmega328P, и задействовать у них специальные режимы управления питанием с целью снижения энергопотребления.
3. Сигнатуры чипа для Atmega328P и Atmega328 отличаются. Так что если используются программы, читающие сигнатуру чипа (наподобие утилиты программирования avrdude в составе Arduino IDE), то Вы можете встретиться с сообщениями об ошибке, если неправильно укажете тип микроконтроллера.
4. Корпус микроконтроллера типа TQFP32 доступен только для Atmega328P, и его нет для Atmega328. Возможно это связано с тем, что толщина кристалла Atmega328 больше, и он не помещается в корпус TQFP32.
5. В Atmega328 нет фьюза для запрета детектора некачественного питания (Brown-out Detector, BOD). В Atmega328P этот фьюз есть, что позволяет дополнительно уменьшить энергопотребление, если отключить BOD.
Фьюз BOD имеется только в AVR с технологией picoPower ATmega48PA, ATmega88PA, ATmega168PA, ATmega328P. Фьюзы BODS и BODSE имеются только в AVR с технологией picoPower ATmega48PA, ATmega88PA, ATmega168PA, ATmega328P.
6. Есть незначительные отличия в системе команд, относящиеся к инструкциям перехода. Если компилировать для чипа ATmega328, то программа будет одинаково работоспособна и на ATmega328, и на ATmega328P.
Мнемоника |
Операнды |
Описание |
Операция |
Действие на флаги |
# циклов |
JMP |
adr |
Прямой переход по адресу |
PC ← adr |
нет |
3 |
CALL |
adr |
Прямой вызов подпрограммы по адресу |
PC ← adr |
нет |
4 |
Примечание: эти инструкции имеются только в ATmega168PA и ATmega328P.
7. Суффикс PU обозначает тип корпуса кристалла - пластиковый DIP28 (PDIP), это не имеет никакого отношения к суффиксу P. Т. е. ATmega328PU это просто ATmega328 в корпусе PDIP28.
[Суффиксы -PU, -AU, -MU]
Эти суффиксы обозначают тип корпуса микроконтроллера. PU соответствуют пластиковому DIP (PDIP), AU пластиковому TQFP, MU пластиковому QFN.
|
|
ATmega328-PU, корпус PDIP28 |
ATmega328P-AU, корпус TQFP32 |
|
Комментарии
microsin: бинарники кода в 99% случаев совместимы у всех перечисленных микроконтроллер ов: ATmega328, ATmega328P, ATmega328PU.
microsin: для утилиты программатора не имеет значения, какой корпус у микроконтроллер а.
microsin: это зависит от рабочих условий, тактовой частоты, и от того, каким образом применены режимы пониженного потребления энергии. Не поленитесь заглянуть в даташиты на микроконтроллер ы, там приведена подробная информация.
RSS лента комментариев этой записи