- Что такое STM32
- История появления
- Достоинства и недостатки STM32
- Энергонезависимая память
- Сравнение STM32 с Arduino
- Обзор продуктовых линеек
- Обвязка микроконтроллера
- Программное обеспечение для работы с контроллером
- Эмуляция работы устройства на микроконтроллере
- Среда разработки
- Динамическая индикация
- Семейства микроконтроллеров
- STM32 Discovery
- Языки программирования
- Программирование микроконтроллеров для начинающих
- Что потребуется для подключения STM32 к компьютеру
- Выбор микроконтроллера
- Прерывания
- Программирование в машинных кодах
- Необходимый набор программ
- Компиляция программы
- Таймеры
Что такое STM32
STM32 — это платформа на базе микроконтроллеров STMicroelectronics на базе процессора ARM, различных модулей и периферийных устройств, а также программных решений (IDE) для работы с оборудованием. Решения на базе stm активно используются благодаря производительности микроконтроллера, его удачной архитектуре, низкому энергопотреблению и невысокой цене. В настоящее время STM32 уже состоит из нескольких строк для различных целей.
История появления
Серия STM32 была выпущена в 2010 году. До этого STMicroelectronics выпускала уже 4 семейства микроконтроллеров на базе ARM, но они уступали по своим характеристикам. Контроллеры STM32 оказались оптимальными по свойствам и цене. Изначально их выпускали в 14 вариантах, которые были разделены на 2 группы: с тактовой частотой до 2 МГц и с частотой до 36 МГц. Программное обеспечение для обеих групп одинаковое, как и расположение модулей контакты. Первые продукты были построены со встроенной флеш-памятью 128 КБ и ОЗУ 20 КБ. Сейчас линейка значительно расширилась, появились новые представители с увеличенными значениями RAM и Flash памяти.
Достоинства и недостатки STM32
Основные преимущества:
- Низкая цена;
- Удобство использования;
- Широкий выбор сред разработки;
- Микросхемы взаимозаменяемы: при нехватке ресурсов микроконтроллера его можно заменить на более мощный без модификации схемы и самой платы;
- Высокая производительность;
- Удобная отладка микроконтроллера.
Растрескивание:
- Высокий порог входа;
- На данный момент нет большого количества литературы по STM32;
- Большинство созданных библиотек уже устарели, проще создать свои собственные.
Недостатки STM32 все же не позволяют микроконтроллеру стать заменой Arduino.
Энергонезависимая память
- Ты должен знать что. Рано или поздно вы достигнете уровня, когда вашему устройству придется запоминать некоторые данные, полученные во время работы, и, самое главное, запоминать эти данные даже после выключения питания. И вы должны знать, как работать с энергонезависимой памятью.
- это важно. Потому что у человека нехватка памяти — это безумие. Не доводите свои устройства до безумия.
Сравнение STM32 с Arduino
Сравнение STM32 с Arduino
По техническим характеристикам Ардуино проигрывает STM32. Тактовая частота микроконтроллеров Arduino ниже: 16 МГц по сравнению с 72 МГц STM32. Количество выводов GRIO в STM32 больше. Объем памяти STM32 также больше. Следует отметить, что STM32 совместим по выводам — нет необходимости менять плату для замены одного продукта на другой.
Но конкуренты не могут полностью заменить Arduino. В основном это связано с высоким порогом входа — для работы с STM32 нужна база. Платы Arduino более распространены, и если у пользователя возникнет проблема, вы можете найти решение на форумах. Кроме того, для Arduino созданы различные экраны и модули, расширяющие функциональность. Несмотря на преимущества, STM32 выигрывает по соотношению цена / качество.
Семейство микроконтроллеров STM32 отличается от конкурентов отличным поведением при температурах от -40C до +80 C. Высокая производительность не снижается, в отличие от Arduino. Вы также можете найти продукты, которые работают при температуре до 105 ° C.
Обзор продуктовых линеек
STM32L
Семейство STM32 включает широкий спектр продуктов, которые различаются объемом памяти, производительностью, потребляемой мощностью и другими характеристиками.
Серии STM32F-1, STM32F-2 и STM32L полностью совместимы. Каждая из серий имеет несколько десятков микросхем, которые легко заменяются другими продуктами. STM32F-1 был первой линией, его производительность была ограничена. По этой причине по характеристикам контроллеры быстро достигли продуктов семейств Stellaris и LPC17. Впоследствии был выпущен STM32F-2 с улучшенными характеристиками: тактовая частота достигла 120 МГц, он обладает высокой вычислительной мощностью, достигнутой благодаря новой технологии производства 90 нм. Линия STM32L представлена моделями, изготовленными по особому технологическому процессу. Потери на транзисторах минимальны, благодаря чему приборы показывают лучшие значения.
важно отметить, что линейные контроллеры STM32W не совместимы по выводам с STM32F-1, STM32F-2 и STM32L. Причина в том, что линия была разработана компанией, которая поставляла RF деталь. Это наложило ограничения на развитие ST.
STM32F100R4
Микросхема STM32F100R4 имеет минимальный набор функций. Объем флэш-памяти — 16 КБ, ОЗУ — 4 КБ, тактовая частота — 12 МГц.Если вам нужно более быстрое устройство с большим объемом флэш-памяти до 128 КБ, это подойдет STM32F101RB. Интерфейс USB доступен для продукта STM32F103RE. Есть аналогичное устройство, но с меньшим энергопотреблением — это STM32L151RB.
Обвязка микроконтроллера
- Ты должен знать что. Человек, создающий устройства на микроконтроллерах, больше похож на программиста, чем на инженера-электронщика. Поскольку действия, ранее выполнявшиеся электронными компонентами, выполняются программой в устройстве на микроконтроллере. Все-таки без электроники не обойтись. Вы должны знать хотя бы основные электронные компоненты, которые подключаются к микроконтроллеру.
- это важно. Потому что без этого нельзя сделать надежное устройство.
Программное обеспечение для работы с контроллером
Keil Vision 4
Многие среды разработки были разработаны для архитектуры ARM. Самые известные и дорогие инструменты — это Keil и IAR System. Программы этих компаний предлагают самые современные инструменты для оптимизации кода. Кроме того, существуют различные системы: стек USB, стек TCP / IP и другие. Используя системы Keil, пользователь получает техническую поддержку на хорошем уровне.
Также для STM32 используется среда разработки Eclipse и построенные на ней системы Atollic TrueStudio (платно) и CooCox IDE (CoIDE) (бесплатно). Обычно используется последний. Его преимущества перед другими средами разработки:
- Бесплатно программное обеспечение;
- Удобство использования;
- Есть много примеров, доступных для загрузки.
Единственный недостаток CooCox IDE — сборка доступна только для Windows.
Эмуляция работы устройства на микроконтроллере
- Ты должен знать что. Обратите внимание, что существуют компьютерные программы, позволяющие моделировать работу устройства на микроконтроллере.
- это важно. Потому что смоделировать работу вашего будущего устройства на компьютере намного проще и быстрее, чем триста раз перепрошивать микроконтроллер и перепаять схему.
Среда разработки
Я уже говорил об этом. Вы можете освежить свою память здесь или здесь.
- Ты должен знать что. Потому что среда разработки — это ваш рабочий инструмент. Любой профессионал должен свободно владеть инструментом.
- это важно. Потому что качество работы профессионала, а также сроки действий зависят от уровня компетенции в инструменте.
Динамическая индикация
- Ты должен знать что. Ввод-вывод — это основа программирования. Пользователь должен ввести данные и получить информацию с устройства. Но представьте себе домофон. На клавиатуре будет не менее 12 кнопок. Так? Должен ли микроконтроллер иметь не менее 12 входов? Или просмотрите информацию на двух семисегментных дисплеях (2×7 = 14 сегментов). А что, у микроконтроллера должно быть не менее 14 выходов? Что делать, если вам нужно просмотреть данные по 4 из этих индикаторов? На самом деле есть решения, позволяющие решить эти проблемы более экономично.
- это важно. Ведь информационное наполнение — одно из конкурентных преимуществ вашего устройства. Если вы не знаете, как получать данные от пользователя и четко просматривать данные для него, ваше устройство никому не понадобится.
Семейства микроконтроллеров
Наиболее распространены микроконтроллеры следующих семейств:
- MSP430 (TI);
- ARM (ARM Limited);
- MCS 51 (INTEL);
- СТМБ (STMicroelectronics);
- ПОС (микрочип);
- АВР (Атмель);
- RL78 (Renesas Elettronica).
Одними из самых популярных в электронной промышленности являются продукты Atmel на основе RISC. Первые микросхемы, разработанные в 1995 году, относятся к группе Classic. Научиться программировать микроконтроллеры AVR новичкам рекомендуется на более современных моделях:
- Mega — это семейство мощных микросхем с продвинутой архитектурой.
- Small — это дешевые восьмиконтактные изделия.
Следует помнить, что совместимость систем образования сохраняется только при переводе программы с малоэффективного МК на более мощный.
Продукция компании Atmel проста и понятна. Однако, чтобы использовать все функции, вам потребуется разработать программное обеспечение. Начать программирование микроконтроллеров AVR для начинающих рекомендуется с загрузки специализированной среды Atmel Studio. Актуальная версия предоставляется бесплатно с официального сайта производителя. Никаких дополнительных программных компонентов для разработки программного обеспечения в этой среде не требуется.
Комплекс Atmel Studio включает огромное количество примеров готовых проектов. Это поможет новичку быстро освоить основные функции и приступить к созданию собственных программ. Также он содержит модули для компиляции и окончательной отладки кода. Параллельно с его овладением необходимо изучать языки программирования. Без них невозможно разработать программное обеспечение.
STM32 Discovery
STM32 Открытие
лучше всего начать изучение микроконтроллера STM32 с платы Discovery. Это связано с тем, что у этой карты есть встроенный программатор. Его можно подключить к компьютеру через USB-кабель и использовать как программируемый микроконтроллер, так и для внешних устройств. Плата Discovery имеет полную распиновку от контроллера до контактов платы. К плате можно подключить различные датчики, микрофоны и другую периферию.
Языки программирования
По своей структуре языки программирования микроконтроллеров мало отличаются от языков персональных компьютеров. Среди них есть группы низкого и высокого уровня. Современные программисты в основном используют C / C ++ и Ассемблер. Среди приверженцев этих языков ведутся бесконечные споры о том, какой из них лучше.
Ассемблер низкого уровня в последнее время сдает позиции. Он использует прямые инструкции, направленные непосредственно на чип. Поэтому от программиста требуется безупречное знание команд процессорной системы. Написание программного обеспечения на Ассемблере занимает много времени. Главное достоинство языка — высокая скорость выполнения готовой программы.
Фактически, можно использовать практически любой язык программирования микроконтроллеров. Но самый популярный из всех — C / C ++. Это язык высокого уровня, позволяющий работать с максимальным комфортом. Кроме того, создатели C приняли участие в разработке архитектуры AVR. Поэтому микросхемы производства «Атмел» специально адаптированы под этот язык.
C / C ++ — это гармоничное сочетание низкоуровневых и высокоуровневых возможностей. Таким образом, вы можете встроить ассемблерные вставки в свой код. Готовый программный продукт легко читать и редактировать. Скорость разработки довольно высока. В этом случае тщательное изучение архитектуры МК и набора команд ЦП не требуется. Компиляторы C поставляются с большими библиотеками, которые упрощают работу программиста.
Следует отметить, что выбор оптимального языка программирования также зависит от оборудования. При небольшом объеме ОЗУ использование высокоуровневого C. В этом случае больше подходит Ассемблер. Обеспечивает максимальную производительность за счет короткого программного кода. Универсальной среды программирования не существует, но большинство бесплатных и коммерческих приложений могут использовать как Assembler, так и C / C++.
Читайте также: Обозначение резисторов на схеме: как выглядит и для чего нужен в электрической цепи
Программирование микроконтроллеров для начинающих
Освоение программирования микроконтроллеров новичкам рекомендуется начинать с изучения архитектуры и разновидностей. Промышленность выпускает следующие виды МК:
- интегрированный;
- 8, 16 и 32 бит
- цифровые сигнальные процессоры.
Производители микроконтроллеров должны постоянно балансировать размер продукта, мощность и цену. Таким образом, 8-битные модели используются до сих пор. У них довольно низкая урожайность, но во многих случаях этот факт является преимуществом, поскольку позволяет экономить энергию. Цифровые сигнальные процессоры способны обрабатывать большие потоки данных в реальном времени. Однако стоимость их намного выше.
Количество используемых кодов операций может не совпадать. Поэтому используются системы управления RISC и CISC. Первый считается сокращенным и выполняется за один цикл генератора. Это позволяет упростить аппаратную реализацию ЦП, повысить производительность микросхемы. CISC — это сложная система, способная значительно повысить эффективность устройства.
невозможно научиться программированию микроконтроллеров для новичков без понимания алгоритмов. На ЦП микросхемы команды отправляются в определенном порядке. Кроме того, их структура должна однозначно восприниматься процессором. Поэтому программист сначала набирает последовательность выполнения команд. Вы можете заставить ЦП немедленно остановить вашу программу, вызвав прерывание. Для этого используются внешние сигналы или встроенные периферийные устройства.
Что потребуется для подключения STM32 к компьютеру
Для начала вам потребуются следующие компоненты:
- Та же самая плата STM32 Discovery;
- Паспорт выбранной модели;
- Справочное руководство по микроконтроллеру;
- Среда разработки установлена на компьютере.
Например, первая программа будет рассматриваться в IDE CooCox.
Выбор микроконтроллера
Я уже вкратце говорил об этом раньше. Вот еще немного подробностей.
- Ты должен знать что. Потому что необходимо понимать, на каких характеристиках основан микроконтроллер. А также почему мы выбираем того или иного производителя, или то или иное семейство микроконтроллеров.
- это важно. Потому что после того, как вы выбрали производителя и / или семейство микроконтроллеров, вы никогда не захотите его менять. Поскольку вы уже привыкнете к среде разработки, вы узнаете набор команд, принципы работы с портами ввода-вывода и т.д. И не будет ни времени, ни желания переучиваться.
Прерывания
- Ты должен знать что. Когда я учился в колледже, нас пугали словом «отвлекающие». И если студент НЕ использовал перерывы в курсе программирования или тесте, оценка сразу же снижалась на один балл. На самом деле это не так уж и страшно. Особенно, если об этом говорят понятным языком с хорошими примерами.
- это важно. Потому что практически все серьезные устройства отслеживают какие-то события, реакция на которые должна быть мгновенной. Ну, например, если срабатывает пожарный извещатель, ваше устройство должно немедленно сообщить об этом, а не ждать окончания цикла в вашем расписании. Для этих целей используются прерывания.
Программирование в машинных кодах
- Ты должен знать что. По крайней мере, в общих чертах. Потому что профессионалу нужно понимать, как работает микроконтроллер.
- это важно. Потому что это превращает любителя в профессионала.
Необходимый набор программ
Есть много полезных и удобных программ для программирования МК. Они могут быть как платными, так и бесплатными. Среди них можно выделить три основных:
- Атмель Студия
- CodeVisionAVR
- WinAVR
Все эти программы относятся к IDE — Integrated Development Environment — интегрированной среде разработки. В них вы можете писать код, компилировать и отлаживать его.
Обратите внимание на Code Vision AVR. Эта IDE упрощает и ускоряет кодирование. Однако программа платная.
На начальном этапе программирования лучше всего писать все программы вручную, без упрощений. Это поможет вам быстро получить необходимые навыки, а в будущем будет полезно понимать и изменять код, написанный кем-то другим, в соответствии с вашими потребностями. Поэтому рекомендую использовать программу Atmel Studio. Во-первых, он абсолютно бесплатный и постоянно обновляется, во-вторых, его разработала компания, выпускающая микроконтроллеры, на которых мы будем учиться программировать.
Компиляция программы
Написанный нами код C еще не понятен микроконтроллеру, так как MCU понимает команды только в двоичной (или шестнадцатеричной) системе, которая представляет собой набор нулей и единиц. Поэтому код C-шный необходимо преобразовать в нули и единицы. Для этого используется специальная программа, называемая компилятором, а сам процесс преобразования кода называется компиляцией.
Впоследствии скомпилированный и готовый код нужно вставить в микроконтроллер, а точнее записать в память микроконтроллера, или, проще говоря, микроконтроллер нужно прошить.
Для прошивки МК используется устройство, называемое программатором. В зависимости от типа программатора, его вход подключается к COM- или USB-порту, а его выход — к определенным контактам микроконтроллера.
Существует большой выбор программаторов и отладочных плат, но нам подойдет простейший программатор USBASP, который стоит не более 3 долларов в китайских долларах .
После прошивки микроконтроллера программа отлаживается и тестируется на реальном устройстве или, как говорится, на железе».
А теперь подведем итоги этапов программирования микроконтроллера.
При написании простых программ можно обойтись без второго пункта, то есть без отработки алгоритма на бумаге достаточно иметь его в виду.
Следует отметить, что отладка и тестирование программы проводится еще до прошивки МК.
Таймеры
- Ты должен знать что. Сложно представить современный прибор, в котором обратный отсчет не ведется в том или ином виде. Следовательно, нужно уметь работать с таймерами.
- это важно. Потому что умные устройства должны уметь ориентироваться не только в пространстве, но и во времени.