ATmega328 — Микроконтроллер 8-Бит, 32 кБ флеш памяти — DataSheet
ATmega48A/PA/88A/PA/168A/PA/328/P
Особенности
- Высокая производительность, низкое энергопотребление
- Улучшенная RISC-Архитектура
— 131 мощная команда — большинство которых выполняется за один такт ЦПУ
— 32 x 8 регистра общего назначения
— Полностью статическая операция
— Производительность до 20 МИЛЛИОНОВ КОМАНД В СЕКУНДУ на 20 МГЦ ЦПУ
— Внутрикристальный 2-цикловый множитель
- Энергонезависимая память данных и программ
— 4/8/16/32 кБ внутрисистемной энергонезависимой ФЛЭШ-памяти программ
— 256/512/512/1 кБ EEPROM ПЗУ
— Количество циклов запись/стирание: 10,000 Flash/100,000 EEPROM
— Хранение данных: 20 лет при температуре 85 °C/100 лет при температуре 25 °C
— Дополнительный загрузочный раздел независимыми блокировочными битами
• В системе программирования внутренних загрузочных программ
• Истинность Read-While-Write операции
— Программная блокировка для обеспечения безопасности
- Поддержка библиотеки Atmel® QTouch®
— Емкостные сенсорные кнопки, слайдеры и колеса прокрутки
— Технологии QTouch и QMatrix®
— До 64 сенсорных канала
- Периферийные характеристики
— Два 8-битных Таймера/Счетчика с Отдельным Предделителем частоты и Режимом сравнения
— Один 16-битный Таймер/Счетчик с Отдельным Предделителем частоты и Режимом сравнения и Режимом захвата
— Счетчик реального времени с отдельным генератором
— Шесть ШИМ-каналов
— 8-канальный 10—разрядный АЦП в корпусах TQFP и QFN/MLF
• Измерение температуры
— 6-канальный 10—разрядный АЦП в корпусе PDIP
• Измерение температуры
— Программируемый последовательный интерфейс USART
— Последовательный интерфейс SPI Master/Slave
— Байтно-ориентированный последовательный интерфейс (совместим с I2C Philips)
— Программируемый Сторожевой Таймер со встроенным Генератором
— Встроенный аналоговый компаратор
— Прерывание и пробуждение по изменению на выводах
- Дополнительные характеристики микроконтроллера
— Схема сброса при подаче питания и программируемое обнаружение провалов по напряжению
— Внутренний калиброванный генератор
— Шесть режимов сна: холостой ход, снижение шумов АЦП, экономии энергии, выключение питания, режим ожидания и расширенный режим ожидания
- Ввод/вывод и типы корпусов
— 23 программируемые линии ввода/вывода
— Корпус PDIP 28 выводов, корпус TQFP 32 вывода, корпус QFN/MLF с 28 и 32 выводами
- Рабочее напряжение:
— от 1.8 до 5.5 В
- Температурный диапазон:
-от -40°C до 85°C
- Производительность:
— 0 — 4 МГц при 1.8 — 5.5 В, 0 — 10 МГц при 2.7 — 5.5 В, 0 — 20 МГц при 4.5 — 5.5 В
- Потребляемый ток при 1 МГц, 1.8 В, 25 °C
— Активный режим: 0.2 мА
— Режим отключения: 0.1 мкА
— Режим энергосбережения: 0.75 мкА (Включая 32 кГц RTC)
Скачать полную техническую документацию к ATmega328
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
ATMega328 pdf 8bit микроконтроллер с 32Kb Flash datasheet
Микроконтроллер ATMega328 содержит аж 32кБайта встроенной flash памяти, что по моим меркам ну просто оооочень много для разных поделок, разве что для файловой системы FAT или PetitFATFs при рабте с SD/MMC картами памяти.
Тем не менее у микроконтроллера так же достаточно большой объем оперативной памяти 2кБайта
К питанию микроконтроллер ATMega328 не притязателен, питается от 1,8В до 5,5В.
Тип корпуса DIP28, TQFP32, MLF28 или MLF28.
От себя:
Не смотря на то, что везде говорят о сложности приобретения микроконтроллера ATMega328 в виду его дефицита хочу сказать, что без особых проблем купил в Киеве в магазине. Правда цена немного огорчила, да и корпус только TQFP32 был.
Сложности прошивки ATMega328:
Так исторически сложилось что ATMega328 очень широко применяется в платформе Arduino.
При желании прошить ATmega328 я столкнулся с проблемой, что старая версия AVR Studio 4 не работает с этим микроконтроллером, его просто нет в списке. Программа Uniprof тоже не может распознать ATmega328, так и пишет ошибку: «Выберите микроконтроллер». Так как размер страниц памяти у ATmega8 и ATmega328 разные прошить одну прошивкой вместо другой нереально.
Единственное решение которое дало возможность прошить мк: USB программатор от Prottos (AVR 910) в связке с программой AVR Prog. Время прошивки микроконтроллера составилов —
Скачать ATmega328 datasheet
Устройство микроконтроллера ATmega328 — описание, характеристики
От iteh 26/02/2018 \\ 27 714 просмотров \\ Микроконтроллеры AVRМикроконтроллер ATMega328 является 8-ми разрядным CMOS микроконтроллером с низким энергопотреблением, основанным на усовершенствованной AVR RISC архитектуре.
ATmega328/P — микроконтроллер семейства AVR, как и все остальные имеет 8-битный процессор и позволяет выполнять большинство команд за один такт.
Память:
- 32 kB Flash (память программ, имеющая возможность самопрограммирования)
- 2 kB ОЗУ
- 1 kB EEPROM (постоянная память данных)
Периферийные устройства:
- Два 8-битных таймера/счетчика с модулям сравнения и делителями частоты
- 16-битный таймер/счетчик с модулем сравнения и делителем частоты, а также с режимом записи
- Счетчик реального времени с отдельным генератором
- Шесть каналов PWM (аналог ЦАП)
- 6-канальный ЦАП со встроенным датчиком температуры
- Программируемый последовательный порт USART
- Последовательный интерфейс SPI
- Интерфейс I2C
- Программируемый сторожевой таймер с отдельным внутренним генератором
- Внутренняя схема сравнения напряжений
- Блок обработки прерываний и пробуждения при изменении напряжений на выводах микроконтроллера
Специальные функции микроконтроллера ATmega328:
- Сброс при включении питания и программное распознавание снижения напряжения питания
- Внутренний калибруемый генератор тактовых импульсов
- Обработка внутренних и внешних прерываний
- 6 режимов сна (пониженное энергопотребление и снижение шумов для более точного преобразования АЦП)
Напряжения питания и скорость процессора:
- 1.8 — 5.5 В при частоте до 4 МГц
- 2.7 — 5.5 В при частоте до 10 МГц
- 4.5 — 5.5 В при частоте до 20 МГц
Файлы:
>> Скачать даташит ATMega328
Похожие записи
Самодельный Arduino из контроллера ATMEGA328P-PU
Платформа Arduino стала нынче практически мейнстримом.
В этой статье напишу о том, как собрать минимальную платформу на контроллере Amega 328P-PU, чтобы ее можно было программировать на платформе Arduino IDE.
Контроллер Atmega 328 от компании ATMEL является сердцем платформ Arduino UNO , Arduino Nano, Arduino Pro Mini и ряда других. Данные платы вместе с многочисленными «шилдами» и модулями удобны для создания прототипов, но довольно громоздки и избыточны для готовых устройств.
Конечное устройство можно собрать на макетной или печатной плате. Для этого приобретаем контроллеры Atmega. Я покупал наплощадке aliexpress.com.
Цена на момент покупки была $20 за 10 контроллеров, 10 панелек и 10 кварцевых резонаторов на 16МГц. (Сейчас цена стала немного дороже)
Ссылка на товар на сайте aliexpress.com
Буковка «P» в названии микросхемы означает низкое энергопотребление, а PU-корпус DIP28, который удобно паять обычным паяльником.
Контроллеры пришли, как их теперь готовить?
Yеобходимо установить загрузчик в наши контроллеры. Для этого используем плату Arduino Uno и купленный заранее очень дешевый программатор USBasp. Чтобы не мудрить с проводками, лучше сразу взять еще и такой переходник на 6-ти пиновый разъем ICSP.
Качаем и ставим драйвер программатора.
Описываем параметры микроконтроллера в файле c:\Program Files (x86)\Arduino\hardware\arduino\boards.txt
Для себя я сделал две конфигурации — внутренний кварц 8МГц с загрузчиком optiboot и отключенной проверкой на напряжение питания (чтобы можно было запитать микросхему вольт так от трех)
atmega328_8_33.name=Atmega328 (3.3V, 8 MHz internal)
atmega328_8_33.upload.protocol=arduino
atmega328_8_33.upload.maximum_size=30720
#atmega328_8_33.upload.speed=19200atmega328_8_33.upload.speed=57600 atmega328_8_33.bootloader.low_fuses=0xC2
atmega328_8_33.bootloader.low_fuses=0xE2
atmega328_8_33.bootloader.high_fuses=0xDE
atmega328_8_33.bootloader.extended_fuses=0x07
atmega328_8_33.bootloader.path=optiboot
atmega328_8_33.bootloader.file=optiboot_atmega328.hex
atmega328_8_33.bootloader.unlock_bits=0x3F
atmega328_8_33.bootloader.lock_bits=0x0Fatmega328_8_33.build.mcu=atmega328p
atmega328_8_33.build.f_cpu=8000000L
atmega328_8_33.build.core=arduino
atmega328_8_33.build.variant=standard
и точная такая же с внешним кварцевым резонатором на 16МГц.
atmega328_16.name=Atmega328_16 (3.3V, 16 MHz external)
atmega328_16.upload.protocol=arduino
atmega328_16.upload.maximum_size=32256
atmega328_16.upload.speed=115200
atmega328_16.bootloader.low_fuses=0xff
atmega328_16.bootloader.high_fuses=0xde
atmega328_16.bootloader.extended_fuses=0x07
atmega328_16.bootloader.path=optiboot
atmega328_16.bootloader.file=optiboot_atmega328.hex
atmega328_16.bootloader.unlock_bits=0x3F
atmega328_16.bootloader.lock_bits=0x0F
atmega328_16.build.mcu=atmega328p
atmega328_16.build.f_cpu=16000000L
atmega328_16.build.core=arduino
atmega328_16.build.variant=standard
Аккуратно вынимаем из панельки Arduino контроллер и ставим туда наш.
Запускам стандартную ArduinoIDE, выбираем в меню «Сервис->Программатор->USBasp», плату Atmega328 (3.3V, 8 MHz internal) или Atmega328_16 (3.3V, 16 MHz external) и нажимаем «Записать загрузчик». После окончания процесса загрузки мы получаем контроллер, в который можно уже в дальнейшем заливать программы через стандартный USB Ардуины.
В принципе, если вам не требуется низковольтное питание, можно не править фал board.txt, а пошить контроллер как Arduino Uno.
Дальнейшая работа с контроллером такая — либо шить его вставляя на плату Arduino Uno через стандартный USB порт этой платы. Прошив контроллер на работу с внутренним кварцем, можно сразу использовать его практически без всякой обвязки. Например, мигать светодиодом на 13-м порту, как на этой картинке.
Если же нужно постоянно использовать контроллер в своей плате, не переставляя его — то нужно собрать такую схему
и прошивать его через конвертер USB-RS232.
Контроллер с внешним кварцем работает быстрее и гораздо стабильнее.
Где это уже работает?
Контроллер управления вентилятором в ванной комнате
Контроллер управления светодиодной люстрой
А как же мозг не вскипел все это реализовывать?
Ну конечно же был помощник
Полезные ссылки к данной статье:
со своего сайта.
ATMEGA328P-PU как замена Arduino
Раз уж Arduino стал практически мейнстримом, напишу обзор про микроконтроллеры ATMEGA328Данный микроконтроллер является сердцем Arduino Uno, Nano, Pro Mini и ряда других плат.
Но Arduino — это слишком просто. Купил, подключил, загрузил программу и вот уже гордо мигает светодиод на плате. Мы же легких путей не ищем и
Итак зачем все это нужно?
Ну во первых, это экономия в деньгах (Правда с ценами на Pro Mini очень сомнительная)
Во вторых, экономия места
В третьих, микросхемы без всяких преобразователей и светодиодов очень экономичны, что немаловажно в проектах с батарейным питанием.
В четвертых, проекты на Arduino весьма неопрятны из за мотка проводов вокруг платы. Микроконтроллеры же вполне можно паять на макетках или нормальных печатных платах.
Ну и в пятых, это ведь интересно и познавательно!
Заказал я данные микросхемы на Алиэксперсс. Лот состоит из 10 микроконтроллеров, 10 панелек для них, и 10 кварцевых резонаторов на 16МГц. Сейчас лот подорожал до $35 и купить за адекватную цену Atmegу можно разве что на Таобао.
Заказ шел целых 97 дней. Трек быстро отозвался в Китае и завис, не дойдя до России. Я успел пообщаться с продавцом, открыть спор и выиграть его, когда нежданно посылка нарисовалась в Москве. Деньги я вернул продавцу на PayPal, видимо у него где-то есть еще и магазин.
Итак все довольны — продавец получил заслуженную прибыль, а я долгожданный товар.
Подробное описание ATMEGA328 можно посмотреть на сайте atmel.com.
Буковка «P» в названии означает низкое энергопотребление, а PU-корпус DIP28, который удобно паять обычным паяльником.
Сам товар:
Контроллер с панелькой и кварцем
Как это все готовить?
Для программирования взят очень дешевый программатор USBasp за 3.14 (Пи?) баксов.
Для простоты, используем ICSP разъем стандартной Arduino UNO
В панельку Arduino вставляем наш микроконтроллер.
Далее качаем и устанавливаем драйвер для программатора. Запускам стандартную ArduinoIDE, выбираем в меню «Сервис->Программатор->USBasp», плату ArduinoUNO и нажимаем «Записать загрузчик». После окончания процесса загрузки мы получаем контроллер, такой же как и в UNO, в который можно уже в дальнейшем заливать программы через стандартный USB Ардуины.
Далее мне захотелось использовать встроенный кварцевый резонатор на 8МГц, чтобы иметь минимум деталей на плате.
Открываем файл с описанием микроконтроллера c:\Program Files (x86)\Arduino\hardware\arduino\boards.txt
Копируем блок с Uno и правим в нм Фьюзы. Это специальные биты для настроки контроллера. Прочитать про них можно здесь. Сконфигурировать при помощи онлайн-калькулятора. Загрузив в калькулятор значения от UNO я устанавливаю стандартное значение с встроенным кварцем на 8МГц.
Затем заменяю значение в файле с описанием плат и получаю такое описание:
tmega328_8.name=Atmega328 (5V, 8 MHz internal)
atmega328_8.upload.protocol=arduino
atmega328_8.upload.maximum_size=30720
atmega328_8.upload.speed=57600
atmega328_8.bootloader.low_fuses=0xE2
atmega328_8.bootloader.high_fuses=0xDE
atmega328_8.bootloader.extended_fuses=0x05
atmega328_8.bootloader.path=optiboot
atmega328_8.bootloader.file=optiboot_atmega328.hex
atmega328_8.bootloader.unlock_bits=0x3F
atmega328_8.bootloader.lock_bits=0x0F
atmega328_8.build.mcu=atmega328p
atmega328_8.build.f_cpu=8000000L
atmega328_8.build.core=arduino
atmega328_8.build.variant=standard
Затем в среде Arduino выбираю свой микроконтроллер и снова прошиваю загрузчик.
Все, я получил микроконтроллер, в который можно заливать скетчи на Arduino UNO плате, а затем использовать его без внешнего кварца.
Можно не прошивать контроллеру загрузчик, но тогда заливать в него программы всегда придется через программатор.
Чтобы не соединять самому 10пинвый разъем на USBasp к 6-ти пиновому ICSP на Arduino заказал такой переходник
Потом подумал, и заказал такой переходник для программатора, позволяющий обходится без Arduino Uno. Так что надеюсь, следующие микросхемы буду шить с большим комфортом.
Рекомендую ли я данные микроконтроллеры — скорее нет. При цене на Arduino Pro Micro — $2.88 это не особенно целесообразно. Сейчас я бы купил Atmega8 стоимостью около 1$ или Atiny, для проектов, где не нужно возможности Atmega328.
Где я все это планирую применять?
Хочу сделать сенсорные беспроводные выключатели света, вентиляторов и др. устройств, причем разместить их прямо в корпусах выключателей.
В люстрах, для получения радиокоманд от этих выключателей, а также для диммирования.
В миниатюрном погодном датчике на аккумуляторе за окном.
В контроллере управления вентилятором на кухне и в ванной.
Да мало ли сколько еще «нужных и полезных» устройств можно сделать?
А как же мозг не вскипел все это реализовывать?
Ну конечно же был помощник
Все статьи мои статьи можно найти в моем блоге samopal.pro