打印
[STM32F4]

至繁归于简——NUCLEO-F411RE开发板评测

[复制链接]
1873|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
稳稳の幸福|  楼主 | 2016-7-29 20:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

1.1 简介

“nucleo”—“核”的意思。这里代表的就像我们熟知的最小系统一样,就是最核心的东西。了解过ST官方开发板产品线的都知道,ST提供了三种定位的开发板:nucleo、discovery和Eval。这三种开发板级别依次由低到高。通常nucleo板子采用白底蓝字,discovery通常采用绿底白字的PCB,由于Eval实在稀有我也没见过,只是听说江湖中有这个东西,具备丰富的板载外设。

闲话少说,针对STM32F4x1系列,ST只提供了nucleo和discovery,目前是这样的。今天我手里有一块NUCLEO-F411RE开发板,我就来好好跟大家扯一扯该板子有什么亮点,如何把玩,讨论一下,顺便发布一下自己的一些见解。

1.2 初见

我们看包装也是很简单的,仅仅是透明塑料外壳,加一张简要说明的纸质卡片,然后就是Nucleo开发板了,没有提供数据线。这也符合Nucleo的价位,毕竟是官方推出的最小系统板,我们也可以从下图看到板子似乎分两个部分,上面小部分其实就是板载的编程器电路—st-link。断裂线下半部较大的部分就是最小系统板,不过为了好玩,肯定会稍微增加若干板载外设的。

拆开包装取出来开发板,我们先近距离观赏一下板子。如下图所示,我们看到正面有两种排针接口,一种是针孔,一种是针。且注意到反面对应针的还是针,对应针孔的没有在反面引出。这个两面针的排针就是ST特有的Morpho extension header。大家知道ST的标志是个蝴蝶吧,就是指的Morpho,闪蝶,一种蝴蝶,这种两面针的设计就是Morpho扩展接口。内层的排孔是为了兼容Arduino的Arduino连接器。稍后我们在下一节介绍板上资源时候再好好说道说道。

板载ST-Link采用了mini-USB接口,不是现在流行的安卓手机用的Micro-USB。而是之前MP3和MP4播放器用的那种,所以如果你没有的话,就要去买一根了。


沙发
稳稳の幸福|  楼主 | 2016-7-29 20:19 | 只看该作者

1.3 板上资源

根据手册提供的硬件方块图,我们来看看都有哪些模块。

结构框图

实物图

如上图所示,该系列开发板其实都是这样的,均是上半部分是ST-Link编程器,下半部分是集成了一个用户按键一个可编程LED以及采用了闪蝶扩展接口和Arduino兼容接口的板子。开发板提供的ST-Link还提供了对外的SWD接口,以及串口TX/RX接线柱,配合CN2的跳线可以方便的为外部你的板子提供编程烧录服务。

在核心板区域提供了两个跳线接口,一个JP5用于选择不同的外部供电方式,我们也注意到了Arduino兼容接口有一个专门是Power接口,提供不同的电压接口服务。另外一个跳线接口是JP6的IDD接口,可以方便的接入安培计,用于功耗测量。

图中被红圆圈框起来的是本开发板上的两个LED。LD3红色为电源指示,LD2为绿色LED是该开发板唯一一个可以用户编程使用的LED。如果单说板载这些东西来说肯定是没有太多把玩的地方,但是丰富的扩展接口均属于空闲状态,无疑可以让我们接入更多自己设备,这也是核心板的妙处。下图给出了两种扩展接口之间的关系,在结合用户手册使用板载资源时候需要配合该图,可快速查找对应管脚。

最后我们总结一下该开发板的特点。

