Програмування мікроконтролерів AVR ATtiny на Arduino IDE
Часто можна чути відгуки Arduino, що це дорого, неефективно, профанація ідеї і т.п. Якщо замислитися, то виявиться, що ця критика багато в чому справедлива. Одним Arduino ситий не будеш. Якщо мені потрібний мікроконтролер для чогось простого, наприклад: дисплей і пара кнопок, то використання для такої тривіальної задачі Arduino дійсно можна порівняти із забиванням цвяхів електронним мікроскопом. Але якщо відкинути емоції та подумати, що найцінніше в Arduino-проектах? На мій погляд, це колосальний обсяг відкритого коду, написаного під різні проекти. Називаючи речі своїми іменами, я не хочу писати з нуля програму для роботи мікроконтролера з дисплеєм, хочу використовувати вже готову бібліотеку, яку я використовував для Arduino. І не тому що мені "слабко", а тому, що я не бачу сенсу у винаході ще одного велосипеда.
Про портування проектів Arduino для "молодшого" сімейства мікроконтролерів AVR ATtiny йтиметься у цьому пості.
З літератути рекомендую почитати книгу:Андрій Євстифєєв "Мікроконтролери AVR сімейства Tiny"
-
Що програмуватимемо?
- Проект дозволяє задіяти мікроконтролери ATtiny84 (84/44/24), ATtiny85 (85/45/25) та ATtiny2313 (4313).
- ATtiny84/44/24 це 14-pin мікроконтролери з розміром флеш-пам'яті під прошивку 8/4/2 Кбайта відповідно.
- 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Гц. Що буде, якщо помилишся із частотою? Працюватиме, але або повільніше або швидше.
У мене під рукою опинився ATtiny45
