Микроконтроллеры ATtiny фирмы Atmel не поддерживаются средой Arduino из коробки. По крайней мере, так обстоят дела в Arduino v. 1.0.6. Но, добавить поддержку микроконтроллеров ATtiny в среду Arduino не сложно.

Скачайте файлы поддержки ATtiny для Arduino. Распакуйте архив Arduino1.zip. Из этого архива перенесите папку attiny в папку «hardware» Arduino IDE.

В списке поддерживаемых устройств дополнительно появится следующий набор:

  • ATtiny45 (internal 1 MHz clock)
  • ATtiny45 (internal 8 MHz clock)
  • ATtiny45 (external 20 MHz clock)
  • ATtiny85 (internal 1 MHz clock)
  • ATtiny85 (internal 8 MHz clock)
  • ATtiny85 (external 20 MHz clock)
  • ATtiny44 (internal 1 MHz clock)
  • ATtiny44 (internal 8 MHz clock)
  • ATtiny44 (external 20 MHz clock)
  • ATtiny84 (internal 1 MHz clock)
  • ATtiny84 (internal 8 MHz clock)
  • ATtiny84 (external 20 MHz clock)
  • ATtiny13 (internal 9.6 MHz clock)

Еще одна библиотека поддержки микроконтроллеров ATtiny в Arduino. Из этого архива перенесите папку tiny в папку hardware Arduino. В папке hardware/tiny сделайте копию файла Prospective Boards.txt и переименуйте копию в boards.txt. Теперь список поддерживаемых Arduino устройств пополнится следующими:

  • ATtiny84 @ 16 MHz (external crystal; 4.3 V BOD)
  • ATtiny84 @ 8 MHz (internal oscillator; BOD disabled)
  • ATtiny84 @ 1 MHz (internal oscillator; BOD disabled)
  • ATtiny44 @ 8 MHz (internal oscillator; BOD disabled)
  • ATtiny44 @ 1 MHz (internal oscillator; BOD disabled)
  • ATtiny24 @ 16 MHz (external crystal; BOD disabled)
  • ATtiny85 @ 16 MHz (external crystal; 4.3 V BOD)
  • ATtiny85 @ 16 MHz (internal PLL; 4.3 V BOD)
  • ATtiny85 @ 8 MHz (internal oscillator; BOD disabled)
  • ATtiny85 @ 1 MHz (internal oscillator; BOD disabled)
  • ATtiny45 @ 8 MHz
  • ATtiny45 @ 1 MHz
  • ATtiny85 @ 128 KHz (watchdog oscillator; 1.8 V BOD)
  • ATtiny25 @ 8 MHz
  • ATtiny25 @ 1 MHz
  • ATtiny4313 @ 8 MHz
  • ATtiny4313 @ 1 MHz
  • ATtiny2313 @ 8 MHz
  • ATtiny2313 @ 1 MHz
  • Optiboot ATtiny85 @ 8 MHz (internal osc)

Так же, библиотеки поддержки не стандартных для Arduino микроконтроллеров можно устанавливать в папку со скетчами, предварительно создав в ней папку hardware. Это может быть полезно если у Вас нет доступа к системной папке в которую инсталлирован Arduino.

Откройте файл hardware/arduino/cores/arduino/wiring.c найдите в нем строку 44 и добавьте в конце строки:

 || defined(__AVR_ATtiny13__)

Так, чтобы получилось:

#if defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__) || defined(__AVR_ATtiny13__)

Чтобы при программировании не появлялось предупреждение "avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny13", откройте файл hardware/tools/avrdude.conf и в секцию для ATtiny13 добавьте две строки:

pagel = 0x01;
bs2 = 0x01;

Например, так:

#------------------------------------------------------------
# ATtiny13
#------------------------------------------------------------

part
    id                  = "t13";
    desc                = "ATtiny13";
     has_debugwire = yes;
     flash_instr   = 0xB4, 0x0E, 0x1E;
     eeprom_instr  = 0xBB, 0xFE, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D,
	             0xBC, 0x0E, 0xB4, 0x0E, 0xBA, 0x0D, 0xBB, 0xBC,
	             0x99, 0xE1, 0xBB, 0xAC;
    stk500_devcode      = 0x14;
    signature           = 0x1e 0x90 0x07;
    pagel = 0x01;
    bs2 = 0x01;
    chip_erase_delay    = 4000;

И в секцию для ATtiny45 добавьте эти же две строки:

#------------------------------------------------------------
# ATtiny45
#------------------------------------------------------------

part
     id            = "t45";
     desc          = "ATtiny45";
     pagel = 0x01;
     bs2 = 0x01;
     has_debugwire = yes;

И в секцию для ATtiny84 добавьте эти же две строки:

#------------------------------------------------------------
# ATtiny84
#------------------------------------------------------------

part
     id            = "t84";
     desc          = "ATtiny84";
     pagel = 0x01;
     bs2 = 0x01;
     has_debugwire = yes;