NUCLEO-F411RE开发板主要特点:

  • LQFP64封装STM32F411微控制器
  • 两种扩展资源:Arduino Uno R3 接口;ST闪蝶全功能扩展接口
  • MBED支持(http://mbed.org)
  • 板载ST-LINK/V2-1具备SWD接口的调试编程器:可通过设置选择模式开关作为独立的ST-LINK/V2-1编程器使用
  • 灵活的开发板供电:USB 5V供电 或 外部电源供电,可3.3V,7-12V;电源管理接口,即IDD电流检测接口
  • 三个LED:LD1为USB通信状态指示LED,LD2为用户可编程LED,LD3为电源状态指示LED
  • 两个按钮:用户可编程按钮和复位按键
  • USB重枚举功能支持在一个USB接口上实现三种不同接口功能:虚拟串口、大容量存储设备、调试接口
  • 支持多种集成开发环境:IAR、Keil、GCC等

1.4 安装驱动与升级固件

准备一根MiNi-USB数据线,连接Nucleo开发板和PC。登陆网站st.com/stm32nucleo

如下图所示,可以看到目前已经推出的NUCLEO系开发板全部列表,我们只需要点击我们要用的那个就可以跳转到相关的资源页面,这里我们是NUCLEO-F411RE。

之后向下翻页找到驱动下载地址,如下图包括工具和软件,第一个为本地的Cube图形化配置软件,第二个为ARM提供的在线开发工具MBED,第三个位开发板驱动,第四个为固件升级工具,下载后解压驱动程序,安装后即可:

安装驱动

如下图,安装后在设备管理器可以看到增加了三个设备:

1、便携设备NUCLEO;

2、磁盘驱动器,MBED微控制器USB设备;

3、端口(COM和LPT)设备STMicroelectronics STLink Virtual COM Port(COM6)。

备注:右图是在WIN10系统的情况。根据情况不同可能默认的串口号不一样。

更新固件

解压升级固件程序压缩包,切记,必须的以管理员身份运行,升级过程见下图,升级过程不可拔掉USB线,也不可断电,切记。


使用特权

评论回复
板凳
稳稳の幸福|  楼主 | 2016-7-29 20:19 | 只看该作者

1.5 DEMO测试

开发板自带的DEMO是需要配合外接显示屏操作的,我手里没有那块配合NUCLEO的TFT显示屏,外观显示为通过用户按键可以使得绿色LED在慢速闪烁、快速闪烁和熄灭三种状态切换。由于仅仅是核心板,所以开机测试DEMO,乐趣不是很多。

1.6 开发环境与编程

这里基于本地开发推荐使用Keil for ARM,目前最新版为Keil uVision5,版本号5.17。本测评不在对如何使用Keil做深入的介绍。

安装支持包

如下图,点击包管理器启动按钮,从设备列表找到STM32F4系列,单击,之后在右边可以找到相关开发包资源,选择需要的单击对应的Action列的Install按钮即可安装。我们根据描述可以看到如下图中STM Nucleo开发板支持和例程。

如果网速慢,可能会遇到无法完成安装的情况,这个时候可以直接到Keil官网下载该系列支持包。如下图中网址,打开后,下拉找到本开发板需要的STM32F4系列支持驱动例程包,当前最新版本号为2.7。

安装该开发包后可以在以下路径找到本开发板相关示例程序C:\Keil_v5\ARM\Pack\Keil\STM32F4xx_DFP\2.7.0\Projects\STM32F411RE-Nucleo


如下图所示,除了出厂板载DEMO之外,提供了7个示例程序,这里不在赘述。

烧录方法

第一种,编译后,可以通过Keil自带的下载工具下载,快捷键为F8,或在菜单栏找到Flash->Download,单击后实现下载。

第二种,通过在工程配置菜单(快捷方式Alt+F7)的Output选项卡里勾选创建HEX文件,这样编译后可以生成HEX文件,之后通过STM32 ST-LINK Utility软件进行烧录,目前最新版本3.7,我会在测评最后的资源下载里提供。


第三种,通过配置Keil参数,输出BIN文件,这样可以直接通过复制BIN文件到ST-Link自带的U盘,实现自动烧录功能。配置方法:从菜单栏打开Project->Option for Target‘STM32F4xx_Nucleo’->User,如下图所示,按下图勾选后填写相关指令,其中a.bin即为要生成的Bin文件名字,你可以自定义,也可以为B.bin,out.bin等等。在填写指令时候注意空格:fromelf --bin !L --output a.bin

MBED在线开发

我们知道NUCLEO支持使用MBED在线开发。这里介绍一下如何使用该工具。该在线开发工具具体使用方法请在本论坛搜索关键字:“MBED基础教程”。

访问MBED官方网址: https://developer.mbed.org/compiler/


建立如下图工程,把鼠标放到SERIAL_RX处右边立马弹出对应的宏。如下图所示,我们发现只需要使用一个头文件,结构也非常简单的代码就实现了一个串口发送。该在线开发工具是不是很酷,如需要详细了解可访问上面的网址查看相关使用说明。这也说明ST为自己的NUCLEO提供了一个非常方便的开发途径。点击下图中菜单栏的Compile,可在线编译,并弹出.bin文件保存选项。当编译失败后,可能是所采用的库不是最新版的,这时候可以在下图左边列表mbed单击右键,弹出菜单后点击update更新库,再重试Compile即可解决问题。

在线编译成功后,弹出下载保存bin选项,直接保存到NUCLEO可移动盘内,这时候ST-Link会判断芯片内核该bin代码是否一致,如果不一致则更新代码,如果一致丢弃。根据上图代码可知,我们的例程是先发送“Hello World !”字符串,然后进入循环不停的打印字符串,每次打印后翻转绿色LED。我们切看如何使板子和计算机通信。前面我们知道,板载的ST-Link提供了串口接线柱,编号为CN3。根据上图,我们知道发送到PC串口所使用的串口位置在PA_2和PA_3,为了方便开发者准确的定位端口,MBED提供了炫酷的管脚分布图,见下图,左边为Arduino接口分布图,右边为Morpho接口分布图:

我们从上左图可以看到,就在板子的右下角两个接线柱。通过导线连接,记住串口通信采用发送对应接收的。如下图所示,这里说明一下,根据232串口的协议,如果只是给计算机发送信息,只需要把MCU的TX和ST-Link的RX一条线连接上即可。

串口连接实物图


在Win7/WinXP系统上大部分串口助手都可以使用,而笔者采用的Win10系统,试了很多串口调试助手均不能工作,在经过多方查找后,下图中串口调试助手可以完美兼容Win10系统。下图是上面MBED中代码运行的结果。

串口助手显示

1.7 小结

NUCLEO系列板子的特点就在于它简单,但是你需要的功能都预留了,这就是至繁归于简。巴掌大小的板子,集成了性能优良的ST-Link编程调试器,集成了USB-to-RS232功能,还提供了串口接线柱。另外集成了两种扩展接口Arduino外扩接口和特有的闪蝶(Morpho)全功能接口。对于基础和入门的学习使用板载的一个按键和一个可编程LED,以及配合板载的串口就可以实现入门的学习,特别设计了断裂线的NUCLEO-64开发板还可以把ST-Link和核心板分离开,作为一个编程调试器或作为一个USB转串口适配器使用。值得一提的是NUCLEO的定位就是学生入门级,首先该开发板价格十分便宜,十美元左右,淘宝售价均不足百元,就可以买到一块这么给力的开发板。


在本地开发,推荐采用Keil集成开发环境,建议单独去Keil官网下载Pack支持包,另外建议开发者同时掌握三种烧录方式,这样可以应对各种烧录情况。根据笔者最近的学习情况,发现ARM推出的MBED在线开发环境,采用了面向对象的C++语言,且高度抽象的API接口函数使得使用时候几乎完全脱离了底层,入门更快,而ST在设计NUCLEO时候也更加突破性的采用了两种接口,且针对Arduino的接口均已在PCB上印刷了功能名称,使用起来非常方便,非常适合入门学习,特别推荐学生使用NUCLEO系列作为入门开发板使用。

1.8 相关资料下载

官方资料下载地址:http://www.st.com/web/catalog/to ... 532/LN1847/PF260320


本测评用到的软件和学习该开发板可能用到的资料下载:http://pan.baidu.com/s/1i3O7LKp



使用特权

评论回复
地板
598330983| | 2016-7-29 23:56 | 只看该作者
USB重枚举功能支持在一个USB接口上实现三种不同接口功能:虚拟串口、大容量存储设备、调试接口
应该是端口复用吧。

使用特权

评论回复
5
稳稳の幸福|  楼主 | 2016-7-30 16:45 | 只看该作者
发现ST的开发板就那几种风格,没有改进。就是主控换换而已。

使用特权

评论回复
6
Garen2| | 2016-7-30 20:00 | 只看该作者
巴掌大小的板子,集成了性能优良的ST-Link编程调试器,集成了USB-to-RS232功能,还提供了串口接线柱

使用特权

评论回复
7
稳稳の幸福|  楼主 | 2016-8-6 23:15 | 只看该作者
Garen2 发表于 2016-7-30 20:00
巴掌大小的板子,集成了性能优良的ST-Link编程调试器,集成了USB-to-RS232功能,还提供了串口接线柱 ...

是的,上面还提供了USB转TTL的接线柱接口,非常方便作为一个USB转串口的工具使用。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

187

主题

3282

帖子

8

粉丝