Програмування мікроконтролерів AVR ATtiny на Arduino IDE

Часто можна чути відгуки Arduino, що це дорого, неефективно, профанація ідеї і т.п. Якщо замислитися, то виявиться, що ця критика багато в чому справедлива. Одним Arduino ситий не будеш. Якщо мені потрібний мікроконтролер для чогось простого, наприклад: дисплей і пара кнопок, то використання для такої тривіальної задачі Arduino дійсно можна порівняти із забиванням цвяхів електронним мікроскопом. Але якщо відкинути емоції та подумати, що найцінніше в Arduino-проектах? На мій погляд, це колосальний обсяг відкритого коду, написаного під різні проекти. Називаючи речі своїми іменами, я не хочу писати з нуля програму для роботи мікроконтролера з дисплеєм, хочу використовувати вже готову бібліотеку, яку я використовував для Arduino. І не тому що мені "слабко", а тому, що я не бачу сенсу у винаході ще одного велосипеда.

Про портування проектів Arduino для "молодшого" сімейства мікроконтролерів AVR ATtiny йтиметься у цьому пості.

З літератути рекомендую почитати книгу:Андрій Євстифєєв "Мікроконтролери AVR сімейства Tiny"

    • Що програмуватимемо?
  1. Проект дозволяє задіяти мікроконтролери ATtiny84 (84/44/24), ATtiny85 (85/45/25) та ATtiny2313 (4313).
  2. ATtiny84/44/24 це 14-pin мікроконтролери з розміром флеш-пам'яті під прошивку 8/4/2 Кбайта відповідно.
  3. ATtiny85/45/25 - це те саме, але на 8-pin. ATtiny2313/4313 - Виділяється із загального ряду будучи по суті ревізією AVR Classic AT90s2313. На борту є I2C і UART, 20-pin, 2/4 Кбайта під прошивку. Смачна штучка.

Arduino використовує старше сімейство мікроконтролерів ATmega. Портуючи програми на ATtiny доведеться відмовитися від деяких плюшок. Що ми втрачаємо крім меншої пам'яті та меншогокількості ніг? Відмовитися доведеться від UART та I2C інтерфейсів (ATtiny2313 це по суті не зовсім ATtiny). Якщо вас це не лякає, то йдемо далі.

Тут, мабуть, одразу слід пояснити. oscillator – генератор тактової частоти. Якщо ви придбали мікроконтролер і ще не встигли змінити fuse-біти, то генератор повинен бути вбудованим і працювати на частоті 1MГц. Що буде, якщо помилишся із частотою? Працюватиме, але або повільніше або швидше.

  • Програматор. Тут усе просто. Підключіть Arduino до комп'ютера, запустіть Arduino IDE та запишіть програму з прикладів: меню -> Файл-gt; Приклади-ArduinoISP. Програматор готовий.
  • Складання схеми.Для прошивки через ISP інтерфейс на кожному мікроконтролері є чотири контакти MOSI, MISO, SCK, RESET. ISP-програматор дозволяє перепрошити чіп вже впаяний у схему. Він і називається In-System Programming внутрисхемный программатор. У зв'язку з цим контакти MOSI, MISO, SCK за сумісництвом мають функції тих чи інших цифрових/аналогових висновків. Розташування контактів Вашого мікроконтролера можна переглянути поданих на офіційному сайті.
  • У мене під рукою опинився ATtiny45

    Arduino