Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Кармин Новиелло - Освоение STM32.pdf
Скачиваний:
2753
Добавлен:
23.09.2021
Размер:
47.68 Mб
Скачать

Введение в ассортимент микроконтроллеров STM32

21

1.2. Введение в микроконтроллеры STM32

STM32 – это широкий ряд микроконтроллеров, разделенных более чем на десять подсемейств, каждое со своими особенностями. ST запустила производство данного ассортимента на рынке в 2007 году, начиная с серии STM32F1, которая до сих пор все еще развивается. На рисунке 12 показана внутренняя матрица микроконтроллера STM32F103 – одного из самых распространенных микроконтроллеров STM3215. Все микроконтроллеры STM32 имеют ядро Cortex-M и некоторые отличительные функции от ST (например, ускоритель ART™ Accelerator). Внутренне каждый микроконтроллер состоит из ядра ЦПУ, статического ОЗУ, Flash-памяти, интерфейса отладки и различных других периферийных устройств. Некоторые микроконтроллеры предоставляют дополнительные типы памяти (EEPROM, CCM и т. д.), при этом постоянно растет целая линейка устройств, предназначенных для приложений с пониженным энергопотреблением.

Рисунок 12: Внутренняя матрица микроконтроллера STM32F103

Остальные параграфы данной главы познакомят читателя с микроконтроллерами STM32, предоставив полный обзор всех подсемейств STM32.

1.2.1. Преимущества ассортимента STM32….

Платформа STM32 обеспечивает несколько преимуществ для разработчиков встраиваемых систем. Данный параграф попытается резюмировать существенные из них.

