Обзор 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);
}
- Загрузка скетча (Скетч -> Загрузить через программатор).