Делаем Arduino Nano из Attiny13 (13a)

Сделать Arduino Nano (Uno) из Attiny13 достаточно легко! Будем использовать загрузчик Urboot.

На основе: “github.com/MCUdude/MicroCore” и
“gameforstreet.ru/delaem-arduino-nano-iz-mikroshemy-atmega88-8-48-168-328/”

Нашёл у себя только микросхему Attiny13A PU.

Получившуюся Arduino прошивал скретчами из Arduino IDE – всё работает!

Прошивал Attiny13 по следующим фьюзам для Arduino (но можно прошить на стандартных фьюзах, а потом через Arduino IDE – прошить загрузчик – и фьюзы станут такими же как на картинке ниже):

Следующую прошивку – hex файл – при помощи программатора USBasp, также можно воспользоваться простейшим программатором “5 проводков”.
Скачать hex файл прошивки для Arduino на Attiny13:
– скачать в zip архиве.
– скачать в tar.gz архиве.
Выдернул hex файлы из папки “MicroCore-master/avr/bootloaders/urboot/watchdog_1_s/internal_oscillator/9600000_hz/57600_baud/swio_rxb0_txb1/no-led/” – где 9600000 ГЦ (частота по умолчанию у Атмега13), 57600 baud – скорость передачи по UART, swio_rxb0_txb1 (то есть RX на входе PB0, TX на входе PB1) и подпапки – no-led – то есть без светодиода.

Скачать папку icroCore-master:
– в zip архиве.

Схема соединения следующая:

Распиновка Attiny13 с Arduino:

Как загрузить загрузчик в Arduino IDE – аналогично моей предыдущей статье – “Делаем Arduino Nano из микросхемы Atmega88 (8/48/168/328)” – “gameforstreet.ru/delaem-arduino-nano-iz-mikroshemy-atmega88-8-48-168-328/”. Там же можно найти и подключение через UART с ch340 и программатор 5 проводков.

Примечание:
Фьюзы Attiny13 стандартные (по умолчанию):

Примечание как подключить внешний кварц к Attiny13 для UART:
“github.com/MCUdude/MicroCore”

У Arduino Attiny13 – 4 аналоговых контакта и 2 цифровых, для тестирования мигания светодиода – подключал его к одному из цифровых, вот код Скретча:

*
 *  Connect an LED using an Arduino PIUN.
 *
 *  For more guides and tutorials: https://www.thecircuitmaker.com
 */

// set up a variable to store the pin number that will turn on the LED light
int ledPin = 1;
void setup(){
  // configure the LED pin to behave as OUTPUT mode to send HIGH or LOW signals
  pinMode(ledPin, OUTPUT);
}
void loop()
{
   // turn on the LED
   digitalWrite(1, HIGH);
   // wait for 1 second
   delay(2000);
   // turn off the LED
   digitalWrite(1, LOW);
   // wait for one second
   delay(1000);
}

Мигание светодиода будет на 1 цифровом выходе, то есть на PB1.

Добавить комментарий