Это микроконтроллеры на базе Cortex-M: это все еще непонятно тем из вас, кто является новичком для данной платформы. Выбор микроконтроллеров на базе Cortex-M гарантирует вам доступность на рынке нескольких инструментов для разработки ваших приложений. ARM стала своего рода стандартом во встроенном мире (это особенно верно для процессоров Cortex-A; в сегменте рынка Cortex-

15 Данная фотография взята с Zeptobars.com (https://zeptobars.com/en/read/open-microchip-asic-what-inside-II- msp430-pic-z80) – действительно фантастического блога. Его авторы растворяют (снимают защитный кожух) интегральные схемы в кислоте и публикуют изображения того, что находится внутри чипа. Мне нравятся эти изображения, поскольку они показывают, чего люди смогли достичь в электронике.

Введение в ассортимент микроконтроллеров STM32

22

M существует еще несколько хороших альтернатив: PIC, MSP430 и т. д.), а 50 миллиардов устройств, проданных в 2014 году, являются надежной гарантией того, что инвестирование в данную платформу является хорошим выбором.

Бесплатный инструментарий для процессоров на базе ARM: благодаря рас-

пространению процессоров на базе ARM можно работать с совершенно бесплатным инструментарием, не вкладывая много денег для того, чтобы начать работать с данной платформой, что чрезвычайно важно, если вы любитель или студент.

Повторное использование ноу-хау: STM32 – это довольно обширный ассорти-

мент, основанный на общем знаменателе: их основной платформе ядра ЦПУ. Это гарантирует, например, что приобретенные ноу-хау, работающие на имеющемся ЦПУ STM32Fx, могут быть легко применены к другим устройствам из того же семейства. Более того, работа с процессорами Cortex-M позволяет вам повторно использовать большую часть приобретенных навыков, если вы (или ваш начальник) решите перейти на микроконтроллеры Cortex-M других производителей (в теории).

Совместимость с выводами: большинство микроконтроллеров STM32 спроектированы так, чтобы быть совместимыми с их выводами в обширном ассортименте STM32. Это особенно верно для корпусов LQFP64-100, что является большим плюсом. Вы будете нести огромную ответственность за первоначальный выбор подходящего микроконтроллера для своего приложения, зная, что в конечном итоге вы можете перейти к другому семейству, если сочтете, что он не соответствует вашим потребностям.

Толерантность к 5В: большинство выводов STM32 устойчивы к 5 В. Это означает, что вы можете подключать другие устройства, не предусматривающие вводы/выводы (I/O) на 3,3 В, без использования преобразователей уровня (только если скорость не является ключевой для вашего приложения – преобразователь уровня всегда вводит паразитную емкость, которая снижает частоту коммутации).

32-разрядный микроконтроллер за 32 цента: STM32F0 – верный выбор, если вы хотите перейти с 8/16-разрядных микроконтроллеров на мощную и понятную платформу, сохраняя при этом сопоставимую целевую цену. Вы можете использовать ОСРВ, чтобы улучшить ваше приложение и написать гораздо лучший код.

Встроенный загрузчик: микроконтроллеры STM32 поставляются со встроенным загрузчиком, который позволяет перепрограммировать внутреннюю Flashпамять, используя некоторые коммуникационные периферийные устройства (USART, I²C и т. д.). Для некоторых из вас это не будет «убойной фичей», но это может значительно упростить работу для разрабатывающих устройства профессионалов.

1.2.2. ….И его недостатки

Данная книга не является брошюрой или документом, сделанным маркетологами. Автор также не является сотрудником ST и не имеет дело с ST. Так что справедливо будет сказать вам, что существуют некоторые подводные камни, касающиеся данной платформы.

Кривая обучения: кривая обучения STM32 может быть довольно крутой, особенно для неопытных пользователей. Если вы полный новичок в разработке встраиваемых систем, процесс изучения разработки приложений STM32 может

Введение в ассортимент микроконтроллеров STM32

23

быть очень неприятным. Несмотря на то, что ST проделывает огромную работу, пытаясь улучшить общую документацию и официальные библиотеки, с данной платформой все еще трудно иметь дело, и это стыд. Исторически сложилось так, что документация ST была не лучшей для неопытных людей, она была слишком загадочной и не имела четких примеров.

Отсутствие официальных инструментов: эта книга проведет читателя через процесс создания полноценного инструментария для платформы STM32. Тот факт, что ST не предоставляет официальную среду разработки (как, например, Microchip для своих микроконтроллеров), отталкивает многих людей от данной платформы. Это стратегическая ошибка, которую люди в ST должны всерьез учитывать.

Фрагментированная и разбросанная документация: ST активно работает над улучшением официальной документации для платформы STM32. Вы можете найти много достаточно больших технических описаний (datasheets) на веб-сайте ST, но по-прежнему не хватает хорошей документации, особенно для HAL. Последние версии CubeHAL предоставляют один или несколько файлов «CHM»16, которые автоматически генерируются из документации внутри исходного кода CubeHAL. Однако этих файлов недостаточно, чтобы начать программирование с помощью данной программной платформы, особенно если вы новичок в экоси-

стеме STM32 и мире Cortex-M.

«Глючный» HAL: к сожалению, официальный HAL от ST содержит несколько ошибок, и некоторые из них действительно серьезны и приводят в замеша-

тельство новичков. Например, во время написания данной книги я обнаружил ошибки в нескольких скриптах компоновщика17 (которые должны быть фундаментальными блоками HAL) и в некоторых критических процедурах, которые должны работать без проблем. На официальном форуме ST18 по крайней мере каждый день появляется новое сообщение об ошибках HAL, что может быть причиной огромного разочарования. ST активно работает над исправлением ошибок HAL, но, похоже, мы все еще далеки от «стабильного выпуска». Более того, их жизненный цикл выпуска программного обеспечения слишком стар и не подходит для тех времен, в которые мы живем: исправления ошибок повторно выпускаются через несколько месяцев, а иногда исправление обнажает больше проблем, чем сам глючный код. Компания ST должна серьезно подумать о том, чтобы меньше инвестировать в разработку следующей отладочной платы и больше в разработку достойного HAL для STM32, который в настоящее время не подходит для разработки оборудования. Я бы с уважением предложил выпустить весь HAL в сообществе для разработчиков, таком как github, и позволить сообществу помочь в исправлении ошибок. Это также значительно упростит процесс сообщения об ошибках, который теперь требуется для разбросанных сообщений на форуме ST. Очень жаль.

16 CHM-файл – это типовой формат файла Microsoft, используемый для распространения документации в формате HTML всего в одном файле. Они достаточно распространены в ОС Windows, и вы можете найти несколько хороших бесплатных инструментов для MacOS и Linux, чтобы прочитать их.

17https://community.st.com/s/question/0D50X00009XkfT1SAJ/suspected-error-in-stm32f334x8flashld-in- stm32cubef3-13

18 https://community.st.com/s/topic/0TO0X000000BSqSWAW/stm32-mcus