ATTINY13 - 8 битный микроконтроллер

Attiny13 - крупным планом

ATtiny13 дешевый 8-битный микроконтроллер AVR

Микроконтроллер ATtiny13 вид с верху
Микроконтроллер ATtiny13 вид с верху

ATtiny13  8-битный дешевый микроконтроллер  работает на частоте 20МГц и снабжен Flash на 1КБ. Наиболее популярный вариант ATtiny13A, и ATtiny13A-SSU. Отличается хорошей документацией, дешевизной и низким энергопотреблением и питанием от батарейки 1,5v. 

Процессорное ядро

Ядро микроконтроллеров ATtiny13, ATtiny13A и ATtiny13A-SSU работает на частоте 20 МГц, это значит что одна инструкция процессора выполняется за 50 наносекунд. Много это или мало? Для сравнения в одной за одну секунду может быть выполнен 1 миллиард операций.


Память микроконтроллера

Flash память

Attiny13A имеет 1 Килобайт встроенной памяти что равняется 1024 Байтам. В каждом байте может хранится число от 0 до 255 или от -128 до 128 байт. Кроме чисел в памяти Attiny13 хранятся команды и таблица прерываний. В общем доступно чуть меньше 1000 Байт памяти на хранение инструкций и данных.

Attiny13 вид снизу
Attiny13 вид снизу

Память attiny13 выдерживает 10000 циклов записи что хватает для постоянных обновлений прошивки во время разработки устройства и для хранения настроек ее использовать нельзя.

EEPROM память

В EEPROM память Attiny13 можно записать 64 байта. Этого хватит чтобы хранить таблицу чисел от 0 до 255 в количестве 64 значений.

Память EEPROM используется для хранения настроек и которая выдерживает большое количество циклов перезаписи.

Регистры процессора

В процессе выполнения программы все данные из переменных перед выполнением записываются в оперативную память, в микроконтроллере эти данные хранятся в регистрах. ATtiny13 имеет 32 регистра длинной в 8 бит каждый. То есть в них можно хранить 32 числа от 0 до 255.

GPIO цифровые порты ввода-вывода

ATTINY13 пины GPIO
ATTINY13 пины GPIO

Сколько ножек у ATtiny13

ATtiny13A  имеет 8 ножек, не все из них можно использовать, а некоторые стоит использовать с осторожностью, так две из них ножки на которые подается питание 4 pin GND и 8 pin VCC.

Таблица 1 - Attiny13 pinout для GPIO

№ ножки П/П Название ножки GPIO
1 PB5
2 PB3
3 PB4
5 PB0
6 PB1
7 PB2

Сколько ножек GPIO можно использовать

Из 8 ножек Attiny13 можно использовать 6 ножек для GPIO

Сколько портов имеет ATtiny13

Всего в ATtiny13 один порт B (PB) который использует 6 ножек GPIO

Периферия микроконтроллера

Периферия микроконтроллера это отдельные аналоговые блоки, и аппаратно реализованные различные протоколы такие. К периферии относится аналого-цифровые преобразователи, протоколы SPI, компараторы.

 Аналогово-цифровой преобразователь (АЦП)

ATTINY13 пины adc
ATTINY13 пины adc

На борту Attiny13 используется 4 канала АЦП каждый из них работает с точностью 10 бит. Это значит что аналоговый сигнал от 0 до 5 Вольт может быть разбито на 1024 значений с шагом 0.005 Вольт (5 Милливольт) на один шаг.

Таблица 2 - Attiny13 pinout для ADC(АЦП)

№ ножки П/П Название ножки ADC
1 ADC0
2 ADC3
3 ADC2
7 ADC1

Аналоговый компаратор

К сожалению в микроконтроллере доступен всего один компаратор, который не может работать вместе с АЦП. Придется выбрать что-то одно.

ШИМ (PWD) - каналы

Так же не обладает разнообразием и количество ШИМ  каналов,  в ATtiny13 всего два ШИМ канала. ШИМ канал позволяет задать непрерывное переключение сигнала на ножке с 0 на 1 при этом не задействовав ядро.

Таймер/счетчик

Таймер используется для вызова прерываний, грубо говоря может быть использован чтобы например раз в секунду зажигать светодиод при этом не прерывая работы основной программы.

В Attiny13 реализован один 8 - битный таймер может увеличиваться от 0 до 255 и далее сбрасывается в 0 при этом вызвав прерывание.

SPI последовательный переферийниый интерфейс

ATTINY13 пины SPI
ATTINY13 пины SPI

В ATtiny13 реализован один интерфейс SPI через который микроконтроллер может прошиваться и общаться с внешней переферией. Протокол использует 4 ноги микроконтроллера.

Таблица 3 - Attiny13 pinout для SPI

№ ножки П/П Название ножки SPI
5 MOSI
6 MISO
7 SCK

Чем прошить ATtiny13, ATtiny13A и ATtiny13A-SSU

Attiny13 прошивается через программатор USBasp, USBaps - неправильное название. Для прошивки используется arduino ide или набор программ GCC для прошивки ассемблерного кода. Прошивка пишется и передается по SPI протоколу.

Распиновка ATtiny13, ATtiny13A, ATtiny13A-SSU

Хорошая распиновка представлена на рисунке ниже, включает в себя pinout для arduino, adc, pb, pcint...

Attiny13 pinout (распиновка)

UPD 25.11.2023

На самом деле верхняя распиновка плохая после тестирования. Например XTAL нет в ATtiny13. Нужно самому рисовать.

UPD 26.11.2023

Нашел лучшую распиновку. Забейте на верхнюю.

Attiny13 pinout распиновка

Заключение. Стоит ли изучать ATtiny13?

Изучать ATtiny13 в 2024 и 2025 году однозначно стоит для развития понимания микроконтроллерной архитектуры, так как микроконтроллер имеет ограниченный набор команд который легко изучить, и которые используются в других микроконтроллерах таких как STM32, ESP32 и т.д.