- Избор на инструменти за хардуер и софтуер за разработване
- Разработка на STM8S103F3P6
- STM8S103F3P6 Програмист
- STM8S103F3P6 IDE и компилатор
- STM8S с Arduino, използващ Sduino
- Изтегляне на необходимия софтуер
- Настройване на STVD и Cosmic C Compiler
- Стандартна периферна библиотека за STM8S103F3P6
- Съставяне на Първата програма
- Качване на кода от STVD на платката за разработка на STM8S с помощта на ST-Link V2
В STM8 е поредица от 8-битови микроконтролери от STMicroelectronics, че се е превърнало в често срещан избор на микроконтролера за разходно-чувствителен разработването на продукта. Преди съм работил с AVR, PIC и няколко други ARM Cortex микроконтролери, но със сигурност в някои приложения те стават прекалено големи и значително увеличават BOM разходите. Наскоро, след като съборих няколко евтини китайски продукта, установих, че повечето от тях имат микроконтролер STM8 вътре в него. IC не само е евтин, но също така е снабден с много функции и опции, което го прави подходящ за използване в много различни приложения. Например STM8S серия контролери (които ще научим в тази серия от уроци) е контролер с общо предназначение, но има и други серии като STM8A за автомобилни дизайни и STM8L за батерии с ниска мощност, което разширява приложението на тези контролери.
В тази серия уроци ще научим как да програмираме микроконтролерите STM8S, по-точно STM8S103F3P6. Причината да започнете с този конкретен номер на част е само за неговия фактор цена / производителност. Като!! просто го погледнете само за 0,25 $ (приблизително 20 рупии) получаваме 8-битов микроконтролер с 16Mhz вътрешен осцилатор, 8kB Flash, 10-битов ADC, UART, SPI и I2C. Кой не би се заинтригувал? Също така STM8S103F3P6 е широко популярен и следователно като начинаещ ще намерите достатъчно подкрепа, ако имате нужда от помощ извън уроците. Като се започне от това, ще имаме поредица от уроци, подобни на уроците за програмиране на PIC, където ще научим как да програмираме този контролер от основно мигане до различни взаимодействия на дисплея и сензора. Можете също да разгледате урока и проектите за STM32F103C8, ако се интересувате от 32-битови микроконтролери STM.
Избор на инструменти за хардуер и софтуер за разработване
Сега, когато вече имаме микроконтролер, ще трябва да изберем инструменти за разработване на хардуер и софтуер, за да започнем процеса на обучение. Има много опции, тук съм избрал тези, които са безплатни за използване и лесно достъпни за всички.
Разработка на STM8S103F3P6
Официалната дъска за разработка на 8-битовия микроконтролер на ST се нарича STM8 Discovery kit, но ние ще използваме друга евтина платка за разработка, която лесно можете да намерите при местен доставчик или в онлайн магазин. Изображението на платката за разработка STM8S103F3P6, което ще използваме в този урок, е показано по-долу.
Платката се състои само от минималните компоненти, които са необходими за започване на разработката. Той е удобен за макет и е подходящ за компактни приложения. Вътрешната схема на платката за разработка е показана по-долу.
Погледнете отблизо и ще забележите, че освен контролера STM8S103F3p6, имаме бутон за нулиране за нулиране на контролера. Захранващ и тестов светодиод, свързан към PB5 (порт B щифт 5) и регулатор на напрежение AMS1117, който преобразува 5V от USB порт в 3.3V за контролера. Контролерът може да бъде настроен да работи на 5V, ако е необходимо. Различните части на контролера са маркирани по-долу. Ние също така имаме 4 програмиращи щифта, а именно 3.3V, GND, SWIM и NRST, които могат да се използват за лесно програмиране и отстраняване на грешки на нашия микроконтролер.
STM8S103F3P6 Програмист
За програмиране на нашия контролер ще използваме ST-LINK v2, който е евтин и лесно достъпен онлайн. Има много варианти (метална, пластмасова, златна, розова, гола дъска) на тази платка ST-LINK v2 и всички служат за една и съща цел. Моят е показан по-долу, но можете да използвате всякакъв тип ST-LINK програмист, пиноутът ще се различава, така че просто се уверете, че сте прочели правилно пинотите на корпуса. Има и ST-LINK V3 от самата ST-Microelectronics, който може да се използва за сериозно отстраняване на грешки. Засега няма да използваме това, тъй като е малко скъпо, ще го запазим за в бъдеще.
STM8S103F3P6 IDE и компилатор
Изборът на подходящия IDE и компилатор за STM8S103F3P6 е объркващ, просто защото има много възможности за избор. Официалните инструменти, които са на разположение за микроконтролера STM8, са показани на изображението по-долу.
От страна на конфигурацията имаме STM8CubeMx, опитах софтуера и той беше пълен разочарование за мен. За разлика от STM32Cube, STM8Cube не може автоматично да генерира код. Той може да генерира само картографиране на ПИН за целите на визуализацията и може да бъде полезен, ако пренасяте кода си от един контролер на друг. Освен това не бих го използвал. Така че в тази поредица от уроци няма да използваме това.
За IDE и Compiler имаме много възможности за избор. Двата най-добри варианта за IDE са IAR workbench и ST Visual Develop (STVD), и двата софтуера се чувстват като от 90-те, но след известно време играейки с него, открих, че STVD е добър избор само защото е напълно безплатен. По същия начин за компилатора ще използваме Cosmic C Compiler, отново само защото е напълно безплатен. Друга причина за избора на този IDE и компилатор е, че след като се запознаем с околната среда, трябва да е лесно да използваме всеки друг 8-битов микроконтролер от ST без много усилия. Ще разберем как да инсталирате и настроите STVD с компилатор Cosmic C по-късно в тази статия.
За Flashing ще използваме ST Visual Programmer (STVP), този инструмент автоматично ще се инсталира, когато инсталираме STVD. Той ще бъде интегриран в самата IDE, което ще ни помогне бързо да програмираме и отстраняваме грешки. Крайният софтуер ще бъде STMStudio, който е софтуер за наблюдение STM8. Софтуерът може да помогне за отстраняване на грешки в реално време на STM8 и има някои страхотни функции като наблюдение на променлива стойност, графика на графики и др. Не съм експериментирал достатъчно с този софтуер. И поне за първите няколко урока няма да използваме този софтуер, тъй като няма да се нуждаем от големи изисквания за отстраняване на грешки.
STM8S Стандартна периферна библиотека: ST Microelectronics предоставя набор от библиотеки, за да улесни разработването на код за микроконтролерите STM8S, тази библиотека се нарича „ Стандартна периферна библиотека “ или накратко SPL. Библиотеката е готина, с изключение на това, че е написана, като се имат предвид всички възможни контролери от 8-битовото семейство STM8S / A, а не само контролерът STM8S103F3P6, който ще използваме. Следователно трябва да направим някои ощипвания тук и там, за да работи (което ще споделя по-късно). Но все пак вярвам, че си струва да опитате, защото може да направи развитието много бързо и следователно ще го използваме в нашия урок.
Ако не искате да използвате библиотеката, трябва директно да влезете в регистрите на контролера или да направите програмиране на голи метални сглобки. И двете са забавни, стига да имате време да го научите и използвате. Идеята ми е да използвам SPL библиотеката навсякъде, където тя работи добре, а след това да работи и на ниво регистър и асемблиране, ако е необходимо. Нека се опитаме да не изобретяваме отново колелото!
STM8S с Arduino, използващ Sduino
Обсъждането на софтуерните опции никога няма да бъде пълно, ако не спомена поддръжката на Arduino IDE STM8S. Да, същата платка STM8S103F3P6 може да бъде програмирана директно от Arduino IDE с помощта на Sduino, благодарение на Michael Mayer. Но проектът все още е в етап на разработка и вероятно ще отнеме известно време и подкрепа от общността на Sduino, за да осигури пълна поддръжка на платформата. Въпреки това, само след няколко минути игра с Sduino, започнах да го харесвам и затова реших да направя и отделна статия за това как да програмирам STM8S Microcontroller с Arduino. Ще свържа статията тук, когато е готова. Тази статия ще обсъди защо и защо не трябва да използвате Arduino IDE за програмиране на вашите микроконтролери STM8S.
И така, това са моите избори за софтуер и хардуер, уведомете ме в раздела за коментари, ако смятате, че някой друг софтуер би бил по-добър избор и защо. Бих искал да проуча и други възможности.
Изтегляне на необходимия софтуер
След като решихме софтуера, който ще използваме за този урок, нека продължим и ги изтеглим, като използваме следната връзка. Целият софтуер е безплатен за изтегляне и използване, просто трябва да регистрирате безплатен акаунт в ST и Cosmic, ако още не сте го направили.
- ST Visual Develop (STVD)
- Космически С компилатор
- Стандартна периферна библиотека
- STM8Cube Mx (по избор)
- STMStudio за STM8 (по избор)
Настройване на STVD и Cosmic C Compiler
След като изтеглите и двата софтуера, просто следвайте инструкциите на екрана, за да ги инсталирате. Бих препоръчал да ги оставите в директориите по подразбиране, за да избегнете по-късно объркване. STVD IDE ще се инсталира без никакви усилия. За компилатора Cosmic C трябва да получите безплатен лицензионен ключ по време на инсталационните процеси. Просто трябва да предоставите информация за компанията с имейл имейл, ако сте студент, просто го споменете. Процесите за получаване на лицензионния ключ са мигновени и автоматични, въпреки че инструкциите за настройка казват, че може да отнеме ден или два, получих лицензионния ключ автоматично на своя имейл имейл веднага щом го изпратих, просто се уверете, че сте проверете СПАМ. Моят имейл за потвърждение е показан по-долу.
Съгласно инструкцията за електронна поща, просто копирайте файла license.lic и го поставете в подпапката „лиценз“ във вашата инсталационна папка. За мен пътят беше „C: \ Program Files (x86) COSMIC \ FSE_Compilers \ CXSTM8 \ License” . Просто поставете файла на място, както е показано по-долу.
Стандартна периферна библиотека за STM8S103F3P6
Както беше казано по-рано, ST Microelectronics предоставя библиотеки, наречени SPL, които могат да се използват за всички 8-битови микроконтролери STM8S / A. Можете или да изтеглите оригиналния SPL от ST Microelectronics и да направите необходимите промени, или да изтеглите моите STM8S103F3P6 SPL библиотеки и да ги използвате като такива. Бих препоръчал по-късно.
Оригинален SPL от ST Microelectronics
STM8S103F3P6 SPL
Докато сте там, също се уверете, че сте изтеглили ръководството за потребителя на SPL, което ще бъде много удобно при програмиране на контролера.
Съставяне на Първата програма
Сега, когато всичко е готово, нека опитаме да съставим първата ни програма, за да проверим дали IDE, компилаторът и библиотеката работят по начина, по който трябва. Можете също да проверите видеоклипа в долната част на страницата за подробни инструкции.
Започнете с отваряне на STVD и изберете File -> WorkSpace, в изскачащия прозорец изберете „New Workspace“ и въведете името на проекта и пътя, където програмата трябва да бъде запазена. Назовавам програмата си BareMinimum и я запазвам в папка на работния плот. Щракнете върху OK и ще получите диалоговия прозорец Нов проект, както е показано по-долу.
Отново назовавам проекта като бареминимум и под инструментариума трябва да посочим корена на инструментариума до пътя, където е инсталиран STM8 Cosmic компилаторът. Адресът на пътя по подразбиране е „C: \ Program Files (x86) COSMIC \ FSE_Compilers \ CXSTM8” . След това просто щракнете върху OK, за да получите прозореца “MCU Selection”.
Потърсете STM8S103F3P и го изберете и щракнете върху OK. Това ще отвори нов проект за STM8S103F3P на STVD, прозорците трябва да изглеждат така, когато са готови.
Щракнете с десния бутон върху „изходен файл“ и изберете „Добавяне на файлове в папка“, за да включите всички c файлове от нашата SPL библиотека, по същия начин щракнете с десния бутон върху Включване на файлове, за да включите всички заглавни файлове. Ако имате някакви въпроси, можете да се обърнете към видеоклипа по-долу. След като всички файлове са добавени, щракнете върху Build -> rebuil d all и след това Compile, за да проверите дали компилаторът и 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.
След това кликнете върху File-> Open и отидете до файла S19, който показахме по-рано. След това, за да мигате устройството, следвайте Програма -> Текущ раздел. Ако мигането е било успешно, трябва да видите следния изход.
По подразбиране, когато закупите STM8S, той ще има програма за мигане, която мига тестовия светодиод. След като качите този празен код, светодиодът вече няма да мига.
Важно: Установих, че моят ST-Link не е рестартирал платката автоматично след програмиране. Трябваше да го прекъсна и да го свържа отново, за да проверя изхода на моята програма. Не съм сигурен дали това е проблем за всички, уведомете ме в раздела за коментари. Също така, вижте видеоклипа отдолу, който обяснява решението на това.
С това, нека завършим този урок, научихме основите на хардуера, настроихме средата за разработка и научихме как да компилираме и качваме код. Вече сме готови да напредваме и ще използваме това във всички наши предстоящи уроци. Ако имате някакви въпроси, моля, публикувайте ги на нашите форуми и следете за още !!