MicroPython на STM32F4xx на собственной печатной плате. Ч.1. Погружение в MicroPython и его возможности

в 13:15, , рубрики: C, c++, circuitpython, micropython, python
MicroPython на STM32F4xx на собственной печатной плате. Ч.1. Погружение в MicroPython и его возможности - 1

Добрый день, друзья!

Это моя первая статья на Хабр да и вообще где-либо поэтому жду от вас полезных комментариев для заполнения пробелов в своих навыках и знаниях. В этой статье попытаюсь подробно указать/рассказать, как я запустил MicroPython на микроконтроллере STM32F411RET6.

MicroPython — это легковесная реализация языка программирования Python, предназначенная для микроконтроллеров. Он предоставляет возможность писать код на Python для управления аппаратным обеспечением и делать какие-либо простецкие проекты (возможно и сложные можно делать, но пока я не могу этого утверждать).

Всё понятно, что может делать С/C++ на STM32, но мне хотелось попробовать поиграться с MicroPython на STM32.

В этой статье я хотел бы подчеркнуть, что разработав собственную печатную плату под микроконтроллер STM32, вы сможете реализовать свой проект на MicroPython (далее - МР)

Охарактеризовать весь этот процесс наверное можно. Для меня он показался трудоемким ввиду отсутствия какой-либо инфы.

Стартуем

Итак, вопрос здесь стоял в том, что сообщество MicroPython (далее MP) зарубежное (discord) и на просторах русскоязычных форумов я нашел всего лишь один сайт. За старт спасибо, а дальше как-то сам.

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

Слой BOTTOM
Слой BOTTOM
Слой TOP

Слой TOP

Схемотехнику этой ПП выложить не могу, но общую обвязку могу предоставить (если статья пройдет песочницу).

Процесс прошивки

MP предоставляет прошивку исключительно для проектов которые присутствуют у них на сайте. Например, вы можете ознакомиться с ними тут.

MicroPython на STM32F4xx на собственной печатной плате. Ч.1. Погружение в MicroPython и его возможности - 4
Доступные МК STM32 для программирования

Доступные МК STM32 для программирования
MicroPython на STM32F4xx на собственной печатной плате. Ч.1. Погружение в MicroPython и его возможности - 6

Это прошивка под STM32F411 blackpill

Эта прошивка, своего рода cross-compiler для реализации MP. Он позволяет компилировать код на Python в байт-код, который выполняется на МК, но мы сделаем свою прошивку.

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

Если вы когда-нибудь использовали STM32 в своём опыте, то наверняка знаете, что у МК есть BOOT MODES.

MicroPython на STM32F4xx на собственной печатной плате. Ч.1. Погружение в MicroPython и его возможности - 7

И для того что бы загрузить прошивку я использую USB OTG FS который находится на пинах PA11 — PA12. Подключаю к кабелю USB‑USB.

Прошивка будет осуществляться через программу STM32CubeProgrammer.

Да совсем забыл, что бы увидеть в STM32Cube наше устройство нужно, нужно на BOOT0 (60 — pin) подать высокий уровень, у меня на плате это 3.3 В.

Без Boot0 будет вот такая картина

Без Boot0 будет вот такая картина
C Boot0 завешенным на +3.3 В мы видим серийник МК и пустой чип.

C Boot0 завешенным на +3.3 В мы видим серийник МК и пустой чип.

Далее мы выбираем нашу прошивку, которую я скачал с сайта MicroPython для blackpill и грузим через Erasing & Programming.

MicroPython на STM32F4xx на собственной печатной плате. Ч.1. Погружение в MicroPython и его возможности - 10

После успешной загрузки для МК на STM32 отключаем USB OTG и перезагружаем устройство. Далее я использую своеобразную IDE Thonny — если так можно ее назвать.

Для подключения STM32 нужно выбирать MicroPython общий

Для подключения STM32 нужно выбирать MicroPython общий

Тут конечно тоже надо пошаманить чутка. Для подключения к плате я использую преобразователь USB — UART c микросхемой SILABS CP2102. Так как IDE не видит подключения USB OTG. И вот тут начинается свистопляска...

MicroPython на STM32F4xx на собственной печатной плате. Ч.1. Погружение в MicroPython и его возможности - 12

Для данного преобразователя нужны дрова, ну ладно скачать - установить не беда. Но тут приходит осознание того (внимательный читатель наверное уже нашел подвох и уже пишет комментарий по этому поводу), что МК на blackpill в другом корпусе и порты то у него плюс-минус расходятся, так что прошивка которую я скачал уже не то что нужно.

Если для вас это будет актуально и интересно я напишу следующую часть. Ну, а если не зайдет, то для меня это будет напоминалка о проделанной работе, вдруг где‑то пригодится и на STM‑ах начнут писать на MicroPython.

Кстати, есть еще CircuitPython, о котором я тоже могу кое‑что написать.

Автор: nikzas

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js