- Вибір засобів розробки апаратного та програмного забезпечення
- Розробка STM8S103F3P6
- Програміст STM8S103F3P6
- IDE та компілятор STM8S103F3P6
- STM8S з Arduino за допомогою Sduino
- Завантаження необхідного програмного забезпечення
- Налаштування компілятора STVD та Cosmic C
- Стандартна периферійна бібліотека для STM8S103F3P6
- Складання Першої програми
- Завантаження коду зі STVD на плату розробки STM8S за допомогою ST-Link V2
STM8 являє собою серію з 8-бітних мікроконтролерів від STMicroelectronics, який став загальним вибором мікроконтролера для розробки продуктів чутливих до вартості. Раніше я працював з AVR, PIC та кількома іншими мікроконтролерами ARM Cortex, але, безумовно, у деяких додатках вони стають надмірними та значно збільшують вартість специфікації. Нещодавно, зруйнувавши кілька дешевих китайських продуктів, я виявив, що в більшості з них був мікроконтролер STM8. Схема не тільки дешева, але й оснащена безліччю функцій та опцій, що робить її придатною для використання в багатьох різних додатках. Наприклад, STM8S Серія контролерів (про яку ми дізнаємось у цій серії підручників) є контролером загального призначення, але є й інші серії, такі як STM8A для автомобільних конструкцій та STM8L для конструкцій з низьким енергоспоживанням, що розширює сферу застосування цих контролерів.
У цій серії навчальних посібників ми дізнаємося, як програмувати мікроконтролери STM8S, точніше STM8S103F3P6. Причина початку роботи з цим конкретним номером деталі полягає лише в його ціні та коефіцієнті ефективності. Подібно до!! просто подивіться на це всього за 0,25 долара (приблизно 20 рупій), ми отримуємо 8-бітний мікроконтролер з 16 МГц внутрішнім генератором, 8 кБ Flash, 10-бітним АЦП, UART, SPI та I2C. Хто б не заінтригував? Крім того, STM8S103F3P6 користується широкою популярністю, і, отже, як початківець, ви знайдете достатньо підтримки, якщо вам потрібна допомога поза навчальними посібниками. Починаючи з цього, ми матимемо послідовність навчальних посібників, подібних до Підручників з програмування PIC, де ми навчимося програмувати цей контролер від базового мигання до різних інтерфейсів дисплея та датчиків. Ви також можете переглянути навчальний посібник і проекти STM32F103C8, якщо вас цікавлять 32-розрядні мікроконтролери STM.
Вибір засобів розробки апаратного та програмного забезпечення
Тепер, коли ми розробили мікроконтролер, нам доведеться вибрати інструменти для розробки апаратного та програмного забезпечення, щоб розпочати наш навчальний процес. Варіантів багато, тут я вибрав ті, які є безкоштовними у користуванні та легко доступні кожному.
Розробка STM8S103F3P6
Офіційна плата розробки 8-розрядного мікроконтролера ST називається набором STM8 Discovery, але ми будемо використовувати іншу недорогу плату розробки, яку ви легко знайдете у місцевого постачальника або в інтернет-магазині. Зображення плати розробки STM8S103F3P6, яке ми будемо використовувати в цьому посібнику, показано нижче.
Дошка складається лише з мінімальних компонентів, необхідних для початку розробки. Це зручно для макетів і підходить для компактних додатків. Внутрішня електрична схема плати розробки наведена нижче.
Придивившись уважніше, ви помітите, крім контролера STM8S103F3p6, у нас є кнопка скидання для скидання контролера. Індикатор живлення та тестовий світлодіод, підключений до PB5 (порт B, контакт 5), та регулятор напруги AMS1117, який перетворює 5 В з USB-порту на 3,3 В для контролера. Контролер також може бути змушений працювати на 5 В, якщо потрібно. Різні частини на контролері позначені нижче. У нас також є 4 висновки програміста, а саме 3,3 В, GND, SWIM та NRST, які можна використовувати для легкого програмування та налагодження нашого мікроконтролера.
Програміст STM8S103F3P6
Для програмування нашого контролера ми будемо використовувати ST-LINK v2, який є дешевим і легко доступним в Інтернеті. Існує багато варіантів (металеві, пластикові, золоті, рожеві, голі дошки) цієї дошки ST-LINK v2, і всі вони слугують одній меті. Мій показаний нижче, але ви можете використовувати будь-який тип програміста ST-LINK, розпиновка буде відрізнятися, тому просто переконайтесь, що ви правильно прочитали розписування на корпусі. Існує також ST-LINK V3 від самої ST-Microelectronics, яка може бути використана для серйозної налагодження. Наразі ми не будемо цим користуватися, оскільки це трохи дорого, ми збережемо його на майбутнє.
IDE та компілятор STM8S103F3P6
Вибір правильного IDE та компілятора для STM8S103F3P6 викликає задум, просто тому, що є безліч варіантів на вибір. Офіційні інструменти, доступні для мікроконтролера STM8, показані на зображенні нижче.
Що стосується конфігурації, у нас є STM8CubeMx, я спробував програмне забезпечення, і це було для мене повним підведенням. На відміну від STM32Cube, STM8Cube не може автоматично генерувати код. Він може генерувати відображення контактів лише для цілей візуалізації і може стати в нагоді, якщо ви переносите свій код з одного контролера на інший. Окрім цього, я б не використовував його. Отже, у цій серії підручників ми не використовуватимемо цього.
Для IDE та компілятора у нас є безліч варіантів на вибір. Дві найкращі опції для IDE - це робочий стіл IAR та ST Visual Develop (STVD), обидва програми схожі на те, що вони з 90-х, але через деякий час, погравши з ним, я виявив, що STVD є хорошим вибором лише тому, що він абсолютно безкоштовний. Подібним чином для компілятора ми будемо використовувати компілятор Cosmic C, знову ж таки лише тому, що він абсолютно безкоштовний. Ще однією причиною вибору цього IDE та компілятора є те, що, як тільки ми ознайомимось із навколишнім середовищем, буде легко використовувати будь-який інший 8-розрядний мікроконтролер від ST без особливих зусиль. Далі в цій статті ми розберемося, як встановити та налаштувати STVD за допомогою компілятора Cosmic C.
Для Flashing ми будемо використовувати ST Visual Programmer (STVP), цей інструмент автоматично встановлюватиметься, коли ми встановлюємо STVD. Він буде інтегрований в саму IDE, що допоможе нам швидко програмувати та налагоджувати. Остаточним програмним забезпеченням буде STMStudio, яке є програмним забезпеченням STM8 Monitoring. Програмне забезпечення може допомогти з налагодженням STM8 у реальному часі і має деякі цікаві функції, такі як моніторинг значення змінної, побудова графіків тощо. Я недостатньо експериментував із цим програмним забезпеченням. І, принаймні для перших кількох підручників, ми не будемо використовувати це програмне забезпечення, оскільки нам не будуть потрібні великі вимоги щодо налагодження.
Стандартна периферійна бібліотека STM8S: ST Microelectronics надає набір бібліотек, що полегшують розробку коду для мікроконтролерів STM8S. Ця бібліотека називається “ Стандартна периферійна бібліотека ” або коротше SPL. Бібліотека класна, за винятком того, що вона написана, маючи на увазі всі можливі контролери 8-бітового сімейства STM8S / A, а не лише контролер STM8S103F3P6, який ми будемо використовувати. Отже, нам доводиться дещо підправляти тут і там, щоб це працювало (про що я поділюсь пізніше). Але все-таки я вважаю, що варто спробувати, тому що це може зробити процес розробки дуже швидким, і, отже, ми будемо використовувати це в нашому посібнику.
Якщо ви не хочете користуватися бібліотекою, вам слід безпосередньо отримати доступ до реєстрів контролера або виконати програмування оголених металів. І те, і інше весело, за умови, що у вас є час навчитися і користуватися ним. Моя ідея полягає в тому, щоб використовувати бібліотеку SPL скрізь, де вона добре працює, а потім також працювати на рівні реєстру та збірки, якщо потрібно. Спробуємо не вигадувати колесо заново!
STM8S з Arduino за допомогою Sduino
Обговорення варіантів програмного забезпечення ніколи не буде повним, якщо я не згадаю підтримку Arduino IDE STM8S. Так, ту саму плату STM8S103F3P6 можна запрограмувати безпосередньо з IDE Arduino за допомогою Sduino, завдяки Майклу Майєру. Але проект все ще перебуває на стадії розробки, і, ймовірно, знадобиться деякий час та підтримка громади для Sduino, щоб надати повну підтримку платформи. Однак, буквально за кілька хвилин гри з Sduino, мені це сподобалось і, отже, вирішив також зробити окрему статтю про те, як запрограмувати мікроконтролер STM8S на Arduino. Я зв’яжу статтю тут, коли вона буде готова. У цій статті буде обговорено, чому і чому не слід використовувати Arduino IDE для програмування мікроконтролерів STM8S.
Отже, це мій вибір щодо програмного та апаратного забезпечення, дайте мені знати в розділі коментарів, якщо ви вважаєте, що якесь інше програмне забезпечення було б кращим вибором, і чому. Я хотів би вивчити й інші варіанти.
Завантаження необхідного програмного забезпечення
Тепер, коли ми визначились із програмним забезпеченням, яке ми будемо використовувати для цього підручника, давайте завантажимо їх за наступним посиланням. Все програмне забезпечення можна безкоштовно завантажувати та використовувати, вам просто потрібно було б зареєструвати безкоштовний акаунт на ST та Cosmic, якби ви цього ще не зробили.
- ST Visual Develop (STVD)
- Космічний С Компілятор
- Стандартна периферійна бібліотека
- STM8Cube Mx (необов’язково)
- STMStudio для STM8 (необов’язково)
Налаштування компілятора STVD та Cosmic C
Після завантаження обох програм просто виконуйте інструкції на екрані, щоб встановити їх. Я б рекомендував залишити їх у каталогах за замовчуванням, щоб уникнути подальшої плутанини. IDV STVD буде встановлено без будь-яких зусиль. Для компілятора Cosmic C вам потрібно отримати безкоштовний ліцензійний ключ під час встановлення. Вам просто потрібно надати інформацію про компанію за допомогою електронного ідентифікатора, якщо ви студент, просто згадайте про це. Процеси отримання ліцензійного ключа є миттєвими та автоматичними, хоча в інструкціях з налаштування сказано, що це може зайняти день-два, я отримав ліцензійний ключ автоматично на свій ідентифікатор електронної пошти, як тільки надіслав його, просто переконайтеся, що ви перевірте СПАМ. Мій електронний лист із підтвердженням показаний нижче.
Відповідно до інструкції електронної пошти, просто скопіюйте файл license.lic та вставте в підкаталог “ліцензія” у вашій інсталяційній папці. Для мене шлях був "C: \ Program Files (x86) COSMIC \ FSE_Compilers \ CXSTM8 \ License" . Просто вставте файл у місце, як показано нижче.
Стандартна периферійна бібліотека для STM8S103F3P6
Як вже говорилося раніше, ST Microelectronics надає бібліотеки під назвою SPL, які можна використовувати для всіх 8-розрядних мікроконтролерів STM8S / A. Ви можете або завантажити оригінальний SPL від ST Microelectronics та внести необхідні зміни, або завантажити мої бібліотеки SPL STM8S103F3P6 і використовувати їх як такі. Я б рекомендував пізніше.
Оригінальний SPL від ST Microelectronics
STM8S103F3P6 SPL
Поки ви там, також переконайтеся, що завантажили посібник користувача SPL, який буде дуже зручним при програмуванні контролера.
Складання Першої програми
Тепер, коли все готово, спробуємо скласти нашу першу програму, щоб перевірити, чи все IDE, компілятор та бібліотека працюють належним чином. Ви також можете переглянути відео внизу сторінки для отримання детальних інструкцій.
Почніть з відкриття STVD і виберіть Файл -> Робоча область, у спливаючому вікні виберіть «Нова робоча область» та введіть назву проекту та шлях, де програма повинна бути збережена. Я називаю свою програму BareMinimum і зберігаю її в папці на робочому столі. Натисніть OK, і ви отримаєте діалогове вікно «Новий проект», як показано нижче.
Я знову називаю проект як мінімальний, і під ланцюжком інструментів ми повинні вказати корінь ланцюжка інструментів до шляху, де встановлений компілятор STM8 Cosmic. Адреса шляху за замовчуванням - “C: \ Program Files (x86) COSMIC \ FSE_Compilers \ CXSTM8” . Після цього просто натисніть OK, щоб відкрити вікно “MCU Selection”.
Знайдіть STM8S103F3P, виберіть його та натисніть OK. Це відкриє новий проект для STM8S103F3P на STVD, вікна повинні виглядати так, коли закінчите.
Клацніть правою кнопкою миші на “вихідний файл” і виберіть “Додати файли в папку”, щоб включити всі c-файли з нашої бібліотеки SPL, так само клацніть правою кнопкою миші на Включити файли, щоб включити всі файли заголовків. Якщо у вас виникли запитання, ви можете звернутися до відео нижче. Після додавання всіх файлів клацніть Будувати -> перебудувати все, а потім Скомпілювати, щоб перевірити, чи працюють компілятор та SPL належним чином . Якщо все піде добре, ви побачите наступний екран із помилкою результату збірки 0 та попередженням 0.
Після цього ми можемо бути впевнені, що всі наші бібліотеки SPL працюють з компілятором Cosmic та STVD. Це стандартна процедура, яку ми дотримуватимемось для кожного нового проекту. Ви також можете включити лише необхідні заголовки та вихідні файли, необхідні для проекту, щоб зменшити час збірки, якщо потрібно.
Завантаження коду зі STVD на плату розробки STM8S за допомогою ST-Link V2
Підключіть ST-Link V2 до плати розробки, як показано нижче.
З'єднання досить прямі, і найкраща частина - вам не потрібні зовнішні компоненти. Моє апаратне налаштування для програмування показано нижче, я щойно використав жіночі дроти для підключення для встановлення з'єднання. Однак, зауважте, що розпинання вашого ST-Link може відрізнятися від мого, обов’язково дотримуйтесь розпірування на пристрої, перш ніж здійснювати підключення.
Встановіть підключення та підключіть пристрій до комп’ютера, установка драйвера повинна розпочатися автоматично. Ви можете скористатися диспетчером пристроїв, щоб переконатися, що ваш комп’ютер правильно виявив ST-LINK V2. Ви також помітите тестовий світлодіод на платі, який блимає, якщо це вперше живить плату. Як тільки ми успішно скомпілюємо код на STVD, ми отримаємо файл розширення “S19” у каталозі налагодження папки проекту. Мій файл S19 показаний нижче.
Цей S19 схожий на Hex-файл, який слід завантажити на контролер. Щоб завантажити програму, відкрийте ST Visual Programmer (STVP), який слід було встановити разом із STVD. Потім у вікні конфігурації виберіть, як показано на малюнку нижче, та натисніть OK.
Потім натисніть Файл-> Відкрити та перейдіть до файлу S19, який ми показали раніше. Потім, щоб прошити пристрій, дотримуйтесь Програма -> Поточна вкладка. Якщо прошивка була успішною, ви побачите наступний результат.
За замовчуванням, коли ви купуєте STM8S, він буде мати програму блимання, яка блимає тестовим світлодіодом. Тепер після завантаження цього порожнього коду світлодіод більше не блиматиме.
Важливо: Я виявив, що мій ST-Link не скинув плату автоматично після програмування. Мені довелося від'єднати та знову підключити його, щоб перевірити результати моєї програми. Я не впевнений, що це проблема для всіх, повідомте мене в розділі коментарів. Також перегляньте відео внизу, де пояснюється рішення цього питання.
Закінчивши цей підручник, ми вивчили основи апаратного забезпечення, налаштували середовище розробки та навчились компілювати та завантажувати код. Зараз ми готові прогресувати, і ми будемо використовувати це у всіх наших майбутніх підручниках. Якщо у вас є які-небудь запитання, розмістіть їх на наших форумах і стежте за новинами !!