четвер, 16 травня 2013 р.

Get Started! Part 1 - HARD



     Отже ми вирішили освоювати 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мм

3. Панелька DIP-20 для контролера, я купив купу різних:

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 проводів, цілий метр:

По залізу, все, не забудьте прямі руки :-)....
В наступній статті напишу про програмне забезпечення, що необхідне для початку роботи з МК.





Немає коментарів:

Дописати коментар