tag 标签: H743ZI

相关博文
  • 热度 10
    2019-6-3 20:23
    14364 次阅读|
    4 个评论
    NUCLEO_H743ZI移植MicroPython
    H743 的开发板拿到手有一段时间了,本来我是想先在 Ubuntu18.04 (因为我个人的笔记本目前只有这个系统)下搞个纯 Linux 的开发环境,然后再做点其他评测的,奈何 Linux 版本下的 stlink 驱动编译后居然没 H743 的支持,暂时搁置,后面抽点时间看看怎么把 H743 的支持加到 stlink 源码去,再编译下(对移植过程兴趣的可以到我另一篇博文看看 https://mbb.eet-china.com/blog/1779404-406940.html )。 评测时间快到了,我就换了我工作的电脑来完成评测吧。开发环境的搭建可能没从零开始那么详细,各位见谅。评测环境是 Win7+Ubuntu12.04-server 版。 去年开始受到了 AI 的蛊惑,体验了一下 Python 编程的简单易用,今年顺手考过了二级 Python 。但那都是 PC 平台上的,一直想体验下 Python 的嵌入式编程。所以这次的评测,我打算围绕 MicroPython 进行。第一步先给 H743 移植 MicroPython 支持;第二步引入 MicroPython 网络编程;最后还想在 MicroPython 的基础上体验下 OpenMV (这个要加个子板)。这些评测内容较多,当然不太可能在最近一下子完成,我会持续的在这里发博文,有兴趣的继续关注即可。 好,以上是闲话。下面开始评测的第一部分内容,移植 MicroPython 支持。 开始前,有必要了解下 MicroPython 是什么,看下官方描述即可: 图 0-MicroPython 官方描述 1. 下载 / 安装交叉编译链 由于 H743 用的其实是 arm 的 thumb 指令,在 PC 平台上需要使用交叉编译链来编译。当然裸机编程最好用的是官方的编译链或 sdk 啦,此处为了后续用 MicroPython 开发,就安装 arm 的交叉编译链。这里我图省事,直接下载编译链安装了。如有需要,也可以从我的网盘下载(链接 : https://pan.baidu.com/s/1YvkWy-pYcWgYr5dZ8J7f7A 提取码 : hfi8 )。 注意安装编译链时,需要把解压的路径整个加入到 $PATH 变量,否则后面用交叉编译链编译时可能导致编译失败。 例如,把交叉编译链下载到 Ubuntu ,并解压后,放在 ~/ toolchain/gcc-arm-none-eabi-5_4-2016q3 目录,则在 ~/.bashrc 里加一句 export PATH="$HOME/toolchain/gcc-arm-none-eabi-5_4-2016q3/bin:$PATH" 然后执行 source ~/.bashrc ,这样就安装完成了。 装完之后确认下版本号: 图 1-arm 交叉编译链 2. 下载安装 MicroPython 直接到 github 下载最新的 MicroPython $ git clone https://github.com/micropython/micropython.git MicroPython 支持的处理器在 ports 目录下。支持的版型在 micropython/ports/stm32/boards 里,可以看到,里面已经支持了 NUCLEO_H743ZI 了: 图 2 micropython stm32 版型支持 MicroPython 的 stm32 库支持是放在 micropython/lib/stm32lib 目录下,刚才的 git clone 后,该目录还是空的,需要继续下载 lib (继续在源码下载目录执行以下命令): $ git init $ git submodule update --init 下载成功后可以看到这些库的目录。 图 3 MicroPython stm32lib 在 ports/stm32 目录下执行 micropython/ports/stm32$ make BOARD=NUCLEO_H743ZI 编译最后看到下面结果,表示成功: 图 4-MicroPython 编译成功 编译结果在 micropython/ports/stm32/build-NUCLEO_H743ZI 目录下的 firmware.hex 。注意,此处我是在 Ubuntu 系统下编译,最后通过 samba 共享到 Win10 的,这些可以通过 Windows+ 虚拟机安装 Ubuntu 进行,此处操作步骤不详细描述,还不懂的网上搜一下其他教程。 我把编译出来的hex上传了一份到网盘,想直接验证的朋友可以直接下载使用: 链接:https://pan.baidu.com/s/1_lJkgBsOnuXhd-UuXInkYA 提取码:06wl 烧录试试,打开烧录软件 stsw (可到官网下载 https://www.stmcu.org.cn/document/detail/index/id-214265 ),加载 firmware.hex ,下载: 图 5- MicroPython 编译结果下载 烧录完成后,需要连接 usb slave 口连线到 PC 上( MicroPython 的虚拟盘),而 stlink 的那个 usb 口,可以断开和电脑的连接,但因为板子还需要供电,所以 stlink 的 usb 口我就直接拿移动电源给了 5V 过去。我看网上有些教程说两个 usb 口都连 PC ,不知道是不是软硬件环境不一样,我两个都连 PC 时, MicroPython 的虚拟盘一直都不能正常连接,时通时断的。所以我最后就只把 usb slave 口连到 PC 上, stlink 的 usb 口用 5V 供电(充电宝或其他可以提供 5V 的电源都可以),这样 MicroPython 的虚拟盘就正常了,连线如下图示: 图 6- 烧录成功后板子的连线 之后,就可以直接在 PC 上的 pybflash 目录下用 python 编程。 图 7-pybflash 虚拟盘 在 pybflash 虚拟盘里,有这几个文件: 图 8-pybflash 虚拟盘内容 直接编辑里面的 main.py 就可以进行 Python 编程了。如果要开机自动运行 main.py 里的脚本,可以直接修改 boot.py : 图 9- 开机自动执行 Python 脚本 当然,这个 micropython 也有虚拟串口的功能(我在用这个时发现驱动用自动联网装装不上,就直接本地安装驱动,驱动位置选择 pybflash ),然后就可以用 securecrt 或 putty 进行串口连接,直接在串口里敲代码了。 图 10-MicroPython 虚拟串口 图 11-putty 通过串口连接 H743ZI 下面我就用 MicroPython 的虚拟串口试下控制板上的资源。 3.MicroPython 使用体验 启动体验: 图 12- 上手体验 控制 LED 亮灭。看头文件定义: micropython/ports/stm32/boards/NUCLEO_H743ZI/mpconfigboard.h 图 13-led gpio 定义 从头文件可以看到,这些已经被定义了。那我就直接用就可以了,看着 MicroPython 的官方文件来操作。先点亮 LED 试试: 图 14- 点亮 LED 图 15- 板子效果 图 16- 按键亮灭灯 图 17- 按键全灭 至此, LED 控制正常。 图 18- 任意控制 GPIO 输出 万用表测着 PC10 ,观察其电压变化。 总结: 由以上简单实验看出,MicroPython的移植是成功的。 MicroPython 以无操作系统的方式跑在 H743 上,其易用性及可移植性可圈可点。 MicroPython 的底层也是 C ,上层语法和 python 3.4 一样。在熟悉 python 的情况下,使用一块硬件开发板是相当简单的,也可以很快的打造出一个产品原型。相同的 Python 脚本代码在不同的开发板移植,所需的工作量非常少,甚至只是复制过来( MicroPython 相当于对底层进行了封装)。 Python 是解析语言,不需编译,直接运行即可。 有空再详细解读下MicroPython的源码,接下来还会继续评测,将引入MicroPython的网络编程,最后还会上OpenMV。
  • 热度 6
    2019-5-31 14:28
    3969 次阅读|
    1 个评论
    Ubuntu18.04构建NUCLEO-H743ZI开发环境
    我个人使用的笔记本主系统是Ubuntu18.04,这次就借着体验NUCLEO-H743ZI开发板,想在Ubuntu18.04下安装stm32的开发环境(不借助虚拟机装Windows),折腾一下,目前居然还没成功,先记录下流程,后面再慢慢更新吧。 1. 安装必备的依赖,这个直接按命令安装即可: sudo apt-get install libusb-dev sudo apt-get install libusb-1.0-0-dev sudo apt install git sudo apt install cmake 2. 安装 stlink 下载网址:git clone https://github.com/texane/stlink 终端执行: cd stlink && make release && cd build/ Release && make install DESTDIR=/home/yiguang/STLink && sudo cp -rf ~/STLink/usr/local/bin/st-* /usr/local/bin && sudo cp -rf lib /usr/local/lib/stlink 其中DESTDIR=/home/yiguang/STLink要根据自己的环境替换。 添加环境变量 ~/.profile 然后 source ~/.profile 接上 usb ,然后看看设备有没挂上 图 1-lsusb 此时 图 2-st info 调用 st-flash 如果出现这样的信息,说明 stlink 还没装好。 图 3-st erase 原来还差一步,要把 stlink 的编译结果里的 etc/udev/rules.d 复制到 /etc/udev/rules.d 去。 即 图 4-rules 把该目录下的所有文件复制到 /etc/udev/rules.d 目录下,即 sudo cp *rules /etc/udev/rules.d/ 然后 sudo udevadm control --reload-rules 此时再用 st-info 看看 图 5-st info 看到设备有了 但 flash 、 sram 的大小信息却没能获取到。查看 stlink 的源码,发现还没有对 stm32h743 的支持。 粗略看了下 stlink 源码及 h743 的 spec ,筛选出以下资料需要写到源码里: 图 6-dev id Flash size reg 0x1FF1 E880 图 7-flash size Flash pagesize 0x800 Sram size 1MB Bootrom base 0x0800 0000 图 8-boot rom Boot rom size 128K 另外找个时间好好看看这个 stlink 开源源码。 3. 安装编译链 stm32 属于 arm cortex-m 系列 thumb 指令集 , 所以给 arm 用的 arm-none-eabi 就可以了。 下载地址 https://launchpad.net/gcc-arm-embedded/+download 这里下载其中的 gcc-arm-none-eabi-version-linux.tar.bz2 配置环境路径 ~/.profile source ~/.profile 4.安装 en.SetupSTM32CubeMX-5.1.0-RC6,官网下载 https://www.stmcu.org.cn/document/detail/index/id-214984 ,安装里面的linux版本,双击安装即可。装完之后整体界面和使用和Windows版本是一样的,此处不多说。 5. 安装 MicroPython 下载 git clone https://github.com/micropython/micropython.git 编译 图 9-compile 可惜的是最后编译报错,找个时间再检查下是否流程有问题。 未完待续。
  • 热度 4
    2019-5-13 20:26
    5293 次阅读|
    9 个评论
    NUCLEO-H743ZI开箱评测
    NUCLEO-H743ZI 开箱评测 最近在面包板社区参加 ST 官方开发板的活动,有幸获得一块 NUCLEO-H743ZI 。这是目前 ST 官方 ARM Cortex M7 系列的高性能 MCU ,可以好好学习一番了。 拿到手的是一块全新的开发板(手机拍照质量不好,读者见谅): 图一:开箱前正面 图二:开箱前反面 可见,开发板仅为裸板,不带任何的额外的线材、电源 Adapter 和 LCD 显示屏,使用前要自己准备好 Micro USB 接口线。从正面看,参数亮点: ARM Cortex M7@400MHz ; 2MB 内置 Flash ; 1MB 内置 SRAM ;支持 USB-OTG ;支持 Ethernet 。 图三:开箱后正面 图四:开箱后反面 可见: 1. 板子布局相当合理,中间穿透的排母插件是 ST Zio 接口(兼容 Arduino ),基本把绝大部分的 GPIO 都引出来了,丝印相当清晰,要飞线的话,只要用排针或杜邦线直接飞就可以了;如果要自己设计底板,也可以直接通过背面穿透出来的排针来设计底板,相当方便。 2. 板上几乎所有的元器件都用了贴片,做工相当厚道。 3. 板子集成了 STLink V2-1 ,方便调试。 图五: STLink STLink 可以通过排针引出,用于其他 ST 开发板的调试。 STLink 上有一个 Micro USB 接口,这个接口是整个板子的电源输入口,通过 Micro USB 线 5V 直流输入。 图六: USB-OTG 和 Ethernet 接口 USB-OTG 接口是 Micro USB 接口,有此接口说明主控芯片支持 USB Host ,可以接入 U 盘、鼠标等 USB 设备,为和之前STLink上的那个Micro USB口做区别,此处我接了一个某宝上淘的 otg 转接口,当然用 otg 转接线也可以;旁边那个就是 Ethernet 接口,和台式机上的网络接口差不多,百兆自适应。 图七:上电测试 板子自带了测试程序,上电后,红 LED 灯不停闪烁。和红灯并列的还有绿灯和黄灯。按板子左下方的 USER 按键,可以切换点亮 LED 灯。按右下角的 RESET 可以恢复为上电时的红 LED 等闪烁。通过该测试程序可见,板子的基本功能响应是正常的。 以上便是 NUCLEO-H743ZI 开发板的开箱评测,接下来还会通过一些有意思的实验,进一步熟悉和学习使用 Stm32 H7 。 最后汇总一下该开发板可能用到的信息: 1.stm8/stm32 社区 https://www.stmcu.org.cn/ 2.STM32H7X3 中文参考手册 https://pan.baidu.com/s/1-Ge5E0fS0IfEpdKUbjVJ8A 3.STM32H743 数据手册(英文版) https://www.stmcu.org.cn/document/download/index/id-214772 4.STM32H743 数据勘误手册(英文版) https://www.stmcu.org.cn/document/download/index/id-214743 5.STM32H7 完整编程指南 https://www.stmcu.org.cn/document/download/index/id-214016/odid-218419 6.STM32H7 应用笔记 https://www.stmcu.org.cn/document/list/index/category-1123 7.STM32H7 用户手册 https://www.stmcu.org.cn/document/list/index/category-1124 8.STM32H7 固件库 https://www.stmcu.org.cn/document/list/index/category-1125 9.STM32H7 PC 端软件 https://www.stmcu.org.cn/document/list/index/category-1127 10.NUCLEO-H743 开发板电路图 https://www.stmcu.org.cn/document/download/index/id-213889 11.NUCLEO-H743 移植 MicroPython http://m.elecfans.com/article/886484.html 12.STM32 ucLinux 开发环境搭建 https://blog.csdn.net/u010444107/article/details/78580947 13.STM32F722ZE 开发板评测 http://bbs.21ic.com/icview-1703152-1-2.html 14.Ubuntu 搭建 stm32 开发环境 https://blog.csdn.net/lanqilovezs/article/details/80657911