Реверс-инжиниринг микроконтроллера Atmel Atmega328p

Микроконтроллер ( англ. Micro Controller Unit, MCU)-микросхема, на которой сочетается функции процессора и содержит ОЗУ и ПЗУ на одной системе на чипе. По сути, это однокристальный процессор, на котором размещены все внешние устройства.
Постоянное запоминающее устройство (ПЗУ) — энергонезависимая память, используется для хранения различной информации.
Оперативная память (англ. Random Access Memory, RAM (ОЗУ) —энергозависимая память, в которой во время работы компьютера хранится информация.
Существует несколько разновидностей ПЗУ, предназначенных для различных целей:
ROM — (Read-Only Memory, постоянное запоминающее устройство), к примеру, масочное ПЗУ, изготавливается фабричным методом. В дальнейшем нет возможности изменить записанные данные. ROM используется в микроконтроллерах для хранения кода, а также для других целей.
PROM — (Programmable Read-Only Memory, программируемое ПЗУ (ППЗУ)) — ПЗУ, однократно программируемое пользователем.
EPROM — (Erasable Programmable Read-Only Memory, перепрограммируемое ПЗУ (ПППЗУ)). Например, содержимое микросхемы К573РФ1 стиралось при помощи ультрафиолетовой лампы. Для прохождения ультрафиолетовых лучей к кристаллу в корпусе микросхемы было предусмотрено окошко с кварцевым стеклом.
EEPROM — (Electrically Erasable Programmable Read-Only Memory, электрически стираемое перепрограммируемое ПЗУ). Память такого типа может стираться и заполняться данными несколько десятков тысяч раз. Используется в твердотельных накопителях, микроконтроллерах, SPD. Из недостатков – долгое время стирания. Одной из разновидностей EEPROM является флеш-память (Flash Memory).
Flash - в переводе с английского «вспышка». Стирание происходит сразу для большого блока ячеек, что позволяет снизить время записи. Иногда выступает в качестве синонима для EEPROM.

Кроме этого, в составе микроконтроллера чаще всего находятся порты ввода/вывода, таймеры, АЦП, последовательные и параллельные интерфейсы. В некоторых даже можно заметить Wi-Fi-/Bluetooth-модуль и даже поддержку NFC.
Первый патент на микроконтроллер был выдан в 1971 году компании Texas Instruments. Инженеры этой компании предложили размещать на кристалле не только процессор, но и память с устройствами ввода/вывода.

Микроконтроллер Atmel Atmega328p
Параметр | Значение |
Тип процессора | 8-битный AVR |
Флэш-память | 32 КБ |
SRAM | 2 КБ |
EEPROM | 1 КБ |
Количество контактов | 28 или 32 контакта: |
Максимальная рабочая частота | 20 МГц |
Внешние прерывания | 2 |
Интерфейс USB | - |
Технические характеристики
8-разрядный микроконтроллер Atmel AVR на базе RISC сочетает в себе 32 КБ флэш- памяти ISP с возможностями чтения во время записи, 1 КБ EEPROM , 2 КБ SRAM , 23 линии ввода-вывода общего назначения, 32 рабочих регистра общего назначения , три гибких таймера / счетчики с режимами сравнения, внутренними и внешними прерываниями , последовательным программируемым USART , байтовым 2-проводным последовательным интерфейсом, последовательным портом SPI , 6-канальным 10-битным аналого - цифровым преобразователем (8 каналов в пакетах TQFP и QFN / MLF ) , программируемый сторожевой таймер с внутренним генератором и пять программно выбираемых режимов энергосбережения. Устройство работает в диапазоне 1,8-5,5 вольт. Пропускная способность устройства приближается к 1 MIPS на МГц.

Микроконтроллер состоит из нескольких вычислительных блоков:
Арифметико-логическое устройство (АЛУ) (англ. arithmetic logic unit, ALU) — блок процессора, который под управлением устройства управления служит для выполнения арифметических и логических преобразований над данными.
Блок управления процессором (УУ) (control unit, CU) — блок, устройство, компонент аппаратного обеспечения компьютеров. Представляет собой конечный дискретный автомат. Структурно устройство управления состоит из: дешифратора команд (операций), регистра команд, узла формирования (вычисления) текущего исполнительного адреса, счётчика команд. УУ современных процессоров обычно реализуются в виде микропрограммного автомата и в этом случае УУ включает в себя ПЗУ микрокоманд. УУ предназначено для формирования сигналов управления для всех блоков машины.
Сумматорами называют логические устройства, выполняющие арифметические суммирование кодов двоичного числа

Микроконтроллер Atmega328P и Arduino
В классической линейке устройств Arduino в основном применяются микроконтроллеры Atmel AVR. Следующие МК можно встретить на указанных распространённых платах:
ATmega2560 (16 МГц, 256к Flash, 8к RAM, 54 порта, из них до 15 с ШИМ и 16 АЦП). Платы Mega.
ATmega32U4 (16 МГц, 32к Flash, 2,5к RAM, 20 портов, из них до 7 с ШИМ и 12 АЦП). Платы Leonardo, Micro, Yun.
ATmega328 (16 МГц, 32к Flash, 2к RAM, 14 портов, из них до 6 с ШИМ и 8 АЦП). Платы UnoR3, Mini, NanoR2, Pro, Pro mini, различные варианты плат uno и nano, такие как Wifi Uno и nano + nrf42l01
ATtiny85 (20Мгц, 8к Flash, 512б RAM, 6 портов, из них 4 ШИМ и 4 аналоговых). Платы Digispark, также часто применяются вне плат.
ATmega168(16Мгц, 16к Flash, 1к RAM, порты и распиновка аналогично ATmega328) Платы Uno R1, Uno R2, Pro mini, NanoR1.
