STM32上的Circuitpython¶
该端口将 ST Microelectronics STM32 系列 MCU 引入 Circuitpython。STM32 芯片具有广泛的功能,从低于 1 美元的低功耗 STM32F0 到以 400+ MHz 运行的双核 STM32H7。目前,仅支持 F4、F7 和 H7 系列,由 ARM Cortex M4 和 M7 处理器提供支持。
有关按系列和单个芯片系列分类的功能的更多信息,请参阅 ST Microelectronics 网站: st.com/en/microcontrollers-microprocessors/stm32-high-performance-mcus.html
STM32 SoC 在时钟速度、外设功能、引脚分配及其在此端口中的支持方面因产品而异。有关按系列排序的已启用模块的完整列表,请参阅mpconfigport.mk
该端口的组织方式:¶
boards/ /包含端口上可用的每个开发板和分支的配置文件,以及系统文件以及共享和 SoC 特定的链接器文件。电路板配置包括电路板的引脚映射、振荡器信息、特定于电路板的构建标志以及适用的 OLED 或 TFT 屏幕设置。
common-hal/ 包含特定于端口的模块实现,由共享模块和共享绑定使用。
packages/ 包含特定于包的引脚绑定(LQFP100、BGA216 等)
外设/包含外设设置文件和外设映射信息,按系列和子变体排序。此目录中的大多数文件都可以使用tools/ 中的 python 脚本生成。
用于通过 CubeMX 生成的 ST HAL 和 LL 文件的st-driver/子模块。与 TinyUSB 共享。
supervisor//包含内部闪存、串行和 USB 的特定于端口的实现,以及port.c文件,它在启动时初始化端口。
工具/ python 脚本,用于在外设/和板/中生成外设和引脚映射文件。
在根级别,请参阅mpconfigboard.h和mpconfigport.mk以获取特定于端口的设置和已启用模块的列表。
构建说明¶
按照 Adafruit 网站上的指南,确保您的 Circuitpython 克隆已准备好构建。这包括安装工具链、同步子模块和运行mpy-cross
.
一次性构建任务完成后,您可以随时通过导航到端口目录进行构建:
$ cd ports/stm
要为特定的电路板构建,请运行:
$ make BOARD=feather_stm32f405_express
您还可以使用 makefile 中可用的某些标志进行构建,具体取决于您的电路板和开发目标。以下标志将为预闪存的 UF2 引导加载程序启用调试信息和正确的闪存位置:
$ make BOARD=feather_stm32f405_express DEBUG=1 UF2_BOOTLOADER=1
USB连接¶
通过 USB 电缆将您选择的开发板连接到主机 PC。请注意,对于大多数 ST 开发板,例如 Nucleo 和 Discovery 系列,您必须使用辅助 OTG USB 连接器来访问 circuitpython,因为主要 USB 连接器将连接到内置 ST-Link 调试器而不是芯片本身。
在许多情况下,此 ST-Link USB 连接器仍需要连接到电源 才能打开芯片 - 请参阅您的特定产品手册了解详细信息。
刷入引导程序¶
大多数 ST 开发板都带有可通过 USB 访问的内置 STLink 编程和调试探针。该编程器可能会显示为MBED
主机 PC 上的驱动器,通过 .bin 文件实现简单的拖放编程,或者他们可能需要像OpenOCD或StLink-org/stlink这样的工具来运行刷新和调试命令。
许多业余爱好者和 3rd 方开发板也暴露了 SWD 引脚。这些可以与便宜的stlink调试器或其他普通程序员一起使用。
对于非 ST 产品或没有调试器的用户,高性能系列(F4、F7 和 H7)中的所有 STM32 板都包含一个存储在 ROM 中的内置 DFU 引导加载程序。当芯片复位时,通过确保 BOOT0 引脚保持为逻辑 1 并且 BOOT1 引脚保持为逻辑 0 来访问该引导加载程序(ST Appnote AN2606)。大多数芯片默认将 BOOT 保持为低电平,因此这通常可以通过将跳线从 3.3V 电源连接到 BOOT0 引脚(如果它暴露)或在芯片复位时翻转适当的开关或按钮来实现。一旦芯片在 DFU 模式下启动,BOOT0 不再需要保持高电平,可以释放。Feather STM32F405 指南中提供了一个示例。
Windows用户需要安装stm32cubeprog, 而Mac和Linux用户需要安装dfu-util
带有或。Feather F405 guide中提供了更多详细信息。 brew install dfu-util
sudo apt-get install dfu-util
使用 DFU-Util 刷新 circuitpython 图像¶
按照上一节中的步骤确保电路板处于 dfu 模式。然后运行:
$ make BOARD=feather_stm32F405_express flash
或者,您可以导航到构建目录并运行原始dfu-util
命令:
dfu-util -a 0 --dfuse-address 0x08000000 -D firmware.bin