28 июля 2014
STMicroelectronicsновостьНа сайте КОМПЭЛ размещены новые методические материалы на русском языке по программированию микроконтроллеров STM8 и STM32. Учебные материалы представляют собой инструкции к лабораторным работам на базе недорогих отладочных плат STM8SVLDISCOVERY, STM32F3DISCOVERY и STM32F4DISCOVERY. Рассчитанные на начинающих разработчиков, лабораторные работы пошагово учат работать с разнообразной периферией микроконтроллеров — портами ввода-вывода, таймерами, ШИМ, АЦП, компаратором, интерфейсами USART, I²C и SPI.
Лабораторные практикумы будут полезны тем инженерам, кто только осваивает новую архитектуру микроконтроллеров STMicroelectronics, а также студентам компьютерных специальностей, изучающим программирование встроенных систем.
Скачать
Скачать
Скачать
Материалы на постоянной основе размещены по следующему адресу: Библиотека → Справочники → Литература производителя ST Microelectronics.
•••
Компания STMicroelectronics является №1 производителем электроники в Европе. Компоненты ST широко представлены в окружающих нас потребительских товарах – от iPhone до автомобилей разных марок. Лидеры индустриального рынка выбирают компоненты ST за их надежность и выдающиеся технические параметры. В компании ST работает 48 000 сотрудников в 35 странах. Производственные мощности расположены в 12 странах мира. Более 11 тысяч сотрудников заняты исследованиями и разработками – инновационное лидерство …читать далее
• Keil uVision4 (последняя версия на момент написания статьи v4. 73.0.0)
rutracker.org/forum/viewtopic.php?t=2305709
• STM32 ST-LINK utility
www.st.com/web/catalog/tools/FM146/CL1984/SC720/SS1454/PF219866
• Дрова на плату STM32F4DISCOVERY под Windows
www.st.com/web/en/catalog/tools/FM146/CL1984/SC724/SS1677/PF251168
• Тестовая плата STM32F4DISCOVERY
• Библиотека STM32F4xx_DSP_StdPeriph_Lib_V1.3.0
Что ещё установлено на плате:
• Отладчик ST-Link для отладки и прошивки МК, выведен разъём SWD для программирования других плат и контролллеров
• Есть выводы для внешнего питания 5 и 3 В
• Есть кнопка сброса
• Четыре светодиода и одна кнопка, доступные для программирования
• Все 100 выводов МК выведены по бокам платы штырьками по два ряда
Выбираем hex файл для прошивки (можно просто перетащить файл в основное окно программы).
Прошиваем плату
Результаты прошивки отображаются в командной строке.
Создадим новую папку, куда будем помещать все наши проекты. Например, STM32. В этой папке создадим папку для первого проекта. Назовем ее 00_Test. Так же в папке STM32 создадим папку _Lib – сюда мы поместим фалы библиотек CMSIS и Standard Peripheral Library, и каждый новый проект будет ссылаться на эту папку в поиске библиотек.
В папке 00_Test создадим папки:
Project – здесь будут служебные файлы, которые будет создавать программа Keil uVision4 для данного, конкретного проекта.
user – файлы пользовательского кода (программа, которая будет зашиваться в микроконтроллер). В этой папке создаем текстовый файл main.c. Напишем в нем коротенький код
#include «stm32f4xx.h»
int main(void)
{
while(1) {}
Этот код нам понадобится потом.
P.S.: имена папок, а так же структура проекта – личное дело программиста, но надо стремиться к упорядоченному структурированию, чтобы проект был “читабельным” для других программистов. Папку Project можно и не создавать, но тогда все служебные файлы будут “замусоривать” корневой каталог папки 00_Test.
Вот, что должно получится:
Теперь разберемся с библиотеками.
Будем использовать 2 библиотеки:
1. CMSIS (выпускает фирма ARM)
2. Standard Peripheral Library (выпускает фирма STMicroelectronics)
Обе библиотеки бесплатны и доступны для скачивания (эти две библиотеки объединены в одном архиве) на www. st.com/
Причем есть два варианта библиотеки.
1. Библиотека для микроконтроллера STM32F407VGT6 вообще STM32F4xx_DSP_StdPeriph_Lib_V1.3.0 (stm32f4_dsp_stdperiph_lib.zip)
www.st.com/web/catalog/mmc/FM141/SC1169/SS1577/LN11/PF252140?s_searchtype=partnumber#
2. Библиотека конкретно для тестовой платы STM32F4DISCOVERY STM32F4 -Discovery_FW_V1.1.0 (stsw-stm32068.zip)
www.st.com/web/en/catalog/tools/FM147/CL1794/SC961/SS1743/PF257904?s_searchtype=keyword
Мы будем пользоваться библиотекой STM32F4xx_DSP_StdPeriph_Lib_V1.3.0
Заходим в папку
STM32F4xx_DSP_StdPeriph_Lib_V1.3.0
↓
Libraries
↓
И копируем две папки CMSIS и STM32F4xx_StdPeriph_Driver в нашу папку _Lib
Удаляем в папке CMSIS (которую мы скопировали в _Lib) все, кроме папки Device.
Заходим в папку
STM32F4xx_DSP_StdPeriph_Lib_V1.3.0
↓
Project
↓
STM32F4xx_StdPeriph_Examples
↓
ADC
↓
ADC_DMA
↓
Копируем файл stm32f4xx_conf.
_Lib
↓
CMSIS
↓
Device
↓
ST
↓
STM32F4xx
↓
Include
↓
В свойствах файлов stm32f4xx.h и system_stm32f4xx.h снимаем галочку “Только чтение”
Запускаем программу Keil uVision4 и создаем новый проект.
Путь для проекта указываем:
STM32
↓
00_Test
↓
Project
↓
Имя проекта Test
Далее программа предлагает автоматически создать файл конфигурации данного микроконтроллера – startup_stm32f40xx.s. Соглашаемся.
В итоге получили:
Переименуем папку Source Group 1 (в которую программа поместила файл конфигурации микроконтроллера startup_stm32f40xx.s) в startup. Для этого щелкаем один раз левой кнопкой мыши по имени папки и нажимаем F2 – имя папки теперь доступно для переименования.
Добавляем в проект папку user:
Добавим ранее созданный файл main.c. в папку user. Для этого дважды щелкаем левой кнопкой мыши по заголовку папки (или при помощи правой кнопки вызываем контекстное меню).
Итак, мы создали на жестком диске папку проекта 00_Test. В этой папке создали еще две папки: Project и user.
Project – тут программа будет размещать свои служебные файлы и главный файл проекта Test.uvproj
user – тут мы будем размещать файлы кода, который будем загружать в микроконтроллер.
В среде программирования Keil uVision4 создали новый проект 00_Test. В структуре проекта сейчас две папки: startup и user
startup – в этой папке находится файл конфигурации микроконтроллера
user – в этой папке содержатся файлы из папки user, которая была создана ранее на жестком диске.
На жестком диске больше никаких папок создавать не будем. Но в среде программирования в структуре проекта создадим еще две папки: CMSIS и StdPeriphLib. В этих папках будут содержаться наши библиотеки.
Подключим к этим папкам необходимые файлы из папки _Lib.
Для CMSIS:
_Lib
↓
CMSIS
↓
Device
↓
ST
↓
STM32F4xx
↓
Source
↓
Templates
↓
system_stm32f4xx.c
Для StdPeriphLib:
_Lib
↓
STM32F4xx_StdPeriph_Driver
↓
src
↓
все файлы (кроме файла stm32f4xx_fmc.c)
В опциях проекта необходимо указать пути к этим папкам библиотек
В папке user откроем файл main.c, щелкаем правой кнопкой мыши по #include «stm32f4xx.h», и выбираем Open…
Далее снимаем комментарии в тех местах кода, как показано ниже
Далее необходимо настроить проект:
Запускаем компиляцию проекта – F7.
Если все правильно, то ошибок не должно быть.
Напишем несложный код для мигания светодиодом
Обращаю внимание, что код должен заканчиваться пустой строкой (строка №45).
Запустим компиляцию (F7). Теперь можно “зашить” проект в микроконтроллер:
Если все было сделано правильно, то на тестовой плате должен мигать зеленый светодиод. Чтобы выйти из окна отладчика, нажимаем Ctrl+F5.
УРА!!!
Продолжение следует…
Но недавно я решил все-таки достать пыльный Discovery и освоить STM32 от и до. Думаю лучший способ сделать это — написать цикл обучающих статей(если хотите, конспект).
Второй момент. Курс предназначен для новичков и многие конечно сочтут приведенные в нем описания базовых вещей слишком элементарными и излишними, но я не считаю, что освоение STM32 нужно начинать с освоения 8051, PIC’ов и AVR’ок, зачем? Времена когда компании-производители ограничивались выпуском лишь даташитов в качестве документации давно прошли: сейчас каждый производитель старается максимально популяризировать свой продукт и сегодня микроконтроллеры стали доступны широкой аудитории.
Не буду начинать холивар STM vs. AVR, скажу лишь, что Cortex — новее, дешевле и перспективнее.
Но есть два существенных недостатка, мешающих новичкам начинать знакомство с микроконтроллерами сразу с Cortex’ов:
Недавно я начал работать над проектом,который требует процессора Cortex M3. У меня есть некоторый предыдущий опыт работы с 8-битными микроконтроллерами AVR, поэтому я надеялся на небольшой переход.
Поэтому я купил комплект Stm32l-Discovery (поскольку низкая мощность-важный момент) и начал рассматривать некоторые примеры. Однако я полностью застрял в самом начале. При программировании с AVR все было очень просто, просто включив 2 или 3 файла, можно было написать простой main.c для, скажем, мигающего LED.
Однако примеры в IAR EWARM (который я использую) все выглядят очень раздутыми, много файлов, которые затрудняют запуск. У меня такая же проблема с большинством онлайн-учебников.
Кто-нибудь знает какие-нибудь (очень) простые учебники, которые могли бы мне помочь? Я подумываю о покупке «The Definitive Guide to the ARM Cortex-M3», так как это очень рекомендуется.
Это может быть очень глупый вопрос, но я застрял слишком надолго и чувствую себя немного отчаявшимся.
cortex-m3 stm32Кто-нибудь знает какой-нибудь хороший видеоурок для Emacs (основы)? Я нашел очень хорошие учебники для Vim в Youtube и Vimeo . Но по какой-то причине все видеоуроки emacs имеют плохое качество (даже не могут прочитать код). Есть предложения? (Я знаю, что вы можете назвать меня ленивым читателем)
Как говорится в названии 🙂 Я целую вечность ждал, когда Wrox выпустит Professional silverlight 2.0, но он был отложен почти на год, и я хочу сыграть с silverlight. Игнорируя сайт silverlight.net, кто-нибудь знает какие-нибудь хорошие учебники для начинающих, которые фокусируются на кодировании в…
3
Я полностью с вами согласен. Я тоже начинаю, и мне трудно даже поцарапать поверхность! У меня есть хороший опыт работы с PICs, но с ARMs кривая обучения действительно крутая.
Для STM32F4Discovery, который я использую, ST предоставляет ряд примеров. Начиная с простого переключения булавок. Я просматриваю файл main.c, который для каждого примера хорошо прокомментирован, и пытаюсь понять оттуда. У них есть библиотека периферийных устройств, так что найдите ее и посмотрите на объявления функций. Я узнал несколько таких вещей.
Также убедитесь, что вы ссылаетесь на фактическое руководство ARM, которое вы используете.
Я думаю, все сводится к тому, сколько времени вам придется потратить. Что касается меня, то у меня нет времени, чтобы просмотреть руководство и понять, как все работает. Если вы найдете несколько хороших источников, пожалуйста, опубликуйте их!
В заключение я вставляю пару URL-адресов, которые я нашел полезной информацией:
http:/ / www.hitex.com / index. php? id=download-insiders-guides
http:/ / www.micromouseonline.com / категория / stm32 / #axzz1wMO2VjAI
Поделиться Demetris 30 мая 2012 в 13:40
0
Я бы предложил использовать CMSIS и стандартную периферийную библиотеку для программирования ARM Cortex. Вот несколько руководств о том, как настроить вещи и начать писать код: http://www.embedds.com/arm-cortex-tutorials/
Поделиться ScienceProg 27 января 2013 в 23:54
Я разрабатываю веб — сайт и хотел бы добавить ценность репутации для каждого пользователя. Поэтому я ищу движок репутации пользователя с такими функциями, как: модель хорошей репутации пользователи…
Кто-нибудь знает какие-нибудь учебники о XSD/XML для новичка, которые объясняют вещи просто, но очень подробно рассказывают о том, как это делать?
Я делаю игру 2D Java. Я хочу, чтобы игра выглядела красиво, поэтому мне нужны хорошие спрайты, но я хочу сосредоточиться на кодировании игры, а не на графическом дизайне. Этот проект имеет…
Кто-нибудь знает какой-нибудь хороший видеоурок для Emacs (основы)? Я нашел очень хорошие учебники для Vim в Youtube и Vimeo . Но по какой-то причине все видеоуроки emacs имеют плохое качество (даже…
Как говорится в названии 🙂 Я целую вечность ждал, когда Wrox выпустит Professional silverlight 2.0, но он был отложен почти на год, и я хочу сыграть с silverlight. Игнорируя сайт silverlight.net,…
Существует графическая библиотека 2D java под названием Slick 2D ( http: / / slick.cokeandcode.com/ ), которая, кажется, используется кучей инди-игр (в основном апплетов), но документации немного не…
Я хочу изучить алгоритмы, используя некоторые очень простые простые учебники. Есть ли они там? Я слышал о рекурсии и прочем, и мне бы хотелось научиться этому хорошему. Любая помощь будет оценена по…
Я погуглил это, но хотел посмотреть, каков был общий консенсус по stack overflow. Кто-нибудь знает какие-нибудь хорошие генераторы автоформ PHP Codeigniter? Я хочу иметь возможность создавать…
Мне нужно перечислить конкретных пользователей, загрузивших видео (YouTube) в UITableView. Я скачал исходный код GData и примеры проектов (не конкретно iphone), но, похоже, не могу заставить его…
Я пытаюсь выучить Node.js и использую Lynda.com, книгу Node.js в действии, и я рыскал по интернету, пытаясь найти онлайн-учебники для текущих версий Express (Express ~4.2) с Node. js. Почти все, что…
Предисловие
HTTPПротокол передачи гипертекста (HyperText Transfer Protocol) является наиболее широко используемым протоколом сетевой передачи в Интернете. Все документы WWW должны соответствовать этому стандарту. HTTP — это протокол связи, основанный на TCP / IP для передачи данных (файлы HTML, файлы изображений, результаты запросов и т. Д.).
HTTPПротокол работает по архитектуре клиент-сервер. В качестве HTTP-клиента браузер отправляет все запросы HTTP-серверу, т. Е. WEB-серверу, через URL-адрес. К веб-серверам относятся: сервер Apache, сервер IIS (информационные службы Интернета) и т. Д. Веб-сервер отправляет клиенту ответную информацию в соответствии с полученным запросом. Номер порта HTTP по умолчанию — 80, но вы также можете изменить его на 8080 или другие порты.
В этом разделе мы изучим stm32 + LWIP для создания HTTP-сервера. См. Ниже конкретную реализацию.
Подробные примеры
На основе аппаратной платформы: модель MCU — STM32F407VGT6, используйте проект конфигурации, автоматически сгенерированный инструментом stm32cubemx, и используйте KEIL5 для компиляции кода. Принципиальная схема самой маленькой системной платы, используемой в этом примере:
Заодно добавляем в проект заранее подготовленный файл fs.c httpd.c httpd_cgi_ssi.c и указываем соответствующий путь к файлу .h:
Обратите внимание, что файлы fsdata.c и fsdata.h также включены в следующий путь:
Введите прямо в браузере:http://192.168.1.103:80 Войти:
Результат, показанный на приведенном выше рисунке, показывает, что мой stm32 http был успешно построен. Нажмите LED CONROL и строку состояния ADC, чтобы получить следующие интерфейсы:
В этом примере пользователь может изменять содержимое файла Httpd_cgi_ssi.c в соответствии со своей собственной реальной схемой, чтобы реализовать соответствующую операцию управления.
OK,Этот эксперимент завершен! Увидимся в следующий раз! В то же время, если у вас есть какие-либо вопросы или другой контент, который вы хотите знать, оставьте сообщение! ! Наконец, студенты, которым нравится этот публичный аккаунт, не забывают уделять больше внимания, будут выпущены нерегулярные технические сухие товары! !
Загрузите исходный код в статье,Отправьте сообщение Shisan в паблик аккаунте:
скачать|STM32Учебник серии Basic 38
Следуйте за 13 паблик
Mikromedia for STM32 M3 – представляет собой компактную высококачественную платформу для разработки мультимедийных приложений на основе микроконтроллера STM32F207NGT6. На плате установлен мультимедийный модуль с большим цветным TFT дисплеем с сенсорной панелью и разрешением 320х240, а также микросхема MP3 кодека с большой производительностью. Все это дает широкие возможности для построения полноценных мультимедийных приложений.
Изделие имеет компактные габариты и легко помещается в небольшой карман. Для достижения максимальной эффективности использована четырехслойная PCB, на которую установлены высококачественные компоненты. В изделии установлено зарядное устройство, позволяющее заряжать аккумуляторы непосредственно от USB порта. При этом никаких дополнительных адаптеров не требуется. Для хранения медиафайлов на плате имеется 8-битная последовательная флэш память и слот для microSD card. Многочисленные функциональные узлы платы делают ее универсальной для мультимедийных приложений. Плата может быть использована не только для разработки программ, но и как конечный продукт.
Mikromedia for STM32 M3 поставляется с микроконтроллером, на который предварительно установлен USB HID загрузчик, поэтому плата готова к работе прямо из коробки. Таким образом, нет необходимости в дополнительных затратах на покупку программатора. Тем не менее, для тех, кто считает, что для полноценной работы программатор необходим, производитель рекомендует использовать отладчик mikroProg™ for STM32. Mikromedia for STM32 M3 полностью поддерживается компиляторами для ARM микроконтроллеров mikroC, mikroBasic и mikroPascal, которые поставляются с десятками примеров практически для всех функциональных узлов платы. Кроме того, используя Visual TFT software, можно очень просто создать фантастический полноцветный графический интерфейс пользователя (GUI).
Рис. 1. Mikromedia for STM32 M3. Вид сверху
Рис. 2. Mikromedia for STM32 M3. Вид снизу
Отличительные особенности:
Комплектация:
Дополнительную информацию можно найти на сайте производителя.
Третья вариация на тему конвертера на основе ЦАП, по моему мнению, является самой элегантной. Вместо обычного счетчика «вверх», ведущего ЦАП, эта схема использует счетчик вверх / вниз. Счетчик непрерывно синхронизируется, а управляющая линия вверх / вниз управляется выходом компаратора. Таким образом, когда аналоговый входной сигнал превышает выход ЦАП, счетчик переходит в режим «подсчет». Когда выход ЦАП превышает аналоговый вход, счетчик переключается в режим «обратного отсчета». В любом случае, выход ЦАП всегда учитывается в правильном направлении для отслеживания входного сигнала.
Обратите внимание, как не требуется сдвиговый регистр для буферизации двоичного счета в конце цикла. Поскольку выход счетчика непрерывно отслеживает вход (а не подсчитывает, чтобы соответствовать входу, а затем возвращаться к нулю), двоичный выход законно обновляется с каждым тактовым импульсом.
Преимуществом этой схемы преобразователя является скорость, так как счетчик никогда не должен перезагружаться. Обратите внимание на поведение этой схемы:
Обратите внимание на гораздо более быстрое время обновления, чем любая другая «подсчет» схем АЦП. Также обратите внимание, как в самом начале графика, где счетчик должен «догнать» аналоговый сигнал, скорость изменения для выхода была идентична скорости первого счетного АЦП. Кроме того, при отсутствии сдвигового регистра в этой схеме двоичный выход фактически увеличивался бы, а не прыгал с нуля на точный счет, как это было со схемами счетчика и последовательного приближения АЦП.
Возможно, самым большим недостатком этого дизайна АЦП является тот факт, что двоичный выход никогда не бывает стабильным: он всегда переключается между отсчетами с каждым тактовым импульсом даже с совершенно стабильным аналоговым входным сигналом. Это явление неофициально известно как бит-бит, и это может быть проблематично в некоторых цифровых системах.
Однако эту тенденцию можно преодолеть за счет творческого использования сдвигового регистра. Например, выход счетчика может быть зафиксирован через сдвиговый регистр параллельного входа / параллельного вывода только тогда, когда выход изменяется на два или более шагов. Создание схемы для обнаружения двух или более последовательных отсчетов в одном направлении требует немного изобретательности, но стоит усилий.
В этом пошаговом руководстве вы узнаете, как создать свою собственную плату микроконтроллера на основе популярного микроконтроллера STM32 от ST Microelectronics.
Опубликовано Джон Тил
Я разделю весь процесс проектирования на три основных этапа:
ШАГ 1 — Проектирование системы
ШАГ 2 — Проектирование схемотехники
ШАГ 3 — Проектирование компоновки печатной платы
При разработке новой схемы первым шагом является проектирование системы высокого уровня (которое я также называю предварительным проектом).Прежде чем вдаваться в подробности проектирования всей принципиальной схемы, всегда лучше сначала сосредоточиться на общей картине всей системы.
Проектирование системы состоит в основном из двух этапов: создание блок-схемы и выбор всех критических компонентов (микрочипов, датчиков, дисплеев и т. Д.). Системный дизайн рассматривает каждую функцию как черный ящик
В инженерии черный ящик — это объект, который можно рассматривать с точки зрения его входов и выходов, но без какого-либо знания его внутренней работы.При проектировании системного уровня основное внимание уделяется взаимодействию и функциональности более высокого уровня.
Для более глубокого обучения ознакомьтесь с моим курсом проектирования печатных плат, который включает более 3 часов видео, в котором я проектирую более сложную плату STM32.
Ниже приведена блок-схема, с которой мы будем работать в этой серии руководств. Как я уже упоминал, в этом первом руководстве мы сосредоточимся только на самом микроконтроллере. В будущих уроках мы расширим дизайн, чтобы включить все функции, показанные на этой блок-схеме.
Блок-схема должна включать блок для каждой основной функции, взаимосвязи между различными блоками, определенные протоколы связи и любые известные уровни напряжения (входное напряжение питания, напряжение батареи и т. Д.).
Позже, когда все компоненты были выбраны и требуемые напряжения питания известны, я хотел бы добавить напряжения питания к блок-схеме.Включая напряжение питания для каждого функционального блока, он позволяет легко определить все напряжения питания, которые вам понадобятся, а также любые переключатели уровня.
В большинстве случаев, когда два электронных компонента обмениваются данными, им необходимо использовать одно и то же напряжение питания. Если они питаются от разных напряжений, вам обычно потребуется добавить переключатель уровня.
Блок-схема системного уровня. Блоки желтого цвета включены в это начальное руководство.
Теперь, когда у нас есть блок-схема, мы можем лучше понять необходимые требования к микроконтроллеру. Пока вы не наметили все, что будет подключаться к микроконтроллеру, невозможно выбрать подходящий микроконтроллер.
При выборе микроконтроллера (или любого другого электронного компонента) мне нравится использовать веб-сайт дистрибьютора электроники, такой как Newark.com. Это позволяет легко сравнивать различные варианты на основе различных спецификаций, цен и наличия. Это также простой способ быстрого доступа к таблице данных компонента.
Если вы регулярно читаете этот блог, то знаете, что я большой поклонник микроконтроллеров ARM Cortex-M. Микроконтроллеры Arm Cortex-M — самая популярная линейка микроконтроллеров, используемых в коммерческих электронных продуктах. Они используются в десятках миллиардов устройств.
Микроконтроллерыот Microchip (включая Atmel) могут доминировать на рынке производителей, но Arm доминирует на рынке коммерческих продуктов.
Arm не производит чипы напрямую.Вместо этого они разрабатывают архитектуры процессоров, которые затем лицензируются и производятся другими производителями микросхем, включая ST, NXP, Microchip, Texas Instruments, Silicon Labs, Cypress и Nordic.
ARM Cortex-M — это 32-разрядная архитектура, которая является фантастическим выбором для более ресурсоемких задач по сравнению с тем, что доступно для более старых 8-разрядных микроконтроллеров, таких как ядра 8051, PIC и AVR.
МикроконтроллерыArm бывают разных уровней производительности, включая Cortex-M0, M0 +, M1, M3, M4 и M7.Некоторые версии доступны с блоком с плавающей запятой (FPU) и обозначены буквой F в номере модели, например Cortex-M4F.
Одним из самых больших преимуществ процессоров Arm Cortex-M является их низкая цена при требуемом уровне производительности. Фактически, даже если для вашего приложения достаточно 8-битного микроконтроллера, вы все равно должны рассмотреть 32-битный микроконтроллер Cortex-M.
Существуют микроконтроллеры Cortex-M по ценам, очень сопоставимым с некоторыми из старых 8-битных чипов.Основание вашего дизайна на 32-битном микроконтроллере дает вам больше возможностей для роста, если вы захотите добавить дополнительные функции в будущем.
STM32 от ST Microelectronics — моя любимая линейка микроконтроллеров ARM Cortex-M.
Хотя многие производители микросхем предлагают микроконтроллеры Cortex-M, мне больше всего нравится серия STM32 от ST Microelectronics. Линия микроконтроллеров STM32 довольно обширна и предлагает практически любые функции и уровень производительности, которые вам когда-либо понадобятся.Линия STM32 может быть разбита на несколько подсерий, как показано в Таблице 1 ниже.
Серия STM32 | Cortex-Mx | Макс. Частота (МГц) | Производительность (DMIPS) |
F0 | M0 | 48 | 38 |
F1 | м3 | 72 | 61 |
F3 | M4 | 72 | 90 |
F2 | м3 | 120 | 150 |
F4 | M4 | 180 | 225 |
F7 | M7 | 216 | 462 |
H7 | M7 | 400 | 856 |
L0 | M0 | 32 | 26 |
L1 | м3 | 32 | 33 |
L4 | M4 | 80 | 100 |
L4 + | M4 | 120 | 150 |
Таблица 1: Сравнение различных вариантов микроконтроллера STM32
Подсерии STM32F — это их стандартная линейка микроконтроллеров (в отличие от подсерии STM32L, которая специально ориентирована на более низкое энергопотребление). STM32F0 имеет самую низкую цену, но также и самую низкую производительность. На шаг впереди идут подсерии F1, за которыми следуют F3, F2, F4, F7 и, наконец, H7.
Для этого урока я выбрал STM32F042K6T7, который поставляется в 32-выводном корпусе с выводами LQFP. Я выбрал свинцовый пакет в первую очередь потому, что он упрощает процесс отладки, потому что у вас есть легкий доступ к контактам микроконтроллера. В то время как в безвыводном корпусе, таком как QFN, контакты спрятаны под корпусом, что делает доступ невозможным без контрольных точек.
Пакет с выводами также позволяет легко заменить микроконтроллер в случае его повреждения. Наконец, безвыводные корпуса стоят дороже, чтобы припаять их к печатной плате, поэтому они увеличивают затраты как на прототипирование, так и на производство.
Я выбрал STM32F042, потому что он предлагает умеренную производительность, хорошее количество контактов GPIO и различные последовательные протоколы, включая UART, I2C, SPI и USB. Это микроконтроллер STM32 довольно начального уровня, всего с 32 контактами, но с большим набором функций.Более продвинутые версии поставляются с 216 контактами, что было бы довольно сложно для вводного руководства.
В этом первом видео мы не будем использовать большинство из этих функций, но мы воспользуемся ими в следующих видеороликах этой серии.
Принципиальная электрическая схема для этого первого руководства, показывающая микроконтроллер STM32, линейный регулятор, разъем USB и разъем для программирования.
Теперь, когда мы выбрали микроконтроллер, пришло время разработать принципиальную электрическую схему.Для этих руководств я буду использовать инструмент проектирования печатных плат под названием DipTrace.
Доступны десятки инструментов для печатных плат, но когда дело доходит до простоты использования, цены и производительности, я считаю, что DipTrace трудно превзойти, особенно для стартапов и производителей.
Если у вас нет пакета проектирования печатной платы, вы можете рассмотреть возможность загрузки бесплатной версии DipTrace, чтобы вы могли внимательно следить за этим руководством. Они также предлагают бесплатную пробную версию своей полной версии. Лучший способ чему-то научиться — это всегда делать это на самом деле.
Для этого начального руководства достаточно бесплатной версии DipTrace, но для большинства проектов вам потребуется перейти на платную версию.
Тем не менее, это руководство будет сосредоточено на процессе разработки специальной платы микроконтроллера, а не на том, как использовать какой-либо конкретный инструмент для проектирования печатных плат. Таким образом, независимо от того, какое программное обеспечение для печатных плат вы в конечном итоге используете, вы все равно найдете эти руководства столь же полезными.
Первым шагом в разработке схемы является размещение всех ключевых компонентов.Для этой первоначальной конструкции это включает микросхему микроконтроллера, регулятор напряжения, разъем microUSB и разъем для программирования.
Для более сложных проектов обычно имеет смысл сначала полностью спроектировать каждую подсхему, а затем объединить их все вместе. В зависимости от сложности конструкции (и личных предпочтений) вы также можете разместить каждую подсхему на отдельном листе. Это предотвращает превращение схемы в огромного, подавляющего монстра на одном листе.
Затем мы разместим все различные конденсаторы.По большей части вы можете думать о конденсаторах как о крошечных перезаряжаемых батареях, которые удерживают электрический заряд и помогают стабилизировать напряжение в линии питания.
Начнем с размещения конденсатора 4,7 мкФ на входном контакте линейного регулятора. Это входное напряжение 5 В постоянного тока, поступающее от внешнего зарядного устройства USB. Это напряжение подается на линейный регулятор TLV70233, который понижает напряжение до 3,3 В, поскольку на микроконтроллер может подаваться только максимум 3,6 В.
Другой 4.Конденсатор емкостью 7 мкФ ставится на выходе стабилизатора как можно ближе к выводу. Этот конденсатор служит для накопления заряда для питания переходных нагрузок и стабилизирует внутренний контур обратной связи регулятора. Без выходного конденсатора большинство регуляторов начнут колебаться.
ПРИМЕЧАНИЕ: Обязательно загрузите бесплатное руководство в формате PDF 15 шагов для разработки нового электронного оборудования .
Разделительные конденсаторы должны быть размещены как можно ближе к выводам питания микроконтроллера (VDD).Всегда лучше обратиться к таблице данных микроконтроллера, чтобы получить рекомендации по разделению конденсаторов.
В таблице данных для STM32F042 рекомендуется разместить конденсатор емкостью 4,7 мкФ и 100 нФ рядом с каждым из двух выводов VDD (выводы входного питания). Также рекомендуется разместить развязывающие конденсаторы емкостью 1 мкФ и 10 нФ рядом с выводом VDDA.
Вывод VDDA предназначен для питания внутреннего аналого-цифрового преобразователя (АЦП) и должен быть особенно чистым и стабильным. Мы не используем АЦП в этом первом руководстве, но мы будем использовать его в будущем.
Обратите внимание, что вы обычно видите два размера конденсатора, указанные вместе для целей развязки. Например, конденсаторы 4,7 мкФ и 100 нФ.
Более крупный 4,7 мкФ может хранить больше заряда, что помогает стабилизировать напряжение, когда требуются большие скачки тока нагрузки. Конденсатор меньшего размера служит в основном для фильтрации любых высокочастотных шумов.
Хотя STM32F042 предлагает широкий спектр функций, таких как интерфейсы связи UART, I2C, SPI и USB, вы не найдете ни одной из этих функций, обозначенных на распиновке микроконтроллера.Это связано с тем, что большинство микроконтроллеров назначают различные функции каждому выводу, чтобы уменьшить количество требуемых выводов.
Распиновка микроконтроллера STM32F042 в 32-выводном выводном корпусе LQFP.
Например, на STM32F042 вывод 9 помечен как PA3, что означает, что это вывод GPIO. При запуске эта функция автоматически назначается этому контакту. Но есть и альтернативные функции, которые можно указать в программе прошивки.
Контакт 9 может быть запрограммирован для выполнения следующих функций: входной контакт приема для последовательной связи UART, вход в аналого-цифровой преобразователь (АЦП), выход таймера или контакт ввода / вывода для контроллера емкостного сенсорного датчика. .
См. Таблицу определения выводов в таблице данных микроконтроллера (стр. 33 для STM32F042), в которой показаны все различные функции, доступные для каждого вывода. Всегда проверяйте, чтобы две функции, необходимые для вашего продукта, не перекрывались на одних и тех же контактах.
Всем микроконтроллерам для синхронизации требуются часы. Эти часы — просто точный генератор. Микроконтроллеры выполняют запрограммированные команды последовательно с каждым тактом часов.
Самым простым вариантом, если он доступен на выбранном микроконтроллере, является использование внутренних часов. Эти внутренние часы известны как часы RC-генератора, потому что они используют временные характеристики резистора и конденсатора.
Основным недостатком RC-генератора является точность. Резисторы и конденсаторы (особенно встроенные в микрочип) значительно различаются от блока к блоку, что приводит к изменению частоты генератора. Температура также существенно влияет на точность.
RC-генератор подходит для простых приложений, но если ваше приложение требует точной синхронизации, этого будет недостаточно.В этом начальном руководстве мы собираемся использовать внутренние часы RC, чтобы упростить задачу. В будущих уроках мы улучшим конструкцию, добавив гораздо более точный внешний кварцевый генератор.
Программирование STM32 выполняется с помощью одного из двух протоколов: JTAG или Serial Wire Debug (SWD). Более продвинутые версии STM32 (STM32F1 и выше) предлагают интерфейсы программирования как JTAG, так и SWD. Подсерия STM32F0 предлагает только более простой интерфейс программирования SWD, поэтому мы сосредоточимся на этом в этом руководстве.
Интерфейс SWD требует всего 5 контактов. Это SWDIO (ввод / вывод данных), SWCLK (тактовый сигнал), NRST (сигнал сброса), VDD (напряжение питания) и заземление.
К сожалению, программатор ST-LINK, который вы будете использовать для программирования STM32, использует 20-контактный разъем JTAG (с функцией SWD). Этот разъем довольно большой и не подходит для небольших плат.
Вместо этого вы можете использовать плату адаптера с 20 контактов на 10 контактов, такую как эта от Adafruit, чтобы вы могли использовать на плате 10-контактный разъем меньшего размера.
В этом руководстве мы будем использовать 10-контактный разъем. Если это все еще слишком велико для вашего проекта, вы всегда можете использовать 5-контактный разъем и перемычки от 20-контактного выхода программатора для подключения только 5 линий, необходимых для программирования SWD.
Последняя часть схемы, которую мы рассмотрим, — это силовая часть. Микроконтроллер STM32 может питаться напряжением питания от 2,0 до 3,6 В. Если у вас нет источника переменного тока, вам понадобится встроенный стабилизатор, обеспечивающий соответствующее напряжение питания.
Для этой конструкции мы будем питать плату от внешнего зарядного устройства USB, которое выдает 5 В постоянного тока. Затем это напряжение подается на линейный регулятор напряжения (TLV70233 от Texas Instruments), который понижает его до стабильного 3,3 В.
Для STM32 требуется максимум 24 мА при условии, что ни один из выводов GPIO не потребляет ток (каждый вывод GPIO может подавать до 25 мА). Абсолютный максимальный ток, который когда-либо потребуется для STM32, составляет 120 мА, при условии, что различные контакты GPIO используют ток.
TLV70233 рассчитан на ток до 300 мА, что должно быть более чем достаточно для этой первоначальной конструкции. В будущих руководствах, по мере добавления дополнительных функций, нам может потребоваться пересмотреть это, чтобы убедиться, что регулятор может обрабатывать требуемый ток системы.
Последним этапом разработки принципиальной принципиальной схемы является выполнение этапа проверки, называемого «Проверка электрических правил» (ERC). На этом этапе проверки проверяются такие ошибки, как короткое замыкание между цепями, цепи только с одним выводом, наложенные выводы и несоединенные выводы.
Вы также можете настроить различные ошибки типа вывода. Например, если выходной контакт подключен к другому выходу, вы получите сообщение об ошибке. Или, если выходной контакт подключен к линии питания, вы получите ошибку. DipTrace использует цветную матрицу сетки, которая позволяет вам определить, какие типы контактов будут выдавать вам ошибки или предупреждения.
После того, как схематический дизайн закончен, пора спроектировать печатную плату.Начните со вставки всех компонентов в компоновку печатной платы. В DipTrace вы можете использовать функцию «Преобразовать в печатную плату» в схеме, чтобы автоматически создать печатную плату со всеми вставленными компонентами.
Несмотря на то, что все компоненты были вставлены, ваша задача — точно определить, где каждый компонент размещается на печатной плате.
Большинство пакетов программного обеспечения для проектирования печатных плат включают функцию автоматического размещения компонентов с целью минимизации длины трассировки.Но я никогда им не пользуюсь, и почти необходимо вручную размещать компоненты в наилучшем расположении.
Для нашей начальной обучающей схемы размещение компонентов довольно просто. Разместите разъем microUSB рядом с линейным регулятором так, чтобы его выход был как можно ближе к контактам входного питания (VDD) на микроконтроллере. Наконец, разместите разъем для программирования в любом удобном месте.
Размещение критических компонентов в этой первоначальной конструкции: микроконтроллер (U1), регулятор (U2), разъем micro USB (J1) и разъем для программирования (JTAG-1).
После того, как все компоненты сердечника правильно размещены, следующим шагом будет размещение всех пассивных компонентов (резисторов, конденсаторов и катушек индуктивности). В этой первоначальной конструкции единственными пассивными компонентами являются конденсаторы.
Один из ключевых аспектов проектирования электроники, который вам необходимо изучить, — это концепция паразитов. Паразиты — это пассивные компоненты (резисторы, конденсаторы и катушки индуктивности), которые вы намеренно не добавляете в свою схему. Но, тем не менее, они есть и влияют на производительность.
Например, хотя дорожка сигнала предназначена для идеального короткого замыкания, на самом деле она имеет некоторое конечное сопротивление, емкость и индуктивность, которые становятся все более значимыми по мере увеличения длины дорожки и количества изгибов и переходных отверстий.
Размещение всех критических компонентов (U1, U2, J1 и JTAG-1) и пассивных компонентов (конденсаторов).
Таким образом, это означает, что если источник напряжения расположен далеко от нагрузки, которой в данном случае является микроконтроллер STM32, по сути, между нагрузкой и источником есть резистор (без учета емкости и индуктивности).
Если микроконтроллеру внезапно требуется быстрый всплеск тока, это вызовет падение напряжения на этом резисторе трассировки.
Таким образом, даже если выходное напряжение регулятора напряжения может быть идеальным 3,30 В, напряжение на выводе микроконтроллера будет ниже во время этого скачка тока. Для решения этой проблемы используются развязывающие конденсаторы.
Помните, конденсаторы похожи на маленькие батарейки, которые накапливают электрический заряд. Размещение их прямо у контактов питания микроконтроллера позволяет им обеспечивать любые быстрые переходные токи, необходимые микроконтроллеру.
После исчезновения переходной нагрузки конденсаторы перезаряжаются источником питания, поэтому они готовы к следующему переходному увеличению тока нагрузки.
Печатная плата состоит из слоев, уложенных друг на друга. Проводящие слои разделены изоляционными слоями. Минимальное количество проводящих слоев — два. Это означает, что верхний и нижний уровни могут использоваться для маршрутизации сигналов, и эти два слоя разделены внутренним изолирующим слоем.
Для простоты этого урока мы начнем с двухслойной доски. Но по мере увеличения сложности схемы вам придется добавлять дополнительные слои.
Количество проводящих слоев всегда четное, поэтому вы можете получить плату с 2,4,6,8,10,12 проводящими слоями. Для большинства дизайнов потребуется 4-6 слоев, а для более сложных дизайнов может потребоваться 8 или более слоев.
После того, как все компоненты были правильно размещены, самое время выполнить необходимую трассировку.Есть два варианта маршрутизации: ручной и автоматический.
Для автоматической маршрутизации в DipTrace вы просто выбираете Route -> Run Autorouter , и программное обеспечение автоматически выполнит всю маршрутизацию.
К сожалению, автоматические маршрутизаторы в целом выполняют ужасную работу, и почти во всех случаях вам придется вручную выполнять всю маршрутизацию. В этом уроке мы будем выполнять всю маршрутизацию вручную.
Разводка печатной платы (черные дорожки на верхнем слое, серые дорожки на нижнем слое)
При трассировке на печатной плате вы хотите минимизировать длину каждой трассы, насколько это возможно.Вы также хотите минимизировать количество переходных отверстий и избегать любых изгибов на 90 градусов на дорожках. Эти рекомендации особенно важны для трасс с высокой мощностью и высокоскоростных сигналов.
A через — это отверстие между слоями с проводящим материалом, которое позволяет соединять вместе две дорожки на разных слоях. Большинство переходных отверстий известны как переходные отверстия от до , что означает переходные туннели через все слои платы.
Сквозные переходные отверстия — самый простой тип в изготовлении, поскольку их можно просверлить после сборки всего набора слоев печатной платы.
Via # 1 — это классический сквозной переход, via # 2 — слепой переход, а via # 3 — скрытый переход.
Переходные отверстия, которые туннелируют только через подмножество слоев, называются скрытыми и глухими переходными отверстиями. Слепые переходные отверстия соединяют внешний слой с внутренним слоем (таким образом, один конец скрыт внутри стека печатной платы). Скрытые переходные отверстия соединяют два внутренних слоя и полностью скрыты на собранной печатной плате.
Глухие и скрытые переходные отверстия позволяют упаковать конструкцию более плотно. Это потому, что они не занимают места на слоях, которые их не используют.С другой стороны, сквозные переходные отверстия занимают место на всех слоях.
Однако имейте в виду, что глухие и скрытые переходные отверстия резко увеличивают стоимость прототипа вашей платы. В большинстве случаев вам следует ограничиться использованием только сквозных переходных отверстий. Только исключительно сложные конструкции, которые должны умещаться в исключительно маленьком пространстве, вероятно, когда-либо потребуют этих более сложных типов переходных отверстий.
При прокладке любых силовых линий с высоким током необходимо убедиться, что ширина трассы способна пропускать необходимый ток.Если вы пропустите слишком большой ток через дорожку печатной платы, она перегреется и оплавится, что приведет к неисправности платы.
Для определения необходимой ширины дорожки мне нравится использовать калькулятор ширины дорожки печатной платы. Чтобы определить требуемую ширину дорожки, вам нужно сначала узнать толщину дорожки для вашего конкретного процесса печатной платы.
Производители печатных платпозволяют вам выбирать различную толщину проводящего слоя, обычно измеряемую в унциях на квадратный фут (oz / ft 2 ), но также измеряемую в миллиметрах (мил — одна тысячная дюйма) или миллиметрах.
Обычная толщина проводящего слоя составляет 1 унцию / фут 2 . В этом уроке я сделал линии электропитания шириной 10 мил. Использование калькулятора, связанного с приведенным выше, показывает, что дорожка размером 1 унцию / фут 2 шириной 10 мил на самом деле может пропускать почти 900 мА тока.
Очевидно, это намного больше, чем нам нужно, и я мог бы легко сузить линии снабжения. В первом уроке я показал, что абсолютный максимальный ток, требуемый STM32F042, составляет 120 мА.Возможно, удивительно, что для работы в 120 мА нам нужна только ширина дорожки 0,635 мил!
Минимальная ширина следа, допустимая для большинства процессов, составляет 4-6 мил. Следы минимальной ширины могут быть легко использованы для линий подачи в этой конструкции. При этом, чем шире кривая, тем меньше сопротивление и стабильнее напряжение питания на каждом компоненте.
За исключением случаев, когда пространство очень ограничено, всегда следует чрезмерно проектировать дорожки источника питания. Фактически, во многих случаях вам понадобится разводка источника питания на отдельном уровне, чтобы вы могли максимизировать ширину разводки.
Наконец, в калькуляторе вы заметите, что требования к внутренним и внешним слоям различаются. Для этого простого двухслойного дизайна оба слоя являются внешними, поэтому нам нужно использовать « Results for External Layers in Air ».
Внутренние слои могут пропускать гораздо меньший ток, потому что они не получают охлаждающего эффекта при контакте с воздухом, поэтому следы будут перегреваться при гораздо меньшем токе.
Завершенный макет печатной платы (PCB) для этого начального руководства.
После того, как вся маршрутизация завершена, пора выполнить проверки, чтобы убедиться, что все правильно. Именно здесь автоматизация действительно работает, и любой инструмент проектирования печатных плат предлагает функции автоматической проверки.
Существует два основных типа проверки: проверка правил проектирования (DRC) и схематическое сравнение.
DRC проверяет соблюдение всех правил проектирования печатных плат. Сюда входят такие правила, как минимально допустимая ширина дорожек, минимальный допустимый интервал между дорожками, минимальный интервал между дорожкой и краем платы и т. Д.
Чтобы запустить проверку DRC, необходимо сначала получить все правила проектирования для конкретного процесса печатной платы, который вы будете использовать.
Каждый процесс прототипирования печатной платы имеет несколько разные правила, поэтому вы должны иметь правильные правила, прежде чем продолжить. Вы можете получить правила проектирования для вашего конкретного процесса у поставщика прототипа печатной платы.
В DipTrace вы определяете правила проектирования, выбирая Проверка-> Правила проектирования . После того, как все правила были правильно определены, вы можете запустить DRC, выбрав Verification-> Check Design Rules.
После того, как вы убедились, что компоновка вашей печатной платы соответствует всем правилам проектирования, пришло время проверить, соответствует ли конструкция вашей печатной платы вашей принципиальной схеме. Для этого в DipTrace вы просто выбираете Verification-> Compare to Schematic .
В будущих уроках я покажу вам различные типы ошибок DRC и сравнения схем, а также способы их исправления.
После того, как вы убедились, что проект соответствует правилам проектирования и соответствует схематической диаграмме, пора заказывать прототипы печатной платы.
Для этого вам необходимо преобразовать проект компоновки печатной платы (который в настоящее время хранится в собственном файловом формате) в файловый формат промышленного стандарта, известный как Gerber.
Формат Gerber выводит каждый слой вашей конструкции печатной платы в виде отдельного файла. Сгенерированные слои — это намного больше, чем просто проводящие слои вашей платы. Некоторые из этих слоев включают:
1) Слои шелка — Включает текст и обозначения компонентов.
2) Монтажные слои — Аналогично шелковым слоям, но со специальными инструкциями по сборке.
3) Слои паяльной маски — указывает зеленый цвет на печатной плате, закрывающий любые проводники, к которым вы не хотите паять. Это предотвращает случайное замыкание во время пайки.
4) Слои паяльной пасты — Используется для точного размещения паяльной пасты в местах пайки.
Вам также необходимо будет сгенерировать так называемый файл Pick-and-Place , который включает координаты и ориентацию для всех компонентов.Этот файл используется производителями автоматических машин для размещения компонентов.
Наконец, вам нужно вывести файл сверления, который обеспечивает точное расположение и размер любых отверстий, таких как переходные и монтажные отверстия.
Когда у вас есть Gerbers, файл Pick-and-Place и файл сверления, вы можете отправить эти файлы в любой магазин прототипов или изготовителю для производства вашей платы.
В этом руководстве вы узнали, как разработать блок-схему на уровне системы, выбрать все критические компоненты, спроектировать полную принципиальную принципиальную схему, спроектировать макет печатной платы (PCB) и заказать прототипы готовой печатной платы микроконтроллера. дизайн.
В этом учебном пособии сама схема намеренно оставлена достаточно простой, чтобы не перегружать вас сложностью схемы. При этом микроконтроллер без каких-либо дополнительных функций не очень полезен.
Наконец, не забудьте загрузить бесплатно PDF : Ultimate Guide to Develop and Sell Your New Electronic Hardware Product . Вы также будете получать мой еженедельный информационный бюллетень, в котором я делюсь премиальным контентом, недоступным в моем блоге.У вас уже есть некоторый опыт работы с Arduino, и вы хотите активизировать игру в соответствии с разработкой встроенной системы ARM? Если да, то вы попали в нужное место!
Мы собираемся посмотреть, как начать работу с микроконтроллерами STM32 с использованием STM32Cube и Keil MDK-ARM, который считается «каноном», и аппаратной стоимостью всего 4 доллара.
Это руководство разработано так, чтобы быть подробным и простым в использовании. Однако это НЕ , предназначенное для исчерпывающего руководства. Вместо этого он нацелен на то, чтобы охватить основы, чтобы вы могли быстро начать работу, и научит вас, как разбираться в вещах самостоятельно.
Поскольку цель этого руководства — помочь вам перейти от Arduino к STM32, лучше всего иметь представление об основных периферийных устройствах микроконтроллера, таких как GPIO, UART и т. Д., А также о простых цифровых схемах.
Мы также будем использовать простой C, так что приятно иметь с этим некоторый опыт.
Вам действительно нужно купить какое-то оборудование, к счастью, оно очень дешевое, и для начала вам понадобится всего по 1 штуке. Хотя я рекомендую приобрести еще несколько на запчасти. Обычно доставка занимает 1-2 недели, и вы можете заплатить больше за более быструю доставку.
Это необходимо для загрузки программ в чип STM32.К счастью, они продаются по всему ebay и очень дешевы (обычно менее 3 долларов, включая доставку). Просто найдите ST Link v2 на ebay, и он должен выглядеть так:
Это доска, которую мы будем использовать в этом уроке. Вы можете найти его, выполнив поиск «STM32F030F4P6». Они даже дешевле, чем 2 доллара, и должны выглядеть так:
Подробнее об этой плате мы поговорим в следующем уроке.
У вас, вероятно, уже есть один, если вы раньше играли с Arduinos.Если нет, зайдите на ebay и найдите CP2102. Конечно, работают и другие чипы, такие как Ch440 или FTDI. Это просто вопрос предпочтений.
Нажмите «Загрузить ZIP» в правом верхнем углу, чтобы получить файлы уроков, а затем просто следуйте инструкциям на этой веб-странице.
Если вам не терпится приступить к делу, щелкните урок ниже и приступайте к работе!
Урок 0: Настройка и мигающий светодиод
Урок 1: Передача UART
Урок 2: Внешние прерывания GPIO
Урок 3: Прием UART и внешние файлы
Урок 4: Таймеры, ШИМ и сторожевой таймер
Урок 5: SPI и I2C
Урок 6: ОСРВ
Урок 99: Разное
Если вы не торопитесь, я предлагаю продолжить чтение, пока я расскажу о проблеме Arduino, предстоящей тенденции 32-битных микроконтроллеров и схеме именования частей STM32.
Теперь есть много веских причин оставаться в экосистеме Arduino. В конце концов, это в первую очередь дало толчок революции производителей. Последовательное оборудование, простая IDE и отличная поддержка сообщества означали, что людям стало проще, чем когда-либо, начать создавать то, что они хотят, а уровень абстракции оградил их от мелочей низкого уровня, таких как конфигурация периферии и настройки предохранителей.
Это все хорошо, и большинству людей это вполне устраивает.Однако, когда вы посмотрите на реальный чип на большинстве Arduinos, вы найдете устаревший ATmega328P, 8-битный чип десятилетней давности с крошечным объемом оперативной памяти, ограниченными периферийными устройствами и неторопливой тактовой частотой. В результате в коммерческих ситуациях подобные 8-битные программы в основном используются в таких дорогостоящих приложениях, как дешевые игрушки. И мир во многом перешел на 32-битные микроконтроллеры.
Я не говорю, что 8-битные Arduinos стали совершенно бессмысленными, на самом деле они являются отличными инструментами обучения и более чем подходят для большинства хобби-проектов.Это просто , если вы хотите пойти дальше по пути встраиваемой разработки, старый добрый Arduino просто не собирается его сокращать.
Сегодня на рынке представлено огромное количество 32-битных микроконтроллеров, большинство из которых используют архитектуру ARM Cortex-M. ARM выдает лицензию на это заинтересованным компаниям, в которые они добавляют свои собственные специальные функции и периферийные устройства. Это исключает затраты на разработку собственной архитектуры с нуля и является одной из причин, почему ARM сегодня так широко используется в мобильных вычислениях.
Популярные примеры включают линейку STMicroelectronics STM32, линию LPC от NXP и собственную линию SAM от Atmel. Я использую STM32 в этом руководстве из-за его относительно большого сообщества, красивого графического инструмента настройки, низкой стоимости dev-board и обилия документации.
STM32 также широко используются в реальной потребительской электронике, например, Amazon Dash Button, драйверы 3D-принтера, Apple Watch, Fitbit, робот BB-8, у Nintendo Switch их 3 !.
Эти 32-битные чипы обычно работают быстрее, имеют гораздо больше памяти и периферийных устройств и даже дешевле, чем сопоставимые 8-битные чипы.Чтобы продемонстрировать, вот сравнение между Arduino и моим обычным чипом STM32, STM32F072C8T6:
.Результат говорит сам за себя даже для младшего чипа STM32. Вот краткое описание:
Даже экономичная серия F0 превосходит Arduino по мощности и периферийным устройствам. В результате вы сможете разрабатывать более крупные и сложные программы с более высокой производительностью и большим количеством возможностей подключения. RTOS также больше не является несбыточной мечтой, как на Arduinos.
Аппаратная отладка поддерживается на всех чипах STM32, что означает, что у вас есть пошаговый режим, точки останова, программа просмотра памяти и все обычные вещи. Больше не нужно полагаться на println ()
, как на Arduino.
Есть сотня вариантов STM32 на выбор. Вы можете перейти от 50 центов STM32F0 до 400 МГц STM32H7. Все они используют один и тот же инструмент и структуру кода, поэтому переносить между ними тривиально легко.Они также в основном имеют одинаковую распиновку для данного типа корпуса, поэтому вы можете просто установить более мощный чип, не меняя конструкцию схемы, если возникнет необходимость.
Все STM32 имеют встроенный загрузчик для загрузки прошивки без использования программатора. Это можно сделать через последовательный порт, USB или даже через шину I2C, SPI и CAN, не занимая пользовательскую флеш-память, как это делает Arduino.
Все цифровые выводы устойчивы к напряжению 5 В, поэтому их можно безопасно подключать к устаревшим системам.
Если вы разрабатываете продукт и делаете собственную печатную плату, использование чипа STM32 намного дешевле, компактнее и чистее, чем установка на него всего Arduino, особенно если вы выполняете производственный цикл.
Конечно, есть причины, по которым STM32 не так популярен среди производителей, как Arduinos, и это лишь некоторые из них:
Программирование на STM32 немного сложнее, чем на Arduino, но в результате вы получаете гораздо больший контроль над периферийными устройствами.Кроме того, не так много руководств, дающих краткие и четкие инструкции по , как начать работу с . Я надеюсь, что это изменит ситуацию.
Вы захотите получить доску для разработчиков, а ее просто не так много. Несколько штук ST делает самостоятельно, а на eBay есть несколько дешевых. Мы коснемся этого позже.
Очевидно, что сообщество STM32 не так активно, как сообщество Arduino, и в результате доступно не так много готовых к использованию библиотек.Я надеюсь, что это руководство поможет в этой ситуации, и мы рассмотрим написание ваших собственных библиотек, а также преобразование существующих библиотек Arduino.
, такие как STM32, намного мощнее и универсальнее, чем 8-битные чипы, и именно в этом направлении промышленность сейчас движется. Это следующий логический шаг, если вы хотите выйти за рамки ограничений Arduino.
Поскольку существуют сотни чипов STM32, я думаю, было бы неплохо узнать, как они называются.Вот официальное соглашение об именах:
Посмотрев на 2 символа сразу после STM32
, вы также можете определить, какое ядро процессора ARM использует чип:
STM32 серии | Ядро ARM |
---|---|
F7, H7 | Cortex-M7F |
F4, F3, L4 | Cortex-M4F |
F2, F1, L1 | Cortex-M3 |
L0 | Cortex-M0 + |
F0 | Cortex-M0 |
Обратите внимание, как вы можете оценить возможности, просто взглянув на номера функций.Вообще говоря, чем больше число, тем лучше производительность и разнообразие периферийных устройств, но также и дороже.
Щелкните здесь, чтобы просмотреть спецификации всех микросхем STM32.
Blue Pill — еще одна очень популярная плата для разработчиков с чипом STM32F103. Однако лично мне он не очень нравится по ряду причин:
STM32F1 — это очень старый дизайн (которому более 10 лет в 2018 году), поэтому отсутствуют некоторые удобные функции более поздних чипов, такие как инверсия контактов TX / RX, встроенные подтяжки USB, резервное копирование даты RTC и многое другое.
Кроме того, многие периферийные устройства просто отсутствуют по сравнению с более новыми чипами STM32F0, например аналоговые компараторы, I2S, HDMI_CEC и так далее.
STM32F1 имеет несколько неприятных ошибок проектирования оборудования, на которые следует обратить внимание при использовании определенных периферийных устройств.
Есть тонны поддельных чипов STM32F103!
серии STM32F0 дешевле.
STM32F0 имеет бесплатную лицензию Keil MDK без ограничения размера кода.
Поэтому я рекомендую вначале начать с более новых чипов STM32F0.
Вот и все для введения! На данный момент вы должны понимать преимущества 32-битных микропроцессоров и заказывать необходимое оборудование на ebay.
В следующем уроке мы подробно рассмотрим плату разработчика, необходимое программное обеспечение, как все подключить и напишем свою собственную программу мигания.
НАЖМИТЕ МЕНЯ, ЧТОБЫ ПЕРЕЙТИ К СЛЕДУЮЩЕМУ УРОКУ
Добро пожаловать в первое руководство из серии руководств.Это руководство предназначено для новичков (любителей, студентов), которые хотят начать работу с микроконтроллерами STM32, но не знают, как , как , или , где , чтобы начать работу.
Это руководство дает вам обзор доступного аппаратного и программного обеспечения для работы с микроконтроллерами STM32. Кроме того, он кратко познакомит вас с семейством микроконтроллеров STM32.
Все руководства, кроме этого, предполагают, что вы будете использовать проект на основе STM32. Чтобы следовать приведенным ниже руководствам, вам потребуется базовое понимание языка программирования C.Предварительный опыт работы со встроенной платформой не требуется.
STM32 не относится к одному конкретному микроконтроллеру. Это название, которое STMicroelectronics дала семейству микроконтроллеров на базе ARM Cortex-M. Само семейство STM32 можно разделить на несколько групп, которые, в свою очередь, можно разделить на серии.
В настоящее время семейство STM32 состоит из пятнадцати серий. Эти серии сгруппированы в четыре группы: High Performance, Mainstream, Ultra Low Power и Wireless.В следующем списке кратко описывается каждая серия:
Для начала вам понадобится хотя бы одна плата разработки.Без платы разработки вы не сможете правильно запускать или отлаживать свой код. Если у вас уже есть макетная плата, вы можете пропустить эту главу.
Семейство STM32 состоит из множества различных микроконтроллеров. Новичку сложно выбрать один. К счастью, большинство вещей, которые вам нужно изучить в первую очередь, являются общими для всех микроконтроллеров семейства STM32. Это означает, что вы можете начать практически с любого микроконтроллера STM32.
Есть две серии, которые лучше подходят для начинающих, чем другие серии.Серии STM32F1 и STM32F4. Причина проста:
Обе серии существуют уже давно и до сих пор популярны среди любителей. Это означает, что для устройств этой серии доступно много ресурсов. Кроме того, устройства серии STM32F1 не такие сложные, как большинство других частей.
Большинство плат для разработки предназначены для работы с минимальным количеством компонентов. Они разработаны таким образом, чтобы быть максимально дешевыми и никоим образом не ограничивать пользователя.Есть также платы с дополнительными компонентами, такими как светодиоды, датчики и память.
Большинство контактов, если не все, микроконтроллера открываются через заголовки для облегчения доступа. Также имеется как минимум один выделенный заголовок для подключения отладчика.
Макетные платы производятся разными партиями. STMicroelectronics предлагает три различных диапазона плат для разработки:
Есть также много плат, которые можно купить на Ebay и AliExpress.Самыми популярными из них являются Blue Pill и Black Pill. Последний является улучшенной версией первого.
Платы Nucleo и Discovery очень хорошо подходят для абсолютных новичков. Они гарантированно работают правильно и включают встроенный отладчик. И все это по доступным ценам. Если у вас очень ограниченный бюджет, вы можете купить одну из китайских плат для разработки. Для начинающих рекомендуются следующие доски:
Если вы хотите начать работу с проектом на базе STM32, вам не нужно делать много выбора со стороны программного обеспечения. Проект на базе STM32 разработан для использования с GNU Arm Embedded Toolchain.STM32-base можно использовать с любимым редактором кода. Рекомендация для редактора — Visual Studio Code.
Другое программное обеспечение, обсуждаемое в этой главе, можно использовать, если вы не хотите использовать проект на базе STM32. Другое программное обеспечение обсуждается, чтобы дать вам лучший обзор всего доступного программного обеспечения для микроконтроллеров STM32.
IDE — это интегрированная среда разработки. Обычно это означает, что после установки IDE готова к использованию без каких-либо дополнительных действий.IDE устанавливают все необходимое программное обеспечение, такое как компиляторы и драйверы, после их установки.
Некоторые IDE бесплатны, для других требуется покупка лицензии. Перечисленные здесь IDE потенциально интересны новичкам и любителям, поскольку они бесплатны. Полный обзор доступных IDE см. На веб-сайте ST.
предлагают, помимо IDE, собственный API для управления устройством.Подобные платформы обычно предназначены для создания прототипов. Для микроконтроллеров STM32 доступны две платформы.
Первый — STM32duino. Эта платформа реализует хорошо известный Arduino API для микроконтроллеров STM32. Его можно использовать с Arduino IDE.
Второй — Arm Mbed. Эта платформа поддерживает не только микроконтроллеры STM32. Он поддерживает широкий спектр устройств от разных производителей. Mbed включает ОС, специально разработанную для приложений Интернета вещей.Он имеет как облачную IDE, так и загружаемый вариант.
ST предлагает CMSIS и HAL для каждой серии устройств. CMSIS содержит все определения регистров и периферии, необходимые для использования доступных периферийных устройств на микроконтроллере. HAL — это библиотека более высокого уровня, которая предлагает переносимость кода между различными сериями. Код CMSIS и HAL распространяется в так называемых пакетах STM32Cube.
Популярная альтернатива официальной CMSIS с открытым исходным кодом — libopencm3.Этот проект направлен на создание библиотеки прошивки с открытым исходным кодом для микроконтроллеров Arm Cortex-M. Поддерживаются не все серии STM32.
Главное меню Учебники Библиотека кодов для ЖК-дисплея Микроконтроллеры ATMEL AVR Микроконтроллеры STMicro ST7 Проекты Программное обеспечение | Оценочная плата STM32VLDISCOVERY Конечно, нам нужно создать какое-то внешнее оборудование, потому что на STM32LVDISCOVERY установлены только два светодиода и две кнопки — одна для СБРОСА, а другая для пользовательских приложений.Плата Discovery имеет два длинных ряда выводов и один короткий (между ними) со всеми важными сигналами от микроконтроллера и напряжениями источника питания. Из-за короткого разъема плату STM32VLDISCOVERY нельзя ставить на обычную беспаечную плату. Базовая плата для Discovery Board будет описана в одной из статей. В этом руководстве показано, как писать приложения для устройств STM32 без использования библиотеки STM32 StdPeriph . Эта библиотека, на мой взгляд, не лучшее решение для написания приложений для STM32, и я покажу Вам, что писать приложения без этой библиотеки легко и весело.Хотя это руководство основано на микросхемах STM32 Value Line и плате STM32VLDISCOVERY, в большинстве случаев также можно использовать для других устройств STM32F1 (основных) и других плат для разработки. Статьи : |
В следующих нескольких руководствах мы узнаем о плате обнаружения STM32F.Прежде всего, мы представим плату обнаружения STM32F, а затем перейдем к их IDE и, наконец, обсудим ее сложное программирование. STM32F имеет множество приложений. Однако найти точные руководства по программированию довольно сложно. Итак, поехали!
Сказать привет плате обнаружения STM32FSTM32F является представителем класса 32-битных микроконтроллеров arm , разработанных STMicroelectronics. Различные чипы STM32F имеют разные характеристики; хотя все они используют 32-битный микроконтроллер.В нашем случае Cortex-M4 имеет тактовую частоту 84 МГц, 512 КБ флэш-памяти, 96 КБ SRAM, несколько контактов, которые могут быть запрограммированы как GPIO или использоваться в других протоколах, и предварительно включенный отладчик / программатор. .
STM32 имеет множество приложений. В нем размещается множество коммуникационных периферийных устройств, которые можно использовать для подключения всех видов электронных устройств; как датчики, так и исполнительные механизмы, например ИК-датчики, двигатели и т. д.
Различные микроконтроллеры семейства STM32 обладают разными характеристиками и функциями.Например, некоторые из них, такие как STM32F0, имеют тактовую частоту всего 24 МГц, в то время как некоторые из них, такие как STM32H7, работают до 400 МГц. В более продвинутых моделях также есть модуль с плавающей запятой (FPU) для приложений численной обработки. Ниже приведен список плат STM32
.Теперь мы обсудим серию STM32F4 в наших руководствах.
STM32F401 Плата открытияДля наших руководств мы будем использовать плату обнаружения STM32F401. Микроконтроллеры STM32F401 являются частью линейки устройств STM32 Dynamic Efficiency ™. Эти устройства предлагают наилучший баланс динамического энергопотребления (в рабочем режиме) и производительности обработки, в то же время объединяя большое количество дополнительных функций в компактных корпусах.
Эти микроконтроллеры обеспечивают производительность ядра Cortex®-M4 с FPU.Они работают с тактовой частотой 84 МГц, обеспечивая при этом исключительно низкие значения энергопотребления в режимах работы и остановки.
Технические характеристики можно скачать с
Для программирования STM32F401 можно использовать несколько IDE.Некоторые включают:
. Для наших руководств мы будем использовать Atollic.
Атоллик Истинная СтудияAtollic True Studio — это самая удобная и дружественная к библиотекам IDE для программирования STM32F401. Вы можете скачать последнюю версию здесь
Ссылка: https://atollic.com/resources/download/windows/
Здесь введите свои данные и выберите следующие параметры
Теперь скачайте последнюю версию.В следующем уроке мы увидим, как установить STM32F401 и начать работу с ним. Следуйте этому руководству, чтобы узнать больше о программировании портов GPIO платы обнаружения STM32:
Как использовать контакты GPIO платы обнаружения SMT32F4
all: main.bin main.o: main.S arm-none-eabi-as -mthumb -o main.o main.S main.elf: main.o arm-none-eabi-ld -Ttext 0x8000000 main.o -o main.эльф main.bin: main.elf arm-none-eabi-objcopy -S -O двоичный файл main.elf main.bin рука-none-eabi-size main.elf чистый: rm main.elf main.o main.bin a.outВ качестве первого main.S компилируется программой сборки gcc «as». Создает файл main.o. Затем этот файл нужно связать. Компоновщик «перемещает» адреса в моих метках сборки в реальное пространство памяти, которое для STM32 находится в 0x8000000. Вот почему есть параметр -Ttext. Это также можно сделать с помощью скрипта компоновщика, но мое решение сейчас упрощает задачу.Термин «текст» для нашего кода используется по историческим причинам, потому что в первые дни «текстовый» раздел использовался для кода, который не изменяется. Разделы .data и .bss предназначены для памяти, но они будут рассмотрены в следующих руководствах.
После линковки получаю файл main.elf. Это все еще объектный файл с возможной отладочной информацией в нем, и он не может быть напрямую прошит в MCU.
arm-none-eabi-as -mthumb -o main.o main.S
arm-none-eabi-ld -Ttext 0x8000000 main.o -o main.elf
arm-none-eabi- objcopy -S -O binary main.elf main.bin
arm-none-eabi-size main.elf
текстовые данные bss dec hex имя_файла
12 0 0 12 c main.elf
В моем приложении для увеличения всего 12 байтов, сладко . ОЗУ тоже не используется, поэтому в секциях data и bss стоит ноль.
В Windows вы можете прошить вашу программу на некоторые платы обнаружения STM32F0 с помощью утилиты ST-link.Затем в Menu> Target> MCU Core … вы можете пошагово выполнить мою маленькую программу, и вы увидите, что R0 действительно увеличивается.
(gdb) load main.elf
Раздел загрузки .text, размер 0xc lma 0x8000000
Начальный адрес 0x8000008, размер загрузки 12
Скорость передачи: 35 байт / сек, 12 байт / запись.
(gdb) info reg r0
r0 0x9792b7 9933495
(gdb) si
(gdb) si
(gdb) info reg r0
r0 0x9792b8 9933496
(gdb)
_start:
loop:
ADD R0, R0, # 1
b loop
.long _start
.global _start
framework-arduino-mbed | Фреймворк Arduino, поддерживающий платы с поддержкой mbed |
framework-arduinostm32mxchip | Arduino Wiring-based Framework для Azure MXChip IoT DevKit |
framework-arduinostm32 | Arduino Wiring-based Framework для микроконтроллеров ST STM32 |
каркас-arduinostm32-клен | Arduino Wiring-based Framework для микроконтроллеров ST STM32 (Maple Core) |
рамки-arduinostm32l0 | Arduino Wiring-based Framework для микроконтроллеров ST STM32 (ядро ST STM32L0) |
framework-cmsis | Уровень абстракции оборудования, не зависящий от производителя, для процессоров Cortex-M серии |
framework-cmsis-stm32f0 | Компонент CMSIS для серии STMicroelectronics STM32F0 |
framework-cmsis-stm32f1 | Компонент CMSIS для серии STMicroelectronics STM32F1 |
framework-cmsis-stm32f2 | Компонент CMSIS для серии STMicroelectronics STM32F2 |
framework-cmsis-stm32f3 | Компонент CMSIS для серии STMicroelectronics STM32F3 |
framework-cmsis-stm32f4 | Компонент CMSIS для серии STMicroelectronics STM32F4 |
framework-cmsis-stm32f7 | Компонент CMSIS для серии STMicroelectronics STM32F7 |
framework-cmsis-stm32g0 | Компонент CMSIS для серии STMicroelectronics STM32G0 |
framework-cmsis-stm32g4 | Компонент CMSIS для серии STMicroelectronics STM32G4 |
framework-cmsis-stm32h7 | Компонент CMSIS для серии STMicroelectronics STM32H7 |
framework-cmsis-stm32l0 | Компонент CMSIS для серии STMicroelectronics STM32L0 |
framework-cmsis-stm32l1 | Компонент CMSIS для серии STMicroelectronics STM32L1 |
framework-cmsis-stm32l4 | Компонент CMSIS для серии STMicroelectronics STM32L4 |
framework-cmsis-stm32l5 | Компонент CMSIS для серии STMicroelectronics STM32L5 |
framework-libopencm3 | Библиотека микроконтроллеров ARM Cortex-M с открытым исходным кодом |
каркас-кровать | Arm Mbed OS — операционная система платформы, разработанная для Интернета вещей |
каркас-спл | Стандартная периферийная библиотека для микроконтроллеров ST STM32 |
framework-stm32cubef0 | STM32Cube — это набор инструментов и встроенных программных модулей, доступных бесплатно для быстрой и простой разработки на платформе STM32 (STM32CubeF0 MCU Firmware Package) |
каркас-stm32cubef1 | STM32Cube — это набор инструментов и встроенных программных модулей, доступных бесплатно для быстрой и простой разработки на платформе STM32 (STM32CubeF1 MCU Firmware Package) |
каркас-stm32cubef2 | STM32Cube — это набор инструментов и встроенных программных модулей, доступных бесплатно для быстрой и простой разработки на платформе STM32 (STM32CubeF2 MCU Firmware Package) |
рамки-stm32cubef3 | STM32Cube — это набор инструментов и встроенных программных модулей, доступных бесплатно для быстрой и простой разработки на платформе STM32 (STM32CubeF3 MCU Firmware Package) |
рамки-stm32cubef4 | STM32Cube — это набор инструментов и встроенных программных модулей, доступных бесплатно для быстрой и простой разработки на платформе STM32 (STM32CubeF4 MCU Firmware Package) |
рамки-stm32cubef7 | STM32Cube — это набор инструментов и встроенных программных модулей, доступных бесплатно для быстрой и простой разработки на платформе STM32 (пакет микропрограмм STM32CubeF7 MCU) |
каркас-stm32cubeg0 | STM32Cube — это набор инструментов и встроенных программных модулей, доступных бесплатно для быстрой и простой разработки на платформе STM32 (STM32CubeG0 MCU Firmware Package) |
каркас-stm32cubeg4 | STM32Cube — это набор инструментов и встроенных программных модулей, доступных бесплатно для быстрой и простой разработки на платформе STM32 (STM32CubeG4 MCU Firmware Package) |
каркас-stm32cubeh7 | STM32Cube — это набор инструментов и встроенных программных модулей, доступных бесплатно для быстрой и простой разработки на платформе STM32 (STM32CubeH7 MCU Firmware Package) |
framework-stm32cubel0 | STM32Cube — это набор инструментов и встроенных программных модулей, доступных бесплатно для быстрой и простой разработки на платформе STM32 (STM32Cubel0 MCU Firmware Package) |
framework-stm32cubel1 | STM32Cube — это набор инструментов и встроенных программных модулей, доступных бесплатно для быстрой и простой разработки на платформе STM32 (STM32CubeL1 MCU Firmware Package) |
framework-stm32cubel4 | STM32Cube — это набор инструментов и встроенных программных модулей, доступных бесплатно для быстрой и простой разработки на платформе STM32 (STM32CubeL4 MCU Firmware Package) |
framework-stm32cubel5 | STM32Cube — это набор инструментов и встроенных программных модулей, доступных бесплатно для быстрой и простой разработки на платформе STM32 (пакет микропрограмм STM32CubeL5 MCU) |
каркас-зефир | Zephyr — это масштабируемая, оптимизированная и безопасная ОСРВ нового поколения для нескольких аппаратных архитектур |
каркас-зефир-канопеннод | Canopennode Zephyr module |
framework-zephyr-civetweb | Модуль Zephyr для веб-сервера CivetWeb Embedded C / C ++ |
framework-zephyr-cmsis | Модуль Zephyr для программного интерфейса Стандарт для микроконтроллеров на базе Arm Cortex |
каркас-зефир-фатфс | Модуль Zephyr для файловой системы FatFS |
каркас-зефир-хал-ст | Модуль Zephyr для официальных библиотек, предоставляемых STMicroelectronics |
каркас-зефир-хал-стм32 | ST STM32 HAL для фреймворка Zephyr |
каркас-зефир-libmetal | Модуль Zephyr для уровня абстракции в пользовательских средах Linux, baremetal и RTOS |
framework-zephyr-littlefs | Zephyr модуль для файловой системы littlefs |
каркас-зефир-лорамак-узел | Модуль Zephyr для реализации стека конечных точек LoRaWAN |
каркас-зефир-lvgl | Модуль Zephyr для LittlevGL — встроенная библиотека графического интерфейса с открытым исходным кодом |
каркас-зефир-мбедтлс | Модуль Zephyr для библиотеки mbed TLS |
фреймворк-зефир-макубут | Zephyr module for MCUboot — безопасный загрузчик для 32-битных микроконтроллеров |
каркас-зефир-макумгр | Модуль Zephyr для библиотеки управления mcumgr для 32-битных микроконтроллеров |
framework-zephyr-mipi-sys-t | Модуль Zephyr для системного программного обеспечения MIPI Trace |
framework-zephyr-open-amp | Модуль Zephyr для фреймворка Open Asymmetric Multi Processing (OpenAMP) |
каркас-зефир-без резьбы | Модуль Zephyr для OpenThread — реализация сетевого протокола Thread с открытым исходным кодом |
каркас-зефир-сеггер | Модуль Zephyr для библиотеки Segger RTT |
каркас-зефир-соф | Модуль Zephyr для прошивки Sound Open |
рамки-зефир-tfm-mcuboot | Zephyr module for MCUboot — безопасный загрузчик для 32-битных микроконтроллеров (TFM Dependency) |
framework-zephyr-tinycbor | Модуль Zephyr для библиотеки краткого представления двоичных объектов |
framework-zephyr-tinycrypt | Библиотека TinyCrypt обеспечивает реализацию для ограниченных устройств минимального набора стандартных криптографических примитивов для платформы Zephyr |
framework-zephyr-trust-firmware-m | Zephyr module for Trusted Firmware M — эталонная реализация программного обеспечения secure world для ARMv8-M |
инструмент-cmake | CMake — это кроссплатформенное семейство инструментов с открытым исходным кодом, предназначенных для создания, тестирования и создания пакетов программного обеспечения |
инструмент-dfuutil | Утилиты обновления прошивки устройства |
инструмент-dtc | Компилятор дерева устройств |
инструмент-gperf | GNU gperf — идеальный генератор хеш-функций |
инструмент-jlink | Пакет программного обеспечения и документации для отладочных датчиков SEGGER J-Link |
инструмент-ldscripts-ststm32 | Пакет скриптов компоновщика для платформы STMicroelectronics STM32 |
инструмент-ниндзя | Ninja — это небольшая система сборки с упором на скорость |
инструмент openocd | Открыть встроенный отладчик. |