Обзор ATtiny13A

ATtiny13a - Microchip picoPower® 8-разрядный AVR® микроконтроллер на базе RISC-архитектуры имеет: 1 KB флэш-памяти ISP, 64 bytes EEPROM, 64 bytes SRAM, 32 bytes регистровый файл и 4-канальный 10-разрядный аналого-цифровой преобразователь. Устройство обеспечивает пропускную способность до 20 MIPS на частоте 20 МГц при работе 1,8-5,5 V.
Характеристики ATtiny13a

| Параметр | Значение | 
|---|---|
| Тип памяти | Flash | 
| Размер памяти (для записи программ) | 1 KB | 
| Скорость CPU | 20 MIPS/DMIPS (20 МГц) | 
| SRAM | 64 bytes | 
| EEPROM | 64 bytes | 
| ШИМ (PWM) контактов | 2 | 
| Таймеры | 1 x 8-bit | 
| Диапазон температур | -40 - 125 °C | 
| Диапазон рабочего напряжения | 1.8 - 5.5 V | 
| Цифровых контактов | 6 | 
| Аналоговых контактов | 4 | 
| SPI | 1 | 
| I2C | - | 
| UART | - | 
MIPS (Millions of Instructions Per Second) - миллион команд в секунду.
Схема микроконтроллера ATtiny13a

Прошивка ATtiny13a с помощью Arduino
ATtiny13a будем прошивать через SPI. Прошивка через UART невозможна из-за отсутствия UART в микроконтроллере.
Схема подключения Arduino к ATtiny13a (для прошивки)

| Arduino | ATtiny13a | 
|---|---|
| GND | GND | 
| 3.3 V | Vcc | 
| 13 | PB2 (SCK) | 
| 12 | PB1 (MISO) | 
| 11 | PB0 (MOSI) | 
| 10 | PB5 (RESET) | 
Дополнительно для прошивки ATtiny13a нужно добавить конденсатор на 10 мкФ. Более длинный (положительный) контакт конденсатора подключите к выводу RESET микроконтроллера, короткий (отрицательный) контакт конденсатора подключите к выводу GND.

Подготовка Arduino как ISP-программатора
- Подключить Arduino к ПК (далее будет использоваться Arduino Pro Mini);
- Запустить Arduino IDE;
- Загрузить ArduinoISP скетч (Файл -> Примеры -> 11.ArduinoISP -> ArduinoISP);
- Выбрать плату Arduino, ту которую используете (Инструменты -> Плата -> Arduino AVR Boards -> Arduino Pro Mini);
- Выбрать используемый порт (Инструменты -> Порт);
- Нажать в панели управления Arduino IDE кнопку "Загрузка";
- После успешной загрузки скетча, Arduino может использоваться как ISP-программатор.

Установка загрузчика в ATtiny13a
- Добавить поддержку ATtiny13a в Arduino IDE:
- Arduino -> Preferences... -> Дополнительные ссылки для менеджера плат -> Вставить https://mcudude.github.io/MicroCore/package_MCUdude_MicroCore_index.json
- Инструменты -> Плата -> Менеджер плат -> Ввести MicroCore-> Установить
- Выбрать плату ATtiny13a (Инструменты -> Плата -> MicroCore -> ATtiny13)
- Настроить плату:
- Инструменты -> BOD -> BOD 1.8V;
- Инструменты -> EEPROM -> EEPROM retained;
- Инструменты -> Clock -> 9.6 MHz internal osc.;
- Инструменты -> Расчет времени -> Micros disabled;
- Выбрать программатор (Инструменты -> Программатор -> Arduino as ISP (MicroCore));
- Записать загрузчик (Инструменты -> Записать загрузчик);
- В нижней части Arduino IDE появиться надпись "Запись загрузчика завершена".
Загрузка скетча в ATtiny13a
- Создайте новый скетч и скопируйте в него содержимое ниже;
- Выбрать плату ATtiny13a (и если нужно настроить ее);
- Выбрать программатор (Инструменты -> Программатор -> Arduino as ISP (MicroCore));
// Мигаем светодиодом на контакте PB3 у ATtiny13a
void setup() {
  pinMode(PB3, OUTPUT);
}
void loop() {
  digitalWrite(PB3, HIGH);
  delay(1000);
  digitalWrite(PB3, LOW);
  delay(1000);
}
- Загрузка скетча (Скетч -> Загрузить через программатор).
