Datasheet
Datasheet содержит в себе информацию о наличии определенной периферии в конкретном МК, цоколевке, электрических характеристиках и маркировке чипов для STM32F103x8 и STM32F103xB, то есть для вот этих, которые обведены красным прямоугольником:
Некисло, один даташит на 8 микроконтроллеров.
Основное в Datasheet-е
В первую очередь нужно обратить внимание на раздел 7. Ordering information scheme, в котором указано, то обозначает каждый символ в маркировке. Например, для STM32F103C8T6: корпус LQFP-48, 64Кб flash-а, температурный диапазон –40 to 85 °C
Далее 2.1 Device overview. В нем есть таблица, в которой сказано, какая периферия есть в конкретном микроконтроллере и в каком количестве:
Основное различие между микроконтроллерами из разных колонок в количестве ножек и объеме флеша, остальное все одинаково. Небольшое исключение составляет первая колонка версий Tx: в этих микроконтроллерах поменьше модулей SPI, I2C и USART-ов. Нумерация периферии идет с единицы: то есть, если в STM32F103Cx у нас 2 SPI, то они имеют имена SPI1 и SPI2, а в STM32F103Tx у нас только SPI1. Так как Datasheet у нас на микроконтроллеры STM32F103x8 и STM32F103xB, то эта таблица справедлива только для этих моделей. К примеру STM32F103C8 или STM32F103CB соответствуют этой таблице, а STM32F103C6 нет, для него есть отдельный даташит.
В разделе 2.2 Full compatibility throughout the family говорится о том, что устройства STM32F103xx являются программно, функционально и pin-to-pin (для одинаковых корпусов) совместимыми.
В reference manual-е есть разделение на следующие «виды» микроконтроллеров: STM32F103x4 и STM32F103x6 обозначены как low-density devices, STM32F103x8 и STM32F103xB как medium-density devices, STM32F103xC, STM32F103xD и STM32F103xE как high-density devices. В устройствах Low-density devices меньше Flash и RAM памяти, таймеров и периферийных устройств. High-density devices имеют больший объем Flash и RAM памяти, а так же имеют дополнительную периферию, такую как SDIO, FSMC, I2S и DAC, при этом оставаясь полностью совместимыми с другими представителями семейства STM32F103xx. То есть, если на каком-то этапе разработки стало ясно, что выбранного микроконтроллера не хватает для реализации всех возможностей, то можно безболезненно выбрать более навороченный камень без необходимости переписывать весь существующий софт, при этом, если новый камень будет в том же корпусе, то отпадает необходимость заново разводить печатную плату.
Что такое STM32
STM32 – это платформа, в основе которой лежат микроконтроллеры STMicroelectronics на базе ARM процессора, различные модули и периферия, а также программные решения (IDE) для работы с железом. Решения на базе stm активно используются благодаря производительности микроконтроллера, его удачной архитектуре, малом энергопотреблении, небольшой цене. В настоящее время STM32 состоит уже из нескольких линеек для самых разных предназначений.
История появления
Серия STM32 была выпущена в 2010 году. До этого компанией STMicroelectronics уже выпускались 4 семейства микроконтроллеров на базе ARM, но они были хуже по своим характеристикам. Контроллеры STM32 получились оптимальными по свойствам и цене. Изначально они выпускались в 14 вариантах, которые были разделены на 2 группы – с тактовой частотой до 2 МГц и с частотой до 36 МГц. Программное обеспечение у обеих групп одинаковое, как и расположение контактов. Первые изделия выпускались со встроенной флеш-памятью 128 кбайт и ОЗУ 20 кбайт. Сейчас линейка существенно расширилась, появились новые представители с повышенными значениями ОЗУ и Flash памяти.
Достоинства и недостатки STM32
Основные преимущества:
- Низкая стоимость;
- Удобство использования;
- Большой выбор сред разработки;
- Чипы взаимозаменяемы – если не хватает ресурсов одного микроконтроллера, его можно заменить на более мощной, не меняя самой схемы и платы;
- Высокая производительность;
- Удобная отладка микроконтроллера.
Недостатки:
- Высокий порог вхождения;
- На данный момент не так много литературы по STM32;
- Большинство созданных библиотек уже устарели, проще создавать свои собственные.
Минусы STM32 не дают пока микроконтроллеру стать заменой Ардуино.
Обзор продуктовых линеек
STM32L
Семейство STM32 имеет широкий ассортимент изделий, различающихся по объему памяти, производительности, потреблению энергии и другим характеристикам.
Серии STM32F-1, STM32F-2 и STM32L полностью совместимы. Каждая из серий имеет десятки микросхем, которые можно без труда поменять на другие изделия. STM32F-1 была первой линейкой, ее производительность была ограничена. Из-за этого по характеристикам контроллеры быстро догнали изделия семейства Stellaris и LPC17. Позднее была выпущена STM32F-2 с улучшенными характеристиками – тактовая частота достигала 120 МГц. Отличается высокой процессорной мощностью, которая достигнута благодаря новой технологии производства 90 нм. Линейка STM32L представлена моделями, которые изготовлены по специальному технологическому процессу. Утечки транзисторов минимальны, благодаря чему приборы показывают лучшие значения.
Важно отметить, что контроллеры линейки STM32W не имеют pin-to-pin совместимости с STM32F-1, STM32F-2 и STM32L. Причина заключается в том, что линейку разрабатывала компания, которая предоставила радиочастотную часть
Это наложило ограничения на разработку для компании ST.
STM32F100R4
Микросхема STM32F100R4 имеет минимальный набор функций. Объем флэш памяти составляет 16 Кбайт, ОЗУ – 4 Кбайт, тактовая частота составляет 12 МГц. Если требуется более быстрое устройство с увеличенным объемом флэш-памяти до 128 Кбайт, подойдет STM32F101RB. USB интерфейс имеется у изделия STM32F103RE. Существует аналогичное устройство, но с более низким потреблением – это STM32L151RB.
Основные возможности TrueStudio
Программная платформа. TrueStudio является полноценной интегрированной средой разработки встраиваемого ПО для микроконтроллеров STM32 (рисунок 8). Внешне TrueStudio чрезвычайно похожа на AC6 System Workbench. Это не удивительно, так как обе среды используют платформу Eclipse. Сходство на этом не заканчивается. В основе TrueStudio лежат те же открытые проекты компилятора GCC и отладчика GDB.
Рис. 8. Интерфейс TrueStudio
Поддерживаемые микроконтроллеры. TrueStudio работает только с STM32 и поддерживает все микроконтроллеры семейства. Кроме того, в TrueStudio есть поддержка большинства плат от STMicroelectronics. Пользователь может открыть готовые демонстрационные проекты без скачивания каких-либо дополнительных файлов.
Работа с проектами. TrueStudio позволяет создавать и редактировать проекты, написанные на С/С++. Существует возможность создания дерева проектов, что весьма удобно при параллельной работе с несколькими приложениями.
Работа с файлами. TrueStudio предлагает к услугам пользователей стандартный набор инструментов для работы с С/С++-файлами: поиск, интерактивный поиск, контекстную подсветку, шаблоны, дерево функций и т.д.
Компиляция и построение проекта. Как было сказано выше, TrueStudio использует GCC для компиляции проекта. При этом возможна оптимизация кода в процессе компиляции.
TrueStudio дает пользователям возможность ручного размещения кода и данных в памяти микроконтроллера.
Программа обеспечивает формирование исполнительного кода в различных форматах, а также позволяет создавать статические библиотеки, что значительно экономит время на перекомпиляцию.
Отладка. TrueStudio поддерживает работу с использованием всех популярных отладчиков, в том числе, ST-Link, SEGGER, P&E micro и др.
Среда имеет поддержку точек останова и пошагового выполнения. В процессе отладки программист получает доступ ко всем регистрам и памяти. Кроме того к услугам пользователя также предлагаются различные анализаторы (памяти, стека, ошибок).
Стоит отметить, что процесс отладки в TrueStudio мало чем отличается от работы с другими аналогичными средами.
Поддержка систем контроля версий. TrueStudio обеспечивает одновременную работу нескольких пользователей над проектом за счет поддержки систем контроля версий: CVS, SVN, Git.
Взаимодействие с STM32Cube. Как было сказано выше, применение STM32Cube значительно упрощает работу программистов на этапе инициализации микроконтроллеров. Поэтому возможность совместной работы с STM32Cube является очень большим плюсом для TrueStudio.
STM32Cube позволяет создавать готовый проект TrueStudio с генерацией структуры проекта, автоматическим формированием исходников, включением всех необходимых директив.
Небольшой проект, демонстрирующий взаимодействие STM32Cube и TrueStudio, представлен в видеоролике, дополняющем данную статью. В этом проекте STM32Cube используется для настройки таймера TIM4, выходные каналы которого управляют яркостью светодиода с помощью ШИМ. Отладка выполняется с помощью TrueStudio и платы STM32F4DISCOVERY.
Программное обеспечение для работы с контроллером
Для ARM архитектуры разработано множество сред разработки. К самым известным и дорогостоящим относятся инструменты фирм Keil и IAR System. Программы этих компаний предлагают самые продвинутые инструментарии для оптимизации кода. Также дополнительно существуют различные системы – USB стеки, TCP/IP-стеки и прочие. Применяя системы Keil, пользователь получает хороший уровень технической поддержки.
Также для STM32 используется среда разработки Eclipse и построенные на ней системы Atollic TrueStudio (платная) и CooCox IDE (CoIDE) (бесплатная). Обычно используется последняя. Ее преимущества перед другими средами разработки:
- Свободно распространяемое программное обеспечение;
- Удобство использования;
- Имеется много примеров, которые можно загрузить.
Единственный недостаток среды разработки CooCox IDE – сборка есть только под Windows.
История
ST была образована в 1987 году в результате слияния двух государственных полупроводниковых компаний: SGS Microelettronica (Società Generale Semiconduttori) из Италии и Thomson Semiconducteurs, полупроводникового подразделения французской компании. Томсон:
SGS Microelettronica возникла в 1972 году в результате предыдущего слияния двух компаний:
- ATES (Aquila Tubi e Semiconduttori), производитель электронных ламп и полупроводников со штаб-квартирой в Abruzzese город Л’Акуила, который в 1961 году изменил свое название на Azienda Tecnica ed Elettronica del Sud и переместил производство на окраину сицилийского города Катания
- Società Generale Semiconduttori (основано в 1957 г. Адриано Оливетти).
Thomson Semiconducteurs была создана в 1982 году в результате широкомасштабной национализации промышленности французским правительством. В него вошли:
- полупроводниковая деятельность французской электронной компании Томсон.
- в 1985 году купил Mostek, американская компания, основанная в 1969 году как дочерняя компания Инструменты Техаса, от United Technologies.
- Silec, основанная в 1977 году.
- Евротехника, основанная в 1979 г. Руссе, Буш-дю-Рон как совместное предприятие между Сен-Гобен Франции и США National Semiconductor.
- EFCIS, основанная в 1977 году.
- SESCOSEM, основанная в 1969 году.
На момент слияния компания называлась SGS-THOMSON, но получила свое нынешнее название в мае 1998 года после продажи Thomson своих акций. После своего создания ST заняла 14-е место среди 20 ведущих поставщиков полупроводников с объемом продаж около 850 миллионов долларов США. Компания участвовала в консолидации полупроводниковой промышленности с момента ее образования, включая приобретения:
- В 1989 году британская компания Inmos известен своим транспьютер микропроцессоры от родителей Торн EMI.
- В 1994 году канадская NortelПолупроводниковая деятельность.
- В 2002 году подразделение Alcatel Microelectronics, которое наряду с созданием небольших предприятий, таких как британская компания Synad Ltd, помогло компании выйти на рынок беспроводных локальных сетей.
- В 2007 г. в США Микрочип Genesis. Genesis Microchip известна своей мощью в области технологий обработки видео (Фаруджа) и имеет дизайнерские центры, расположенные в г. Санта-Клара, Торонто, Тайбэй, Тайвань R.O.C. и Бангалор.
8 декабря 1994 г. компания завершила первичное публичное размещение акций на Парижской и Нью-Йорк фондовые биржи. Владелец Thomson SA продал свою долю в компании в 1998 году, когда компания также котировалась на Borsa Italiana в Милан.
В 2002, Motorola и TSMC присоединился к ST и Philips в новом технологическом партнерстве. Crolles2 Alliance был создан с новым 12-дюймовым вафля производственный объект, расположенный в Crolles (Франция).
К 2005 году ST занял пятое место, уступив Intel, Samsung, Инструменты Техаса и Toshiba, но впереди Infineon, Renesas, NEC, NXP, и Freescale. Компания была крупнейшим европейским поставщиком полупроводников, опережая Infineon и NXP.
В начале 2007 г. NXP (ранее Philips Semiconductors) и Freescale (ранее Motorola Semiconductors) решили прекратить свое участие в Crolles2 Alliance. По условиям соглашения срок действия альянса истек 31 декабря 2007 года.
22 мая 2007 г. ST и Intel создали совместное предприятие по разработке приложения памяти под названием Нумоникс. Эта новая компания объединила деятельность ST и Intel Flash Memory.
Консолидация рынка полупроводников продолжилась с ST и NXP объявляют 10 апреля 2008 г. о создании нового совместного предприятия, занимающегося мобильной связью, при этом ST будет владеть 80% новой компании, а NXP — 20%. Это совместное предприятие было создано 20 августа 2008 года.
10 февраля 2009 г. ST Ericssonбыло создано совместное предприятие ST-NXP Wireless и Ericsson Mobile Platforms.
В 2011 году ST объявила о создании совместной лаборатории с Школа перспективных исследований Сант’Анна. Лаборатория сосредоточится на исследованиях и инновациях в области биоробототехники, интеллектуальных систем и микроэлектроники. Прошлое сотрудничество с Школой перспективных исследований Сант’Анна включало DustBot, платформу, которая интегрировала самоуправляемых «сервисных роботов» для сбора мусора.
ST Ericsson был многонациональным производителем беспроводной продукты и полупроводники, поставки производителям мобильных устройств. ST-Ericsson было совместным предприятием 50/50 Ericsson и STMicroelectronics, созданная 3 февраля 2009 г. и распущенная 2 августа 2013 г. Женева, Швейцария, это был басни компания, аутсорсинг производство полупроводников литейным предприятиям.
Немного истории
Хронология разработки наших технологий имеет следующие этапы:
- 1974 год – образована фирма StM Stein-Moser GmbH.
- 1992 год – была разработана самая первая система гидроабразивной резки.
- 1999 год – основание Maximator JET GmbH.
- 2000 год – начало сотрудничества с Maximator JET GmbH.
- 2017 год – появление фирмы StM Waterjet GmbH.
- 2018 год – регистрация компании StM Swiss AG.
Итогом этого многолетнего пути стала совместная работа StM и Maximator JET, благодаря которой мы выпускаем уникальные роботизированные гидроабразивные комплексы, не имеющие мировых аналогов. На сегодняшний день StM и Maximator JET – это:
- 3 зарегистрированных ноу-хау в сфере 6-ти осевой гидроабразивной резки;
- более 3 000 кв.м. производственных площадей;
- оборудование, работающее более, чем 20 странах.
Системы гидроабразивной резки StM
Модульные системы производства StM-Waterjet позволяют экономить затраты и пространство. Любая система имеет три способа резки: чистой водой, абразивом, комбинированный вариант. При этом возможна параллельная резка с использованием до 12 режущих головок одновременно.
PremiumCut / PremiumCut IFC – неограниченные возможности резки.
- высокая производительность;
- высокая точность и скорость резки;
- возможность модернизации и расширения комплектации;
- несколько режущих головок;
- три угла резки: до 12, до 48, до 68 градусов;
- низкое энергопотребление;
- несколько осей Z;
- 2D/3D резка, угловая компенсация ошибок.
MasterCut – универсальная система для работы повышенной сложности.
- легкая настройка;
- повышенная точность работы;
- возможность модернизации и расширения комплектации;
- опытные пользователи, 1-2 операции;
- несколько режущих головок;
- 2D резка, угловая компенсация ошибок (модели от 2019 года);
- низкое энергопотребление.
EcoCut – младшая модель в линейке оборудования для профессиональной резки
- не требует серьезного комплексного обслуживания;
- отличное соотношение цены и качества;
- стандартные пользователи, 0,5-1 операции;
- возможность модернизации и расширения комплектации;
- 2D резка;
- низкое энергопотребление.
StM Cube – система с высочайшим уровнем безопасности.
- специальная капсула обеспечивает защиту от шума, брызг, еще большую безопасность и удобство работы;
- компактность;
- опытные пользователи, 1-2 операции;
- возможность модернизации и расширения комплектации;
- 2D резка, угловая компенсация ошибок (модели от 2019 года);
- несколько режущих головок;
- несколько осей Z.
MicroCut MJ/V1 – высочайшая точность и деликатная резка.
- сверхвысокая точность резки;
- резка сложных и деликатных компонентов;
- компактные размеры;
- уникальная технология режущей головки.
- универсальная – подходит для всех типов оборудования StM;
- эффективная;
- экологически чистая.
Специализированное программное обеспечение STM SmartCut для гидроабразивной резки.
Представляет собой программу для: настройки параметров рабочего процесса, импорта чертежей и общего управления оборудованием. Простота программы позволяет использовать ее как профессионалам, так и начинающим пользователям.
Сделано в Австрии
Все наше оборудование производится в Австрии и Германии. Это гарантирует высочайшие стандарты качества сборки и работы оборудования, оперативное внедрение инноваций и производственных решений. Мы проводим исследования совместно с Институтом Фраунгофера и рядом европейских университетов.
Цель нашей деятельности – обеспечить лучший сервис во всех отраслях.
Все комплектующие, узлы и механизмы нашего оборудования отвечают требованиям качества, надежности и экономической эффективности. Они изготавливаются из износостойкой нержавеющей стали или алюминия. Наши клиенты вместе с оборудованием приобретают передовые технологии, непревзойденное качество, высочайший уровень индивидуального обслуживания и долгосрочные партнерские отношения.
Первая программа
CooCox CoIDE
Обучение следует начинать с простейшего – с Hello World. Для начала нужно установить CooCox IDE на компьютер. Установка стандартная:
- Скачивается программа с официального сайта;
- Там нужно ввести адрес своей электронной почты и начать загрузку файла с расширением .exe;
- Нужно открыть CooCox IDE вкладку Project, Select Toolchain Path;
- Указать путь к файлу;
- Снова открыть среду разработки и нажать View -> Configuration на вкладку Debugger;
- Теперь можно записывать программу.
Когда программа установлена, ее нужно открыть. Следует перейти во вкладку Browse in Repository и выбрать ST – свой микроконтроллер.
Далее на экране появится список библиотек, которые можно подключить. Для первой программы потребуются системные CMSIS core и CMSIS Boot, библиотека для работы с системой тактирования RCC, GPIO для работами с пинами.
Сама программа пишется как и для Ардуино, нужно знать основы языка Си.
В окошке Project следует открыть main.c. В коде в самом начале следует подключить библиотеки кроме CMSIS (они уже автоматически подключены). Добавляются они следующим образом:
#include "stm32f10x_gpio.h" #include "stm32f10x_rcc.h". //Для мигания светодиодом нужно задать задержку: void Delay(int i) { for (; i != 0; i--); }
Затем добавляется тактирование порта в главной функции main. Какой контакт за что ответственен, можно просмотреть в даташите к микроконтроллеру.
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC , ENABLE);
Для настройки параметров выводов следует прописать ее название и поставить точку. Во всплывающем меню будут указаны все характеристики. Их можно исправлять.
После этого нужно сделать зацикливание в while, чтобы светодиод мигал, пока не отключится питание.
Когда программа написана, ее можно загружать в контроллер. Если есть отладочная плата, ее нужно подключить через USB кабель и нажать Download Code To Flash. Если плата отсутствует, потребуется переходник, который нужно подключить к порту компьютера. Контакт BOOT 0 подключается к плюсу питания контроллера, а затем включается само питание МК. После этого начнется прошивка.
Чтобы загрузить программу в микроконтроллер, нужно следовать указаниям от приложения. Сначала прописывается код порта, к которому подключен микроконтроллер. Также указывается скорость. Советуется брать небольшое значение, чтобы не было сбоев. Программа найдет микроконтроллер, и нужно будет нажать кнопку «далее». Во вкладке Download to device нужно в поле Download from file выбрать написанную программу и нажать «далее».
После этого нужно отключить питание контроллера STM32, закрыть Flash Loader Demonstrator, выключить переходник. Теперь можно снова включить микроконтроллер в обычном режиме. Когда программа будет загружена, светодиод начнет мигать.
Работа в других программах проходит подобным образом. Также выбираются нужные библиотеки, и прописывается код. У платных утилит функционал больше, и можно создавать более сложные проекты.
Сравнение STM32 с Arduino
Сравнение STM32 с Arduino
По техническим характеристикам Ардуино проигрывает STM32. Тактовая частота микроконтроллеров Ардуино ниже – 16 МГц против 72 МГц STM32. Количество выводов GRIO у STM32 больше. Объем памяти у STM32 также выше. Нельзя не отметить pin-to-pin совместимость STM32 – для замены одного изделия на другое не нужно менять плату. Но полностью заменить ардуино конкуренты не могут. В первую очередь это связано с высоким порогом вхождения – для работы с STM32 нужно иметь базис. Платы Ардуино более распространены, и, если у пользователя возникает проблема, найти решение можно на форумах. Также для Ардуино созданы различные шилды и модули, расширяющие функционал. Несмотря на преимущества, по соотношению цена/качество выигрывает STM32.
Семейство микроконтроллеров STM32 отличается от своих конкурентов отличным поведением при температурах от -40С до +80 С. Высокая производительность не уменьшается, в отличие от Ардуино. Также можно найти изделия, работающие при температурах до 105С.
Programming Manual
Programming Manual не является документом первой необходимости в самом начале знакомства с STM-ми, однако является очень важным при углубленном изучении этих микроконтроллеров. Он содержит информацию о процессорном ядре, системе команд и периферии ядра. Причем это не та же самая периферия, которая описана в Reference manual-е. В нее входят:
- System timer — системный таймер
- Nested vectored interrupt controller — контроллер приоритетных прерываний
- System control block
- Memory protection unit
Как только мы начнем знакомится с прерываниями в STM32, нам понадобится раздел 4.3 Nested vectored interrupt controller (NVIC). Ну и системный таймер является очень прикольной вещью, который будет полезен в каких-нибудь RTOS или для создания программных таймеров.