STM32MP157D-DK1开发板固件烧录

本篇介绍STM32MP157D-DK1开发板如何烧录官方固件。

1 开发板基础硬件介绍

1.1 常用接口

板子上的各种接口功如下,本篇固件烧录,主要用的接口包括:

  • CN6:供电接口
  • B2:复位按键
  • CN11:ST-LINK USB(用作串口查看信息)
  • CN9:HDMI显示器接口
  • CN7:Type-C数据烧录

STM32MP157D-DK1开发板固件烧录_第1张图片

1.2 Boot开关

烧录固件时,需要插入MicroSD卡,并切换板子上的BOOT开关。

STM32MP157D-DK1开发板固件烧录_第2张图片

注:此板子上的"Boot 1"连接GND,始终是0

Boot mode Boot 0 Boot 1 Boot 2
USB启动用于烧录固件 0 0 0
不支持 1 0 0
工程启动 0 0 1
microSD卡启动 1 0 1

烧录时,使用烧录固件模式,烧录完成后,使用microSD卡启动模式。

2 烧录准备工作

2.1 准备的必要的硬件

  • Ubuntu虚拟机:搭建烧录软件环境
  • STM32MP157D-DK1开发板
  • Micro SD卡:烧录到SD卡中
  • 5V/3A Type-C电源:供电
  • Typc-C数据线:烧录的数据线
  • 安卓数据线:串口查看烧录信息
  • HDMI显示器:烧录成功后,查看官方固件的Demo
  • 鼠标:查看Demo时的鼠标操作

2.2 安装软件STM32CubeProgrammer工具

有Windows和Linux两种,这里介绍在Ubuntu虚拟机的Linux系统中安装的操作步骤。

下载STM32CubeProgrammer软件:https://www.st.com/en/development-tools/stm32cubeprog.html#get-software

STM32MP157D-DK1开发板固件烧录_第3张图片

解压并安装,解压后会多出一个jre文件夹和两个文件,然后执行SetupSTM32CubeProgrammer-2.15.0.linux文件进行安装:

unzip en.stm32cubeprg-lin-v2-15-0.zip
ls
./SetupSTM32CubeProgrammer-2.15.0.linux

会有界面形式的安装提示:

STM32MP157D-DK1开发板固件烧录_第4张图片

安装完成后,设置环境变量(可以在准备烧录到时候再临时设置)

export PATH=/home/xxpcb/myTest/STM32MP157/tool/cubeprog/bin:$PATH

2.3 安装USB serial link for flashing

安装一个驱动用于识别开发板的USB烧录接口。

还是在Ubuntu虚拟机中操作:

sudo apt-get install libusb-1.0-0

然后将一些文件拷贝到/etc/udev/rules.d中:

cd ~/myTest/STM32MP157/tool/cubeprog/Drivers/rules
sudo cp *.* /etc/udev/rules.d/

STM32MP157D-DK1开发板固件烧录_第5张图片

2.4 下载镜像

下载STM32MP1 Starter Package镜像,地址https://www.st.com/en/embedded-software/stm32mp1starter.html#get-software

STM32MP157D-DK1开发板固件烧录_第6张图片

下载后名为:en.flash-stm32mp1-openstlinux-6.1-yocto-mickledore-mp1-v23.06.21.tar.gz

然后拷贝到Ubuntu中并解压:

cd /home/xxpcb/myTest/STM32MP157/STM32MPU-Ecosystem-v5.0.0/Starter-Package
tar xvf en.flash-stm32mp1-openstlinux-6.1-yocto-mickledore-mp1-v23.06.21.tar.gz

二进制文件和 Flash 布局文件位于stm32mp1-openstlinux-6.1-yocto-mickledore-mp1-v23.06.21/images/stm32mp1/ 目录中:

STM32MP157D-DK1开发板固件烧录_第7张图片

比如STM32MP157D-DK1开发板需要用的就是FlashLayout_sdcard_stm32mp157d-dk1-optee.tsv这个。

3 烧录

3.1 连接板子与电脑

STM32MP157D-DK1开发板固件烧录_第8张图片

步骤如下:

  • 板子插入SD卡
  • BOOT拨码开关都拨到0
  • 连接电源线(也可最后上电)
  • 连接Type-C数据线、安卓数据线
  • 按下复位键
  • 安卓数据线本篇是串口功能,连接Windows电脑的串口软件,用于查看信息
  • Type-C数据线是烧录线,连接Ubintu虚拟机,注意是DFU这一个,如下图

STM32MP157D-DK1开发板固件烧录_第9张图片

3.2 命令行烧录

进入到下载的固件目录,到达stm32mp1这一级

cd ~/myTest/STM32MP157/STM32MPU-Ecosystem-v5.0.0/Starter-Package/stm32mp1-openstlinux-6.1-yocto-mickledore-mp1-v23.06.21/images/stm32mp1

然后可以线查看烧录工具的版本和板子连接信息是否正常:

STM32_Programmer_CLI --h
STM32_Programmer_CLI -l usb

如下可正常打印出来,即为正常:

STM32MP157D-DK1开发板固件烧录_第10张图片

然后使用如下命令进行烧录:

STM32_Programmer_CLI -c port=usb1 -w flashlayout_st-image-weston/optee/FlashLayout_sdcard_stm32mp157d-dk1-optee.tsv

第一次烧录出现了错误提示:

STM32MP157D-DK1开发板固件烧录_第11张图片

查看串口打印,发现是电源供电电流不够(我第一次使用的是一个2A的电源):

STM32MP157D-DK1开发板固件烧录_第12张图片

换用3A的电源重新烧录,另外注意,在开始烧录的时候,板子会被自动重启(复位),需要在虚拟器的USB设置处重新连接USB download这个,否则还是会报错。

STM32MP157D-DK1开发板固件烧录_第13张图片

烧录需要几分钟时间,· 最后烧录成功后的打印信息如下:

STM32MP157D-DK1开发板固件烧录_第14张图片

4 演示

https://www.bilibili.com/video/BV1uN41157F7
STM32MP157D-DK1开发板固件烧录_第15张图片

5 总结

本篇介绍了STM32MP157D-DK1开发板烧录官方固件的详细过程,记录了烧录过程的实际操作结果和中间遇到的问题及解决方法,最后演示烧录后的效果。

你可能感兴趣的:(STM32MP157D-DK1,stm32,嵌入式硬件,单片机)