Введение в STM32
Видео знакомит с микроконтроллерами STM32: их отличия от AVR, классификация семейства, плата Black Pill на STM32F401, выбор среды разработки и подходов CMSIS и HAL. Показаны источники тактирования, программатор ST-Link V2 и структура файлов CMSIS для начала программирования.
- 00:00 Отличия STM32 от AVR: архитектура, частота, память, периферия
- 03:50 Классификация STM32 и плата Black Pill на STM32F401
- 16:59 Выбор среды разработки для STM32
- 17:52 Подходы CMSIS и HAL, выбор CMSIS
- 25:19 Граф зависимостей файлов STM32 и CMSIS
- STM32
- Ethernet
Кому полезно: Инженерам и разработчикам, начинающим освоение STM32 после AVR
Описание составлено автоматически по расшифровке речи в ролике.
Расшифровка видео
0:00 Сегодня попробуем начать разбираться с микроконтроллерами семейства СТМ. 32 То есть микроконтроллерами, которые идут после аверок гораздо после аверок с Верок Мега. Контроль мы, мы более менее разобрались, и теперь я в меру своих скромных. Сил из куда уме я попытаюсь сам разобраться в СтМ микроконтроллерах. Ну и что то тоже рассказать о них? Итак, применение стремника контроллеров, оно точно такой же, как у Авр. То есть можно делать всякие хобби, штуки всякие домашние? Центры для для умного дома всякими светодиодами, управлять экранчиками и так далее роботов делать на основе этих микроконтроллеров. Но в чем отличие СМ микроконтроллеров от АВР? Дело в том, что СМ работают на гораздо более высокой. Частоте, а это означает, что мы можем исполнять большее количество операций в секунду, то есть работать с какими то быстродействующими процессами. Например, вот для такого робота, который балансирует на шаре, а вермика контроллер. Подходит не очень сильно, и лучше бы перевести этого робота на СтМ микроконтроллер будет проще. Также у стн микроконтроллеров есть табакер, который получше. Да, когда ты программируешь, тебе очень важно иметь дебагер, который дешево стоит. Да и который интегрирован в среду разработки, у них есть дебагет, и, кроме того, Стм, микроконтроллеры они более энергоэффективны. Поэтому у всех в телефоне стоит АРМ микропроцесса. У некоторых даже в ноутбуке стоит АРМ микропроцессор. В телевизоре в холодильнике где угодно. Вот, собственно, Стн, микроконтроллер, у него ядро процессорное ядро. Это Арм Микропроцессор Арм Кортекс, м какой нибудь м 0 им 1 и 2 и так далее. Поэтому эти микроконтроллеры они очень энергоэффективные. Поэтому в носимых устройствах, конечно же, они предпочтительнее, они гораздо лучше, чем Авр. Микроконтроллер семейство микроконтроллеров. Ну вот, мы с вами проходили авр на примере наших стендов с ВР микроконтроллерами от Мега. Суда 28 на примере Ардуин плата, которая нельзя называть там, стоят либо тыс. 28 от Мега, либо 128 есть довольно не новые микроконтроллеры 80 ты51 производства фирмы Интел. И вот мы переходим к СтМ микроконтроллером, Стм, 32 мы уже несколько. Затронули отличие Авр от Стм, но вот здесь они сведены в такую таблицу. Здесь, разумеется, не все отличия между тем, что мы проходили и тем, что мы будем проходить в дальнейшем. Но тем не менее во 1 отличаются АВР и СтМ микроконтроллеры. Архитектурой, если у Авр Мика контроллера это восьмибитная риск архитектура, то СМ-это АРМ, микропроцессов и 32 битная архитектура. То есть все регистры у него 32 бит на это означает, что за 1 операцию мы можем изменить больше? Настроек микроконтроллера, частота работы. Ну вот, у авр микроконтроллеров на примере той же самой платы, которую нельзя называть. Там стоит 16 мегагерцовый кварц Стм, 32 микроконтролера могут работать на частоте до 480 мегагерц из. За этого сфера их применения шире, то есть у них даже может быть, например, выход в интернет у них есть настоящие зарнет, иногда на отладочной плате объем памяти. Ну вот, у Авр микроконтроллеров это флэш память, которая доступна пользователю. Для программирования это до 2 56 килобайт. У астм 32 микроконтроллеров это единицы мегабайт флэша. То есть программа может быть большая комплексная, управлять многими устройствами в него могут быть заложены множество алгоритмов. Интерфейс и периферия, если у Атера это уже нам знакомые протоколы Юарта Спяйтуси, это таймеры, это АЦП, это иногда цап, это в ножки ввода вывода модуль ног ввода вывода. Джи Пи, Ай, о то у Стм 32 это все тоже есть этого всего больше. Например, там может быть 2 Юарда, 3 Юарда, 2 Эспиаля, также добавляется, например, настоящий честный ЮСБ. Протокол, то есть тот протокол, по которому вы подключаете к своему компьютеру мышку или клавиатуру, добавляется честный Кан Кан. Это то, по какому протоколу общаются модули? Внутри автомобиля под капотом автомобиля добавляется честный эзернет, добавляется АЦП и цап которых тоже несколько и которые имеют свои собственные особенности. Ну и отсюда вывод, что области? Применения для АВР и СтМ 32 микроконтроллеров они несколько отличаются. То есть на Авери тоже можно сделать какую то промышленную автоматизацию? Безусловно, но для этого нужны какие то переходные платы дополнительные, а на этих. Переходных платах так называемых шилдах будут стоять, скорее всего, АРМ или СтМ 32 микроконтроллера. Поэтому, наверное, Стм, 32 это немножко ближе к промышленности, ближе к тому, что применяется, что нужно не конечному пользователю, а что? Нужно производителю чего то для того, чтобы дать пользователю то, что он хочет Авр. Это немножечко микроконтроллеры, которые подходят для обучения, хорошо подходят для понимания того, что такое микроконтроля на программирование они. Подходят для среднего и чуть выше среднего уровня. Это не значит, что они плохие, они прекрасные, но Стм 32. Наверное, уходит чуть чуть дальше по своим характеристикам классификация. Стоим, 32 разумеется, стоим, 32 есть не 1 микроконтроля. Они классифицируются по разным параметрам и по объему памяти и по встроенному ядру. То есть, собственно, этот кортекс, процессорное ядро? У кого то она одноядерная, у кого то даже двухядерная бывает. Ну вот, например, есть недорогие, а? Ф 0 серия, то есть Стм 32 ф 0 дальше, какие то цифры и буквы идут, который построен на микропроцессоре. Кортекс, м 0 суд, собственно, название Ф 0 есть. Вот такие вот платы они называются не уклен, с 0 который построена на кортекс м 0 +. То есть он чуть чуть помощнее, чем вот этот вот? Но в целом тоже довольно доступный недорогой, сразу прямо есть печатная плата, у нее тут сразу есть программатор. Вот эта штука называется программатор, вот тут даже отдельный чип для. Программирования нужен только ЮСБ провод. Вот, собственно, самый СтМ микроконтроллер есть еще более продвинутый, например, на микропроцессоре Кортекс. Н 3 это ф 1 серия СМ 32 микроконтроллеров, ну и есть очень продвинутая это на кортекс. М 4 они очень производительные, а Стм 32 ф 4 серия. Как вы видите, у нее есть несколько ЮСБ портов, это у нас вами питание. Это Джей, так разъем это, Кан, интерфейсы. Это Эзернета на сенсорный тач Скрин, кажется, он не цветной, но тем не менее. До Грейс Кейл и на этой плате также есть даже видеокамера, то есть микроконтроллер. Стм 32 ф 4 серии может обрабатывать настоящее видео изображение. Мы с вами будем проходить микроконтроллер Стм 32 ф, 4 а конкретно ф 401 Икс Си где. Икс, это различные могут быть буквы, различные цифры. Что входит в наш с вами стм 32 ф 401 у нас с вами кортекс м 4 процессором архитектуры АРМ? У нас с вами есть ДМА Шина памяти, причем 2 Дейма, Дейма, 1 Дейма, 2 Дейма расшифровывается. Как Дарект Мемори Аксес, то есть прямой доступ к памяти, мы его в дальнейшем, скорее всего, рассмотрим это способ обмениваться данными между периферией и памятью микроконтроллера, минуя центральный процессор. То есть, по сути, в кавычках? Можно сказать, что это как будто бы 2 виртуальный процесс. Это то есть, когда нам нужно, например, от АЦП передать данные, минуя микропроцессор. Мы можем использовать демо, это были ведущие устройства, центральный процессор и шины. Дема также есть ведомые устройства, а это у нас с вами флэш память, на который мы с вами будем записывать нашу программу. У нас с вами будет Эсраун Статик Рандом Эксес Мемори и будет периферия, которая подключается к шине Эйч Би 1 и. Расшифровывается как Эдванс Хайпер Форманз Бас, то есть продвинутая шина высокой производительности, а и также есть еще 1 шина. Эйч Би, которые, в свою очередь, сходятся в шины. Эй, Пи, Би, 1 Эй, Пи, Би, 2 Эй, Пиби, расшифровывать, как Эдванс? Перифера у вас, то есть расширенная или продвинутая шина периферии, собственно, к шине периферии. Эй, пи, би, 1 эй, пи би, 2 подключаются все наши периферийные устройства микроконтроллера, которые мы с вами уже все в целом проходили, когда? Проходили Авр микроконтроллера, это Джи Пи Ай, и это таймеры, счетчики. Это модули прерываний, это, а модули протоколов и тому подобное прочее. С этим мы подробно познакомимся в дальнейшем. Наш микроконтроля Стм 32 ф 401 имеет свою. Собственную отладочную плату, которая называется Блэк пил, есть еще блу пил, есть еще вот мюкле. Мы смотрели до этого, но вот мы будем знакомиться со стоим 32 микроконтроллерами на примере платы. Блэк пил, а сердцем которой является СтМ. 32 Ф 401 Икс Си микроконтроля мы с вами имеем 34 пина ввода вывода максимальную частоту тактирования нашего с вами микроконтроллера 84 мегагерца. На плате установлен кварц 25 мегагерц, вопрос, как же получается 84 мегагерца об этом? Чуть чуть далее есть 1 пользовательская кнопка и 1 пользовательский светодиод вот на ноге ПЦ 13. Это светодиод, который отвечает за подачу питания. Он индуцирует, что питание есть, есть разъем подключения программатора, вот он здесь. Сверху есть 256 килобайт флеш памяти для того, чтобы писать свои программы. Есть двенадцатибитный ацп на борту. У нас они ВВН микроконтулеры был десятибитная ЦП, есть аж 8 таймеров, счетчиков и 1 счетчик реального времени есть 3 модуля. Протокола Айтусить 3 Юарта и 3 из Пиая. Вот если посмотреть на выводы, не все подписаны, мы с вами видим п 0 п 1 и вот в мир п. 15 То есть у нас в каждом порту не по 8 выводов, как было во время микроконтроллера, а по 16 выводов мы? Сами имеем выводы, которые могут быть аппаратными шимами. Да, то есть мы можем их использовать как аппаратный шим, у нас они есть. Вот, например, сда, 3 а Эсфель 1 СДА 1. Это, например, модуль протокола Ай Ту Си номер 1 в принципе все это. Буква, т это таймер миссом оси, это спяй с сетей, тоже спяй. Юсби порт Юсби порт здесь нужен, к сожалению, не для того, чтобы программировать микроконтроллер. Для этого я напомню, есть разъем подключения программатора, мы в дальнейшем. Посмотрим на него здесь визги порта. Честно, ЮСБ, порт, то есть мы можем сделать из этого устройства из этой платы. Какое то специальное устройство, которое будет подключаться по Йюэсби к компьютеру и определяться компьютером, как мышка. Клавиатура как видеокамера еще что то, то есть это полноценный аппаратный модуль, который может общаться по честному протоколу ЮСБ с другими устройствами, тактирование. Вот я говорил, что максимальная частота тактирования нашего. Микроконтроллера на плате Блэк пил это 84 мегагерца. Но при этом я сказал, что у нас на платье распаян кварц на 25 многогец вопрос. Откуда ж берется 84 мегагерца, очень интересно, давайте по порядку. Итак, у нас есть первичные источники. Тактирования для нашего микроконтроллера, то есть источники тактирования шин периферии 1 источник. Это Эйчесай Хай спит, интернел, то есть высокоскоростная внутренняя РЦ, цепь, внутренняя цепочка. Она может тактировать наше ядро микроконтроллера. Наш процессор до 16 мегагерц, то есть это то, что мы с вами уже видели. Ну, например, тоже самое платье, которую нельзя называть дальше. У нас с вами есть модуль Эйч с Е. Хай спит, экстернл, это высокоскоростной кварцевый резонатор. Который тактирует наши шины с частотой от 4 до 26 мегагерц? То есть, по сути, этим самым мы подключаем наш внешний кварцевый зонатор и будем тактироваться от 25 мегагерц. Как же сделать нам 84 мегагерца распроизводили, заявляет, что? Микроконтроллер может на такой частоте работать, а вот для этого есть так называемый ки. Эль Эль Фэйз Лоу, клуб Фазовая автоподстройка чистоты. Это специальная штука, с помощью которой мы программными методами, то есть написав некоторое. Количество кода можем повысить частоту тактирования ядра микроконтроллера с 25 мегагерц. У нас больше просто нету до 84 84 это максимум маленький нюанс. Не все периферийные модули микроконтуллера могут активировать от 84 мегагерц у. Некоторых четвергирование максимальное это 42 мегагерца, то есть в 2 раза меньше, чем 84 которые мы можем сделать с помощью п. Л. Л., с. п. л., и часа, и ч. С. е. мы познакомимся немножечко позже, на данный момент мы просто должны закрепить. Себе следующее, что есть 3 первичных источника тактирования, которые мы можем выбрать программными средствами для того, чтобы тактировать шины микроконтроллера. Конфигурирование, ну, собственно, можно конфигурировать микроконтроллер. С помощью программ, то есть написав, какое то количество кода, а можно использовать кубом икс, кубом икс. Это специальная утилита от разработчиков микроконтроллера ст. Майкроэлектроникс, которые можно установить на любую операционную. Систему и она предлагает вот такой, вот какой то графический интерфейс. В данном случае это интерфейс настройки частоты актирования микроконтроллера. Кроме этого, здесь можно настроить какие то ноги микроконтроллера на вход и на выход. Настроить модули протоколов, то есть это такая основа для программы База для будущей программы. То есть мы можем, по сути, напрограммировав мышкой в кавычках, какие то себе нужные вещи, например, включить АЦП, читать канал 1 раз там в. 2 Секунды, например, или еще что то такое сделать? Если кому то знакома, то раньше была такая среда программирования. Код Вижен Авр, и вот там можно было, по сути, сделать то же самое. Там был код Визард и Виар для того, чтобы вот. Запрограммировать мышкой, какие то базовые настройки микроконтроллера. Конечно же, за вас кубом Икс программа писать не будет. Логика работы вашей программы все равно остается на пользователя, на программисте, который пишет код, но тем не менее. Какая то вот такая вспомогательная штука есть, и разработчики ее, разумеется, бесплатно распространяют. Как же нам прошить наш с вами микроконтроллер? Вот мы с вами говорили, что на платье у нас есть разъем программатора и вот, собственно. Сам программатор Эстеллинг, в 2 который годится для программирования микроконтроллеров. Семейство СМ 8 и СтМ 32 стоит крайне недорого, и у него есть важная особенность. У него есть встроенный дебагер, то есть с помощью этого. Программатора можно одновременно и прошивать микроконтроля и добавить вашу программу стоит. У меня повторюсь очень, очень недорого, в отличие от, например, Дебагера для АВР микроконтроля, который стоит много тысяч рублей за 1000 р можно. Купить с десяток вот таких вот Эстелинк в 2 программаторов подключается он к микроконтролиру по 4 проводам. Разумеется, эта земля, разумеется, это вывод актирования св. сел Кей, и, разумеется, это вывод обмена данными СВ, а и о он может. Также называться СВД Айо Дейта Инпутал под питание, подключаем по желанию. Кстати, питать наш микроконтейн можно от ЮСБ порта или можно вот от вывода 3 и 3 Вольта или от вывода 5 вольт? А вот на Землю подключать обязательно, то есть. Как минимум нам нужно с вами 3 провода, гнд сви целка и СВД Айо. Иногда бывает, что программатор встроен прямо на плату, вот, например, плата неуклю, с которой мы с вами знакомились чуть чуть раньше, когда обсуждали классификацию СТМ 32. Микроконтроллеров, и вот у этой Нюкля есть встроенный программатор, то есть на свой нужен только ЮСБ провод. Тут микро ЮСБ, нам нужно только ЮСБ кабель, да у нас программатор сразу же прям встроенный в плату, а вопрос зачем тут такая? Странная перфорация, дело в том, что когда вы запрограммировали свой микроконтроллер и продаете свой товар свое изделие, вы можете программатор просто отломать и, собственно, продавать товар без программатора, чтобы никто не мог считать.
16:59 Вашу программу, разумеется, смогут подпаяться к ногам микроконтроллера. Как то прочитать его, но тем не менее это сложнее, чем просто вставить ЮСБ кабель в компьютер и в этот разъем поэтому. Вот есть даже встроенный программатор. Собственно, где же нам писать наш код, где же нам писать нашу программу? А есть выбор, есть выбор, разумеется, можно писать. В вижу, в студио Коут для этого. Нам нужно установить некоторое количество расширений утилита специальной для того, чтобы работать с программатором. Истерин КВ, 2 поэтому, может быть, это не очень удобно есть широко. Распространенный Кейл Микровижн, который использовался с незапамятных времен, он, разумеется, не предназначается только для программирования. Стоим 32 микроконтроллеров, это мощный редактор Кода. Это мощное ай ди Е, которая в том числе может программировать, а стоим 32 микроконтроллера. Но у нас с вами есть СтМ 32 Куба и д. е. от разработчиков микроконтроллера СМ 32, в нем есть встроенный. Кубом ИКС это не значит, что мы обязаны им пользоваться. Но как бы он есть, и это проприетарная среда разработки, то есть от тех же людей, которые делали микроконтроля, возможно, возможно. Она поудобнее иногда бывает, почему потому, что ее можно поставить на любую операционную систему. Кейла микровиш заставится только на Виндовс. Вижу, студио код требует дополнительных расширений. Там нужно думать, Стм 32 предназначается для программирования любых СМ 32. Микроконтроллеров включает в себя Кубы, микс включает в себя дебагер, он довольно неплохой, некоторые говорят. Что он похуже, чем в Келли, но тем не менее поэтому будем использовать именно СтМ 32 Кубой. Д. е. определились с платой, определились с программатором, определились со средой программирования. Вопрос как программировать стрем 32 микроконтроллера существуют 2 подхода, они называются Цейм СИС и называются Хал Цеймсиз. Жефровывается, как комман Майка Конторин, софт Вэр Интерфейс. Стендер, что это такое, это способ писать код с помощью регистров. Мы с вами уже привыкли к регистрам ВВР микроконтроллерах, и здесь тоже будут те же самые регистры, ну, разумеется, другие, но. Просто мы будем обращаться к бета определенных переменных, которые имеют фиксированный адрес в памяти программ микроконтроллера и будем изменять их состояние таким образом влиять на то, что. Делает микроконтоллер, как он себя ведет. Что такое Халл Хардвэр абстракшн Лэя? То есть это некоторый уровень абстракции над регистрами, это нечто вроде программирования Ардуина, то есть это. Набор функций их очень много, и в эти функции уже заложен весь функционал микроконтроллера. То есть мы с помощью этих функций можем включить таймер, настроить его, включить шим, запрограммировать? Ножки ввода вывода изменить состояние ножки ввода, вывода, настроить модуль протокола и так далее и так далее и так далее. То есть это некоторый уровень абстракции над тем, как микроконтроллер? На самом деле работает не спорю, ценности и, разумеется, тоже уровня абстракции. Микро, который оперирует Нулями и единицами, он открывает и закрывает транзисторы. Ну вот, у ЦМ СИС. Немножко уровень абстракции пониже, чем у хала, ну даже предков гораздо ниже, поэтому наш выбор см. СИС будем работать с регистрами микроконтроллера и знакомиться с тем, как микроконтроллер. Работает по настоящему, как он работает на своем, конечно, не нижнем уровне, но на уровне, скажем так, среднем. Ну что, мы вроде определились совсем, что нам нужно для того, чтобы программировать? У нас есть микроконтроллер, есть плата, есть программатор, есть способ программирования и есть среда программирования. Как же нам начать писать код для того, чтобы использовать Цейм СИС нам? Нужно скачать себе на компьютер некоторое количество файлов. При этом эти файлы должны лежать в папке проекта. Это довольно важное отличие от программирования АВР, если для программирования. Авр, нам нужно было установить на компьютер Аверджи Си и Авер Дуд Аверджи Си, чтобы писать код с помощью регистров АВР дует, чтобы общаться с программатором здесь, к сожалению, такого нет. Нам на компьютере нужен язык Си. Установлены, например, там просто Джи Си Си и нам на компьютере нужны файлы Сеймсиса. Для любого микроконтроллера семейства Стм 32 нам нужны вот эти вот 3. Файла Сэм Сис Компайлер, Сэм Сис, Джесси Си и Сэм Сис Вершин. Они нам нужны всегда для любого микроконтроллера. Я здесь привел ссылку на официальный канал ст. Майка Электроникс можно и вязать. Оттуда можно взять откуда угодно, еще они всегда лежат в открытом доступе. А вот дальше нам нужно определиться с тем, какой микро, который мы программируем, мы это знаем. Эф 400 пен ядро у. него кортекс, эм, 4 поэтому мы для нашего микроконтроллера берем вот эти вот файлы корцием, 4 корцием, фанк, корцием, инстер и так далее. Дальше очевидные файлы Стм 32 ф 401 ф 4 икс, икс и 2 файла. Систем все эти файлы берутся под конкретный микроконтроллер, какие файлы нам нужны. Можно опять таки прочитать либо на официальном репозитории ст. Макроэлектроникс, либо просто в интернете. Вбив смс и название своего микроконтроля и вот здесь в качестве примера я привела к ноку байдеера в котором у меня в папочке инк лежат все все все все все все вот эти вот файлы которые. Мы должны были скачать, мне просто нужно их добавить себе в проект, и пускай они там лежат. Файл Мэйн по прежнему будет 1 единственным. Разумеется, функция Мэйн будет 1 единственная, но вот. Эти файлы мне нужны для того, чтобы пользоваться регистрами. Вот, например, регистр Эр Си Си Ар, мы с ними познакомимся попозже. Но это вот пример регистра, мне нужно подключить сюда только 2. Заголовочных файла и стадиент Аш стандартный заголовочный файл, который не относится к микроконтроллеру, относятся к языку си и заголовочный файл Стм 32 ф 401 икс си, который вот у меня. Здесь лежит Стэнтри за 2 и в 401 Икс Си. А дело в том, что некоторые из этих файлов они подходят под целое семейство микроконтроллеров. Ну, очевидное название Икс Си очевидно, что на месте Икс. Может, стоять различные значения до Икс, Икс, Икс и так далее, поэтому мы должны просто в этом файле. Будем дальше раскомментировать, какую то штуку и подключить этот файл себе в проект.
25:19 На этом слайде я попытался привести граф зависимости тех этих файлов друг от друга. Итак, у нас с вами есть файл Сенсис Компайлер, который подключает в себя в. Кавычках подключает, разумеется, си Джи Си Си Си Точка Эйч. Дальше у нас с вами есть файлы Стадеинт, которые не относятся к микроконтроллеру, относятся к языку си. К нему подключается файл с определенными настройками нашего микропроцессора. Кор ЦМ 4 также Кор ЦМ 4 подключается в ЦМ сиском палят и Сэмси с Верши Кор ЦМ. 4 Кроме того, подключается в еще 3 файла, у которых в названии есть слово Кор. То есть процессор или ядро Сент Фанк Инстер и Синд дальше у нас с вами есть 2? Больших файла Стм 32 ф 401 Икс Си и Стм 32 ф 4 Икс Икс, то есть это файл более общий. Это под наш конкретный микроконтроллер к этому файлу подключаются еще 2. 1 Си файл, 1 Эйч, файл, набор этих файлов. Если у вас 1 микроконтуре скачивается 1 раз, и вы просто подключаете его в ваш проект, то есть просто копируете все эти. Файлы себе в проект и больше ни о чем думать не надо. Можно начинать программировать ничего себе на компьютер, ставить не нужно, просто этими файлами будет. Пользоваться ваш проект в Кубайде или в Кейле абсолютно те же самые файлы. Нам нужны для того, чтобы начать программировать СТМ 32 микроконтроллер на этом все.
Расшифровка сделана автоматически (Yandex SpeechKit) и может содержать ошибки в терминах.