Отже ми вирішили освоювати AVR мікроконтролери. Що нам для цього потрібно. Так як МК - це комп'ютер, то він має апаратну частину (HARDware) і програмну (SOFTware). в цій статті поговоримо про апаратну частину, тобто що потрібно для початку експериментів з МК.
Найперше потрібен сам мікроконтролер. Вибір AVR дуже великий, але я вирішив почати з простішого ATTiny26. Чому так:
1. Невисока ціна (на сьогоднішній день ціна ATTiny26 в інтернет-магазинах складає 12...15грн, тобто 1,5-2$).
2. Його характеристики достатні для простих проектів, при цьому він має достатню кількість портів вводу-виводів (15 ліній).
3. Він містить усі основні периферійні пристрої, такі як АЦП, аналоговий компаратор, таймери, широтно-імпульсний модулятор, які необхідно освоїти для подальшої повноцінної роботи з МК.
4. При цьому він трошки простіший за МК серії ATMega в програмуванні - тут менша кількість керуючих регістрів і таке інше. Хоча після освоєння цього контролера розібратися з ATMega я думаю не буде важко.
Трошки докладніше про характеристики МК ATTiny26. Повну документацію про нього можна скачати тут: http://www.atmel.com/Images/doc1477.pdf. Правда вона на англійській мові. Також ДУЖЕ РЕКОМЕНДУЮ знайти книжку:
Евстифеев А.В. "Микроконтроллеры AVR семейства Tiny (2007) ".
Скачати можна ТУТ. В ній систематизована вся документація на мікроконтролери сімейства ATTiny при тому на російській мові. Дещо описане краще ніж у рідних даташитах, бо вони ж розраховані на профі :-).
Отже мікроконтроллер ATTiny26 має наступні параметри:
- Тактова частота - до 16 МГц (версія ATTiny26L зі зниженим споживанням енергії може мати обмеження до 8Мгц, це вказане в повному маркуванні МК, наприклад - ATTiny26L-8PU - тут 8-це і є максимальна тактова частота);
- 2 кілобайти пам'яті програм (FLASH). А чо так ма.... скажете ви. Повірте, для перших проектів цього буде достатньо.
- 128 байт оперативної пам'яті (SRAM). Знову мало? Нічого, є МК і без неї взагалі :-);
- 32 робочих регістрів загального призначення. Робочі регістри загального призначення (РРЗП) - це ячейки памяті, зі вмістом яких безпосередньо працює арифметико-логічний пристрій. Щоб виконати дію з числом, яке знаходиться в оперативній памяті його спочатку треба завантажити в РРЗП.
- 128 байт енергонезалежної пам'яті (EEPROM);
- 2 8-ми розрядних таймера, один з них з функцією ШИМ (Широтно-Імпульсний модулятор, PWM), причому є 2 виходи ШИМ;
- Аналоговий компаратор;
- АЦП, причому він може мати до 11 вхідних каналів, або до 8 диференційних вхідних каналів. Насправді АЦП за раз вимірює значення тільки на одному з каналів, але можна їх вимірювати почергово.
- Напруга живлення - від 4,5 до 5,5В для ATTiny26, від 2,7 до 5,5В для ATTiny26L.
- 16 програмованих ліній вводу/виводу. Вище я писав що їх 15, пізніше розкажу чому так.
- Корпус - або 20 виводний DIP, або 20 виводний SOIC, або 32 виводний QFN/MLF.
От тут дуже рекомендую купляти в DIP-20 корпусі.
Для інтегрування в готовий проект може бути зручним SOIC корпус, а для маньяків з паяльною станцією і QFN, але для експериментів ДІП рулить.
По контролеру все.
Далі з заліза нам треба буде придбати програматор. Програматор - це пристрій, який дозволить нам заливати в пам'ять МК програми, написані на ПК, тобто він служить таким собі перехідником між комп'ютером і нашим пристроєм на МК.
Раніше, коли небо було синіше, сонце яскравіше, а трава-зеленіша :-) на кожному комп'ютері були такі порти як паралельний LPT і послідовний COM (RS-232). При наявності операцыйної системи до WinXP включно, з програматором фактично не було проблем - його можна було спаяти з декількох резисторів/діодів, наприклад - Програматор Громова:
Да, тут мова іде про так звані ISP програматори (внутрісхемні), тобто вони дозволяють програмувати МК, вже впаяний у пристрій. От тут якраз і поясню чому не 16 ліній вводу-виводу а 15. Якщо подивитися на схему вище, то видно, що чіп (МК) підключається за допомогою 5 ліній:
1. RESET - при подачі лог.0, а потім лог.1 контролер починає виконувати програму спочатку. Також ресет відбувається при подачі живлення на МК. А от при програмуванні на цій лінії підтримується лог. 0, тоді контролер розуміє що треба записувати програму. Так от, однією з 16 ліній вводу-виводу в ATTiny26 є цей самий RESET. Так як лінії вводу/виводу є програмованими, то є спосіб відключити від неї RESET, і задіяти як порт вводу/виводу! Але після цього ми втрачаємо можливість перепрограмування МК внутрісхемним програматором!!! Саме тому я кажу що ліній 15, цю лінію задіяти інакшке як RESET ми не можемо.
2.MOSI - дані що передаються з програматора на контролер
3 MISO - дані з контролера в програматор (програматор дає зиогу не тільки записати а й зчитати вміст МК(правда не завжди, про це пізніше))
4 SCK - тактовий вхід, по імульсам на цьому вході відбувається сприйняття даних на MOSI та MISO
5 GND - земля.
Для програмування ISP програматором на МК повинне подаватися живлення!!!
Зараз у компах в основному присутні тільки USB порти, тому нам потрібен USB програматор. Їх є немала кількість, я зупинився на програматорі USBasp. Оригінальна версія описана ТУТ, я ж скористався варіантом від братів-китайців :-). І так, зустрічаємо:
Такий програматор коштує 57 грн тут: http://ims-ua.zapto.org/index.php?productID=4006
В комплект поставки входить:
1. Кульочок :-);
2. Сам програматор;
3. Шлейф з роз'ємами;
4. Інструкція формату А5 рздрукована на принтері :-);
5. Диск з програмним забезпеченням, який в мене не прочитався.
Дуже сподобалася техпідтримка магазину - написав в 21,00 в аську що диск не читається, мені зразу відповіли і прислали ссилку на архів з ПЗ.
Також варто зразу прикупити роз'єм для шлейфа, що ми будемо впаювати в наш пристрій:
На фото ще є розєм для подачі живлення, я собі купляв але це не обовязково.
І для наших експериментів також бажано придбати:наступне:
1. Кусочок макетної плати з отворами (крок 2,54мм) і пятачками. Я взяв 110х70мм. Якщо є безпайочна макетка (з контактними отворами) то теж гарно.
2. Піни папа/мама з кроком 2,54мм
4. 16 резисторів 0,25Вт 470...560 ом, один резистор на 0,25Вт 5,6....10к (у мене МЛТ на 0,5Вт, бо вони були, насправді такі конські резистори там не потрібні).
5. Два конденсатора 0,1 мкф (керамічні) і один 100 мкф х 16в електролітичний.
6. 5 діп-кнопок (я випаяв з плати від якогось принтера).
7. Світлодіод любого кольору.
8. Для подальших експериментів бажано купити штук 15 світлодіодів,
9. Якщо тробити на макетці з пайкою - провід МГТФ-0,12, 2 метри :-)
Ваяємо "Девборд"
Схема нашої макетной плати наведена нижче: Контролер вставляється в панелькуТут резистори на 510 ом - можуть бути від 470 до 560, резистор 8,2к - від 5,6 до 10к.
Роз'єм для шлейфа програматора ISP PRG показаний з боку підключення шлейфа!!!
Кнопки S1...S5 у мене розміщені як на схемі - 1 вверх, 2 вниз, 3 вправо, 4 вліво, 5 - окремо.
Я розпаював на макетці проводом МГТФ-0,12. Ось шо получилося:
І вид знизу:
Насправді тут є одна не дуже хороша штука - розєми портів PA0...PA7 і PB0...PB6 варто розмістити з кроком 5мм для полегшення експериментів з світлодіодами, у мене 2,54мм, так що два звичайних круглих світлодіода неможливо впхати поряд в порт, треба юзати або плоскі світлодіоди, або виносити їх на розємі (на верхньому фото якраз і бачимо розєм включений в порт.). І ще одна річ, яка може знадобитися для експериментів та і взагалі - шлейф з проводів (зручно зєднувати між собою плати і таке інше). Я взяв на 40 проводів, цілий метр:
По залізу, все, не забудьте прямі руки :-)....
В наступній статті напишу про програмне забезпечення, що необхідне для початку роботи з МК.
-
Немає коментарів:
Дописати коментар