- Архітектура та програми мікроконтролера PIC:
- Вибір мікроконтролера PIC для наших навчальних посібників:
- Вибір програмного забезпечення для наших підручників:
- Підготовка до обладнання:
У 1980 році Intel розробила перший мікроконтролер (8051) з Гарвардською архітектурою 8051, і з тих пір мікроконтролери принесли революцію в електроніці та вбудованій промисловості. І завдяки технологічному прогресу з часом ми маємо набагато ефективніші та малопотужні мікроконтролери, такі як AVR, PIC, ARM. Ці мікроконтролери більш спроможні та прості у використанні, маючи найновіші комунікаційні протоколи, такі як USB, I2C, SPI, CAN тощо. Навіть Arduino та Raspberry Pi повністю змінили перспективу щодо мікроконтролерів, і Raspberry Pi - це не просто мікроконтролер, комп'ютер всередині.
Це буде перша частина серії навчальних посібників, які ще мають надійти, які допоможуть вам у вивченні мікроконтролерів PIC. Якщо ви з рівня електроніки, і вам завжди хотілося почати з вивчення деяких мікроконтролерів та потрапити у світ кодування та побудови матеріалів, тоді ця серія навчальних посібників стане вашим першим кроком для початку.
Мікроконтролер PIC - це дуже зручний вибір для початку роботи з проектами мікроконтролера, оскільки він має чудові форуми підтримки і буде діяти як міцна база для побудови всіх ваших вдосконалених мікроконтролерів, яким ви ще не навчилися.
Ці навчальні посібники призначені для абсолютних та середніх учнів; ми планували розпочати з найпростіших проектів до передових. Ми не очікуємо жодних передумов від учнів, оскільки ми тут, щоб допомогти вам з будь-якого рівня. Кожен підручник матиме теоретичне пояснення та моделювання з подальшим практичним підручником. У цих підручниках не буде задіяно жодних плат розвитку, ми створимо власні схеми, використовуючи платформу perf. Тож підготуйтеся і щотижня приділяйте трохи часу, щоб покращити вас за допомогою мікроконтролерів.
Тепер давайте почнемо з простого вступу до мікроконтролерів PIC та деяких програмних налаштувань, які допоможуть нам розпочати наступний підручник. Перевірте відео в кінці для встановлення та налаштування MPLABX, XC8, Proteus та швидкого розпакування програміста PICkit 3.
Архітектура та програми мікроконтролера PIC:
Мікроконтролер PIC був представлений компанією Microchip Technologies в 1993 році. Спочатку ці PIC були розроблені як частина PDP (Програмований процесор обробки даних). Отже, PIC отримав свою назву як для контролера периферійного інтерфейсу. Пізніше Microchip розробив багато мікросхем серії PIC, які можна використовувати для будь-якого невеликого додатку, наприклад, для освітлення, до вдосконаленого.
Кожен мікроконтролер повинен бути побудований навколо якоїсь архітектури, найвідоміший тип архітектури - це архітектура Гарварда, наш PIC базується на цій архітектурі, оскільки вона належить до класичного сімейства 8051. Давайте заглибимось у невеличку вступну інформацію про Гарвардську архітектуру ПІК.
PIC16F877A мікроконтролер складається з вбудованого процесора, портів введення / виводу, організації пам'яті, А / Ц перетворювач, таймери / лічильники, переривання, послідовний канал зв'язку, генератор і модуль CCP для збору робить IC потужний мікроконтролер для початківців, щоб почати с. Загальна блок-схема архітектури PIC показана нижче
ЦП (центральний процесор):
Мікроконтролер має процесор для виконання арифметичних операцій, логічних рішень та операцій, пов'язаних з пам'яттю. Процесор повинен координувати оперативну пам'ять та інші периферійні пристрої мікроконтролера.
Він складається з ALU (блок арифметичної логіки), за допомогою якого він виконує арифметичні операції та логічні рішення. Також є MU (блок пам'яті) для зберігання інструкцій після їх виконання. Цей MU визначає розмір програми нашого MC. Він також складається з CU (Блок управління), який виконує функцію комунікаційної шини між ЦП та іншими периферійними пристроями мікроконтролера. Це допомагає отримувати дані після їх обробки у зазначених регістрах.
Оперативна пам’ять (RAM):
Оперативна пам’ять визначає швидкість роботи нашого мікроконтролера. Оперативна пам'ять складається з банків реєстрів, що знаходяться в ній, перед кожним з яких покладено певне завдання. Загалом їх можна класифікувати на два типи:
- Реєстр загального призначення (GPR)
- Реєстр спеціальних функцій (SFR)
Як випливає з назви, GPR використовуються для загальних функцій реєстру, таких як додавання, віднімання тощо. Ці операції обмежені 8-бітними. Усі регістри згідно з GPR є зручними для читання та читання. Вони не мають самостійних функцій, якщо це не встановлено програмним забезпеченням.
У той час як SFR використовується для виконання складних спеціальних функцій, які також включають певну 16-бітову обробку, їх регістри можна читати лише (R), і ми не можемо в них щось писати (W). Отже, ці регістри мають заздалегідь визначені функції для виконання, які встановлюються під час виготовлення, і вони просто відображають нам результат, використовуючи які ми можемо виконувати деякі пов’язані операції.
Пам'ять лише для читання (ПЗУ):
Пам’ять лише для читання - це місце, де зберігається наша програма. Це визначає максимальний розмір нашої програми; отже, його також називають програмною пам'яттю. Коли MCU працює, програма, що зберігається в ПЗУ, виконується відповідно до кожного циклу інструкцій. Цей блок пам'яті можна використовувати лише під час програмування PIC, під час виконання він стає пам'яттю лише для читання.
Програмована програмувана пам'ять лише для читання (EEPROM) з електричним стиранням:
EEPROM - це інший тип одиниці пам'яті. У цій одиниці пам'яті значення можуть зберігатися під час виконання програми. Значення, що зберігаються тут, є лише електрично стираними, тобто ці значення зберігатимуться в PIC, навіть коли ІС вимкнено. Вони можуть використовуватися як невеликий простір пам'яті для зберігання виконаних значень; однак місця в пам'яті буде набагато менше в обертах КБ.
Флеш-пам'ять :
Флеш-пам’ять - це також програмована пам’ять лише для читання (PROM), в якій ми можемо читати, писати та стирати програму тисячі разів. Як правило, мікроконтролер PIC використовує цей тип ПЗУ.
Порти вводу / виводу
- Наш PIC16F877A складається з п’яти портів, а саме порт A, порт B, порт C, порт D та порт E.
- З усіх п'яти ПОРТІВ лише порт A є 16-бітовим, а PORT E - 3-бітовим. Решта ПОРТІ - 8-розрядні.
- Висновки на цих ПОРТАХ можуть використовуватися як вхідні, так і вихідні, на основі конфігурації реєстру TRIS.
- Окрім виконання операцій вводу-виводу, штифти можна також використовувати для спеціальних функцій, таких як SPI, Interrupt, PWM тощо.
Автобус:
Термін Bus - це лише купа проводів, що з'єднує вхідний або вихідний пристрій з процесором та оперативною пам'яттю.
Шина даних використовується для передачі або отримання даних.
Адресна шина використовується для передачі адреси пам'яті від периферійних пристроїв до центрального процесора. Штифти вводу-виводу використовуються для взаємодії з зовнішньою периферією; Обидва протоколи послідовного зв'язку UART та USART використовуються для взаємодії послідовних пристроїв, таких як GSM, GPS, Bluetooth, ІЧ тощо.
Вибір мікроконтролера PIC для наших навчальних посібників:
Мікроконтролери PIC від компанії Microchip розділені на 4 великі сім'ї. Кожна сім’я має різноманітні компоненти, що забезпечують вбудовані спеціальні функції:
- Перша сім'я, PIC10 (10FXXX) - називається Low End.
- Друге сімейство, PIC12 (PIC12FXXX) - називається середнім рівнем.
- Третя родина - PIC16 (16FXXX).
- Четверта сім'я - PIC 17/18 (18FXXX)
Оскільки ми починаємо дізнаватися про PIC, давайте виберемо ІС, яка використовується та доступна універсально. Цей мікросхем належить до сімейства 16F, номер деталі мікросхеми - PIC16F877A. З першого підручника і до кінця ми будемо використовувати ту саму мікросхему, оскільки ця мікросхема оснащена усіма розширеними функціями, такими як SPI, I2C та UART тощо. Але якщо ви не отримаєте жодної з цих речей зараз, це цілком нормально, ми будемо прогресуйте через кожен підручник і, нарешті, використовує всі вищезазначені функції.
Після вибору ІС дуже важливо прочитати таблицю даних ІС. Це має бути першим кроком у будь-якій концепції, яку ми збираємось спробувати. Тепер, коли ми вибрали цей PIC16F877A, давайте прочитаємо специфікацію цього ІС у таблиці даних.
У периферійній функції згадується, що він має 3 таймери, два з яких 8-бітові, а один 16-бітний прескалер. Ці таймери використовуються для створення функцій синхронізації в нашій програмі. Їх також можна використовувати як лічильники. Це також показує, що він має параметри CCP (Capture Compare та PWM), що допомагає нам генерувати ШІМ-сигнали та зчитувати вхідні частотні сигнали. Для зв'язку із зовнішнім пристроєм він має SPI, I2C, PSP та USART. У цілях безпеки він оснащений функцією скидання (BOR), що допомагає скинути програму while.
Аналогові функції, вказує, що мікросхема має 10-бітний 8-канальний АЦП. Це означає, що наша ІС може перетворювати аналогові значення в цифрові з роздільною здатністю 10 біт і має 8 аналогових контактів для їх зчитування. У нас також є два внутрішні компаратори, за допомогою яких можна безпосередньо порівнювати вхідну напругу, фактично не зчитуючи їх через програмне забезпечення.
Спеціальні функції мікроконтролера означають, що він має 100 000 циклів стирання / запису, тобто ви можете запрограмувати його приблизно 100 000 разів. In-Circuit Serial Programming ™ (ICSP ™) допомагає нам програмувати ІС безпосередньо за допомогою PICKIT3. Налагодження можна здійснити за допомогою In-Circuit Debug (ICD). Ще однією функцією безпеки є Watchdog Timer (WDT), який є самонадійним таймером, який за необхідності скидає всю програму.
На зображенні нижче зображені розпіновки нашої мікросхеми PIC16F877A. Це зображення представляє кожен штифт проти його назви та інших його особливостей. Це також можна знайти в таблиці даних. Тримайте це зображення під рукою, оскільки воно допоможе нам під час наших апаратних робіт.
Вибір програмного забезпечення для наших підручників:
Мікроконтролер PIC може бути запрограмований за допомогою різного програмного забезпечення, яке доступне на ринку. Є люди, які все ще використовують мову асамблеї для програмування мікроконтролерів PIC. Для наших підручників ми вибрали найдосконаліше програмне забезпечення та компілятор, розроблені самим Microchip.
Для програмування мікроконтролера PIC нам знадобиться IDE (інтегроване середовище розробки), де відбувається програмування. Компілятор, де наша програма перетвориться в MCU читається під назвою HEX файли. IPE (Integrated Середовище програмування), який використовується для виведення нашого шістнадцятирічного файлу в наш PIC мікроконтролери.
IDE: MPLABX v3.35
IPE: MPLAB IPE v3.35
Компілятор: XC8
Microchip надав усі ці три програми безкоштовно. Їх можна завантажити безпосередньо з їх офіційної сторінки. Я також надав посилання для вашої зручності. Після завантаження встановіть їх на свій комп’ютер. Якщо у вас виникли проблеми з цим, ви можете переглянути відео, подане в кінці.
Для моделювання ми використали програмне забезпечення під назвою PROTEUS 8, що надається Labcenter. Це програмне забезпечення можна використовувати для імітації нашого коду, створеного за допомогою MPLABX. Існує безкоштовне демонстраційне програмне забезпечення, яке можна завантажити з їх офіційної сторінки за посиланням.
Підготовка до обладнання:
Усі наші підручники в кінцевому підсумку матимуть апаратне забезпечення. Щоб вивчити PIC найкращим чином, завжди рекомендується протестувати наші коди та схеми на апаратному забезпеченні, оскільки надійність моделювання набагато менше. Коди, які працюють на програмному забезпеченні для моделювання, можуть працювати не так, як ви очікували на вашому обладнанні. Отже, ми будуватимемо власні схеми на платах Perf, щоб скидати наші коди.
Для того, щоб скинути або завантажити наш код в ПОС, нам буде потрібно PICkit 3. PICkit 3 програматор / відладчик є простий, недорогий внутрісхемний відладчик, який управляється з допомогою комп'ютера під керуванням MPLAB IDE (v8.20 або більш пізньої версії) програмного забезпечення на платформа Windows. PICkit 3 програматор / відладчик є складовою частиною пакету інструментів інженера розробників. На додаток до цього нам також знадобиться інше обладнання, таке як плата Perf, паяльна станція, мікросхеми PIC, кришталеві генератори, конденсатори тощо. Але ми додамо їх до нашого списку по мірі просування наших навчальних посібників.
Я привіз свій PICkit 3 з Amazon, відео з розпаковуванням цього ж можна знайти на відео нижче. Також надається посилання на PICKIT3; ціна може бути дещо висока, але, повірте, варто інвестувати.