升级pyboardCN V2的固件

STM32系列
pyboard相关
回复
头像
shaoziyang
帖子: 3917
注册时间: 2019年 10月 21日 13:48

升级pyboardCN V2的固件

#1

帖子 shaoziyang »

pyboardCN V2的MCU是STM32F405,可以使用STM32支持的任何一种方式,所以我们可以通过下面几种方式升级:
  • USB(DFU)
  • 串口
  • SWD
这几种方式中SWD方式速度最快,但是需要连接外部的ST-Link或Jlink等编程器,连线麻烦;DFU最方便,只要一个usb线就可以,但是在windows系统上需要安装dfu驱动;串口方式速度最慢,需要一个外部的USB转TTL的转换器。


DFU

DFU是最容易使用的升级方式之一,因为它不需要额外的硬件,只要一个usb线配合dfu软件就足够。先将BOOT0连接到3V3,然后按下复位键,在正常情况下,1-2秒就会自动进入DFU模式。第一次使用时需要安装DFU的驱动,驱动文件就在DfuSe软件的安装目录下。识别出DFU设备后,就可以选择固件文件,然后点右下角的upgrade按钮开始升级。

注意DFU软件需要使用DfuSe,不要使用后来出的一个三合一的编程软件STM32CubeProg。

(在linux下,需要使用 dfu-utils 这个工具,如果有熟悉的网友请补充一下用法。)


串口

STM32单片机内置了bootloader,可以通过串口方式升级程序。在pyboardCN V2上,只能使用B10(UART3_TX)/B11(UART3_RX),因为其它引脚被占用了。升级时,不要通过USB供电(或者使用充电线而不要用数据线,避免被识别为DFU模式),然后通过USB转TTL转换器,将串口连接到B10/B11(注意两边串口的TX/RX要交叉连接)。先运行Flash Loader程序,选择好串口(其它参数不用修改),点击Next,然后短连BOOT0和3V3,按下复位键,等待程序获取握手信号。如果通信正常,就会自动识别出芯片的型号,进入下一个界面后就可以选择固件文件,然后开始升级。


SWD方式

将PA13(SWDIO)/PA14(SWCLK)连接到ST-Link、jlink等支持SWD方式的编程器,并给板子供电,就可以通过SWD下载程序。这种方式大家应该是最熟悉的,就不多重复了。


这三种方式中,只有DFU方式会保留用户磁盘中的数据,其它两种方式会清理flash中内容,升级后用户文件会丢失。


相关软件

BCWG
帖子: 12
注册时间: 2019年 11月 9日 23:52

Re: 升级pyboardCN V2的固件

#2

帖子 BCWG »

这个帖子还是让我学到些东西

haorongMango
帖子: 3
注册时间: 2019年 12月 11日 15:03

Re: 升级pyboardCN V2的固件

#3

帖子 haorongMango »

补充:
1)如果要使能W5500,需要修改ports/stm32/mpconfigport.mk文件的MICROPY_PY_WIZNET5K值为5500
2)自行编译固件后烧写到板子,虚拟U盘会出现频繁“闪退”现象,因ports/tm32/spibdev.c使用的是带cache版本的flash读写函数导致的。
    修改作者提供的bdev.c(板级移植文件里自带这个文件),给spiflash_config结构体变量添加cache:
    .bus_kind = MP_SPIFLASH_BUS_SPI,
    .bus.u_spi.cs = MICROPY_HW_SPIFLASH_CS,
    .bus.u_spi.data = (void*)&soft_spi_bus,
    .bus.u_spi.proto = &mp_soft_spi_proto,
    .cache = &(mp_spiflash_cache_t){.block=0xFFFFFFFF, .user=NULL,},   // <<--- 添加这行(复合文字)
};
折腾了几天,通过printf+delay通过usb串口输出,终于找到问题。这里mark一下避免其他兄弟继续踩坑。。。

xiechc
帖子: 2
注册时间: 2020年 7月 8日 11:16

Re: 升级pyboardCN V2的固件

#4

帖子 xiechc »

有没有快速参考文档, Micropython 关于STM32f405 特有的

头像
shaoziyang
帖子: 3917
注册时间: 2019年 10月 21日 13:48

Re: 升级pyboardCN V2的固件

#5

帖子 shaoziyang »

这部分和官方的功能是一致的,可以参考官方快速指南,或者社区中文教程

回复

  • 随机主题
    回复总数
    阅读次数
    最新文章