Мікроконтролер Atmega8 є найпопулярнішими представниками свого сімейства. Багато в чому вони цим зобов'язані, з одного боку, простоті роботи і зрозумілої структури, з іншого - досить широким функціональним можливостям. У статті буде розглянуто програмування Atmega8 для початківців.
Загальна інформація
Мікроконтролери зустрічаються скрізь. Їх можна знайти в холодильниках, пральних машинках, телефонах, заводських верстатах і великій кількості інших технічних пристроїв. Мікроконтролери бувають як простими, так і надзвичайно складними. Останні пропонують значно більше можливостей і функціоналу. Але розбиратися відразу в складній техніці не вийде. Спочатку необхідно освоїти щось просте. І в якості зразка буде взято Atmega8. Програмування на ньому не є складним завдяки грамотній архітектурі і дружньому інтерфейсу. До того ж він є володарем достатньої продуктивності, щоб використовувати в більшості аматорських пристроїв. Більше того, вони застосовуються навіть в промисловості. У випадку з Atmega8 програмування передбачає знання таких мов як AVR (C/Assembler). З чого ж почати? Освоєння цієї технології можливо трьома шляхами. І кожен вибирає сам, з чого почати роботу з Atmega8:
Програмування через Arduino. Покупка готового пристрою. Самостійна збірка мікроконтролера. Нами буде розглянуто перший і третій пункт.
Arduino
Це зручна платформа, виконана у вигляді електронного конструктора, що підходить для швидкого створення різних пристроїв. У платі вже є все необхідне у вигляді самого мікроконтролера, його обв'язки і програматора. Пішовши цим шляхом, людина отримає наступні переваги: Низький поріг вимог. Не потрібно володіти спеціальними навичками і вміннями для розробки технічних пристроїв. Широкий спектр елементів буде доступний для підключення без додаткової підготовки. Швидкий початок розробки. З Arduino можна відразу переходити до створення пристроїв. Наявність великої кількості навчальних матеріалів та прикладів реалізацій різних конструкцій. Але є і певні мінуси. Так, Arduino програмування Atmega8 не дозволяє глибше поринути у світ мікроконтролера і розібратися в багатьох корисних аспектах. Крім цього, доведеться вивчити мову програмування, що відрізняється від застосовуваних AVR (C/Assembler). І ще: Arduino має досить вузьку лінійку моделей. Тому рано чи пізно виникне необхідність використовувати мікроконтролер, що не використовується в платах. А в цілому це непоганий варіант роботи з Atmega8. Програмування через Arduino дозволить отримати впевнений старт у світі електроніки. І у людини навряд чи опустяться руки із-за невдач і проблем.
Самостійна збірка
Завдяки доброзичливості конструкції їх можна зробити самими. Адже для цього потрібні дешеві, доступні і прості комплектуючі. Це дозволить добре вивчити пристрій мікроконтролера Atmega8 програмування якого після складання буде здаватися більш легким. Також при необхідності можна самостійно підібрати інші комплектуючі під конкретну задачу. Правда, тут є і певний мінус – складність. Самостійно зібрати мікроконтролер, коли немає потрібних знань і навичок, нелегко. Цей варіант ми і розглянемо.
Що ж потрібно для зборки?
Спочатку необхідно дістати сам Atmega8. Програмування мікроконтролера без нього самого, знаєте, неможливо. Він обійдеться в кілька сотень рублів – забезпечуючи при цьому гідний функціонал. Також стоїть питання про те, як буде здійснюватися програмування Atmega8. USBAsp – це досить гарний пристрій, що зарекомендувало себе з кращого боку. Але можна використовувати і будь-який інший програматор. Або ж зібрати його самостійно. Але в такому випадку існує ризик, що при неякісному створенні він перетворить мікроконтроллер непрацюючий шматочок пластику і заліза. Також не завадить наявність макетної плати і перемичок. Вони не обов'язкові, але дозволять заощадити нерви і час. І наостанок – потрібен джерело живлення 5В.
Програмування Atmega8 для початківців на прикладі
Давайте розглянемо, як в загальних рисах здійснюється створення якогось пристрою. Отже, припустимо, що у нас є мікроконтролер, світлодіод, резистор, програматор, з'єднувальні дроти, макетна плата і джерело живлення. Перший крок – це написання прошивки. Під нею розуміють набір команд для мікроконтролера, що представлений в якості кінцевого файлу, що має спеціальний формат. В ньому необхідно прописати підключення всіх елементів, а також взаємодія з ними. Після цього можна приступати до складання схеми. На ніжку VCC слід подати харчування. До будь-якої іншої, призначеної для роботи з пристроями і елементами ,підключається спочатку резистор, а потім світлодіод. При цьому потужність першого залежить від потреб у харчуванні другого. Можна орієнтуватися за такою формулою: R=(Up-Ups)/Is. Тут p – це харчування, а s – світлодіод. Давайте уявимо, що у нас є світлодіод, що споживає 2В і вимагає струм живлення на рівні 10 мА, переводимо в більш зручний для математичних операцій вигляд і отримуємо 001 А. Тоді формула буде виглядати наступним чином: R=(5В-2В)/001 А=3В/001 А=300 Ом. Але на практиці часто виявляється неможливим підібрати ідеальний елемент. Тому береться найбільш підходящий. Але потрібно використовувати резистор з опором вище значення, отриманого математичним шляхом. Завдяки такому підходу ми продовжимо термін його служби.
А що ж далі?
Отже, у нас є невелика схема. Тепер залишилося підключити до мікроконтролера програматор і записати в його пам'ять прошивку, що була створена. Тут є один момент! Вибудовуючи схему, необхідно її створювати таким чином, щоб мікроконтроллер можна було прошивати без розпаювання. Це дозволить зберегти час, нерви і продовжить термін служби елементів. В тому числі і Atmega8. Внутрішньосхемного програмування, потрібно відзначити, вимагає знань і умінь. Але воно ж дозволяє створювати більш досконалі конструкції. Адже часто буває, що під час розпаювання елементи пошкоджуються. Після цього схема готова. Можна подавати напругу.
Важливі моменти
Хочеться дати новачкам корисні поради про програмування Atmega8. Вбудовані змінні і функції не міняти! Прошивати пристрій створеною програмою бажано після її перевірки на відсутність «вічних циклів», що заблокують будь-яке інше втручання, і з використанням хорошого передавача. У разі використання саморобки для цих цілей слід бути морально готовим до виходу мікроконтролера з ладу. Коли будете прошивати пристрій за допомогою програматора, то слід з'єднувати відповідні виходи VCC, GND, SCK, MOSI, RESET, MISO. І не порушувати техніку безпеки! Якщо технічними характеристиками передбачено, що повинно бути харчування у 5В, то потрібно дотримуватися саме такої напруги. Навіть використання елементів на 6В може негативно позначитись на працездатності мікроконтролера і скоротити термін його служби. Звичайно, батареї на 5В мають певні розбіжності, але, як правило, там все в розумних межах. Приміром, максимальна напруга буде триматися на рівні 53 В.
Навчання та вдосконалення навичок
На щастя, Atmega8 є дуже популярним мікроконтролером. Тому знайти однодумців або ж просто знають і вміють людей не складе праці. Якщо немає бажання винаходити заново велосипед, а просто хочеться вирішити певну задачу, то можна пошукати потрібну схему на просторах світової мережі. До речі, невелика підказка: хоча в російськомовному сегменті робототехніка досить популярна, але, якщо немає відповіді, то його слід пошукати в англомовному – він містить на порядок більшу кількість інформації. Якщо є певні сумніви в якості наявних рекомендацій, то можна пошукати книги, де розглядається Atmega8. Благо, компанія-виробник бере до уваги популярність своїх розробок і забезпечує їх спеціалізованою літературою, де досвідчені люди розповідають, що і як, а також наводять приклади роботи пристрою.
Чи складно почати створювати щось своє?
Достатньо мати 500-2000 рублів і кілька вільних вечорів. Цього часу вистачить, щоб ознайомитися з архітектурою Atmega8. Після невеликої практики, можна буде спокійно створювати свої власні проекти, які виконують певні завдання. Приміром, роботизовану руку. Одного Atmega8 повинно вистачити, щоб передати основні моторні функції пальців і кисті. Звичайно, це досить складне завдання, але цілком посильне. В подальшому взагалі можна буде створювати складні речі, для яких знадобляться десятки мікроконтролерів. Але це все попереду, перед цим необхідно отримати хорошу школу практики на чомусь простому.