你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

Nucleo平台最新开发利器——ST Nucleo-F091RC开发板评测 精华  

[复制链接]
沐紫 发布时间:2015-1-19 11:19
STM32 NUCLEO开发平台是ST在2014年最新发布的易用性好、可扩展性佳的低成本平台。开发平台具有mbed功能支持,提供Arduino接口,还提供ST Morpho扩展排针,可连接微控制器的所有周边外设,可以利用Arduino巨大生态系统的优势,通过Arduino shield 板快速评估包括以太网、LCD 显示器、GSM 语音及数据通信、ZigBee 通信、WiFi 网络连接、电机控制、音乐及声音合成器等多种应用。
如果之前不了解Nucleo平台,可以先看看爱板网之前发过的NUCLEO开发板评测文章
相比以前的Discovery系列套件,NUCLEO开发平台有三大方面的显著特性:
  • 统一的硬件PCB设计,真正做到一板多用。意味着只要手中有一个NUCLEO硬件平台,就可以通过更换MCU芯片的方式,评估STM产品5大系列10款产品。

三个板子对比图,看一下,你能找到区别吗?
  • 支持mbed云端开发方式。mbed是一个面向ARM处理器的原型开发平台,它具体包括免费的软件库(SDK),硬件参考设计(HDK)和在线工具(Web)三部分内容。它的宗旨是让ARM和Arduino一样简单用,cortex和AVR一样开发。
  • 带有ST Morpho 扩展排针和Arduino Uno Revision 3插座。通过Morpho 扩展排针可以挂接多种扩展应用板,通过Arduino Uno Revision 3接口,可以连接数十个兼容 Arduino 的扩展板,实现多种应用开发。
总体来说,NUCLEO系列开发平台构建了一个新型的生态系统,并融入一个更大的ARM生态圈。结合mbed的云端优势和Arduino接口丰富的资源,NUCLEO开发更加简单,应用也更加多样化。到目前为止,ST意法半导体一共推出了10种Nucleo开发板,基本上定价都在10美元左右,如下图所示。

今天向大家介绍的是最新的Nucleo-F091RC开发板,基于Cortex-M0内核的F0微控制器,可以说是STM32F0STM32F0系列产品系列里目前性能最强大的Nucleo开发板。和之前我们评测过的Nucleo-F072RB开发板非常相似,两种开发板的核心微控制器相比差别非常小。

STM32F091RCSTM32F091RC数据手册相比STM32F072RBSTM32F072RB数据手册来说片上FLASH和SRAM容量更大,足以实现Java堆栈,能够运行通常只有大存储容量或昂贵产品才能运行的复杂应用软件,带来令人满意的用户体验。它克服了目前定位在经济型应用的同类产品的限制,可提供多达8通用同步/异步串行接收/发送器(USART, Universal Synchronous/Asynchronous Receiver/Transmitter),为车载音响或三相电表等应用节省多路复用通信端口。
Nucleo-F091RC开发板硬件上由全新设计的ST-LINK/V2-1仿真器和MCU核心板组成。
Nucleo-F091RC开发板整体做工细腻,用料考究,采用白色阻焊和魅蓝色丝印,让人眼前一亮,相比Discovery系列的传统绿油白字,拥有更佳的色彩体验感。在PCB外形方面,Nucleo开发板相比Discovery系列有较大变化,
  • 首先在ST-LINK/V2-1仿真器和MCU核心板 之间增加了隔离槽,可以将两者分开,仿真器单独使用;
  • 其次,在MCU核心板上增加了3处定位孔,可安装半径3mm螺丝铜柱;
  • 最后,MCU核心板底部采用突出外形,对应于Arduino 开发板机械外形。
ST-LINK/V2-1仿真器带有独立的SWD仿真接口,可通过跳线开关设定来仿真板上或者外部MCU器件。相比Discovery系列搭载的ST-LINK/V2仿真器,ST-LINK/V2-1仿真器采用全新的PCB布局,以STM32F103CBT6STM32F103CBT6数据手册为核心控制器,除了调试接口(SWD)外,额外实现虚拟串口和存储设备(Mass storage)接口二种功能,其中存储设备接口功能可将板载的MCU的FLASH虚拟成存储设备,只需要将各种开发环境编译生成的bin文件复制到存储设备中,就可实现程序下载,主要针对mbed功能应用。另外,还支持USB软件的重新枚举功能,并且枚举成功后,可为MCU核心板提供大于100mA至最大300mA电流。

MCU核心板设计简洁,板载一个复位按钮,一个用户按钮和一个绿色LED灯。板载微控制器为STM32F091RCT6,LQFP64脚封装。
  • ARM Cortex-M0 CPU up to 48MHz
  • 256 KB Flash
  • 32 KB SRAM
  • 12位 ADC 1 Msps最大16 channels
  • 最大 12个定时器
  • 2x I2C, 8x USARTs,2x SPIs, CAN
  • 96位唯一 ID

Nucleo-F091RC开发板采用多种供电方式。
  • USB总线接口(VBUS)供电。ST-LINK/V2-1枚举成功后,通过一个STS7PF30L型P-MOS管芯片开关来实现对MCU核心板供电,或者通过SB1锡桥设置来直接为MCU核心板供电。
  • 灵活的外部3.3V/ 5V/ 7-12V电源供电。采用一片LDO芯片LD1117S50TRLD1117S50TR数据手册实现 7-12V电压输入,5V@最大800mA电流输出;采用LD39050PU33RLD39050PU33R数据手册芯片实现5V输入3.3V@最大500mA电压输出。

通过MCU核心板上的JP6跳线开关可以测量MCU核心板的电流消耗。在采用USB供电时,正常运行程序时,电流消耗为1.18mA。

ST Nucleo-F091RC开发板通过Morpho和Arduino接口支持多种扩展板,例如:
想要更进一步了解比较Nucleo开发板可以查看STM32-NUCLEO开发平台全方位解析
Nucleo开发板的资源特别丰富,在开始使用之前可以去下面网站找到大量Nucleo-F091RC开发板的相关资源。
也可以参考STM32-NUCLEO开发平台资料准备好各种资源。
驱动安装及硬件准备
给ST Nucleo-F091RC开发板上电前,先去ST社区下载ST-LINK/V2-1驱动或者去ST官网下载STM32 ST-LINK utilityV3.5.0 , 这里还要下载虚拟串口驱动STM32 Virtual COM Port Driver, 安装好这些驱动,给ST Nucleo-F091RC开发板上电后,在PC机上,打开我的电脑/属性/设备管理器,会看到

这三个地方识别到调试接口,虚拟串口和存储设备了。在我的电脑中,会出现一个容量为256K大小的U盘盘符。它固定占用16k容量,存储文件内容如下:

这个支持MBED开发环境。打开安装好的ST-LINK utility软件,点击界面上的链接按钮,如果出现下面的信息,表明ST Nucleo-F091RC开发板驱动安装成功了,硬件已经准备好。

多种IDE软件开发方式
ST Nucleo系列开发平台最大的特色之处在于焕然一新的软件开发方式。除了支持传统的IDE开发环境比如KEIL-MDK/IAR-EWARM/ TrueSTUDIO外,增加了在线的mbed开发环境和STM32Cube软件支持。其中STM32Cube 是一个全面的软件平台,包括了ST产品的每个系列,平台包括了STM32Cube 硬件抽象层和一套的中间件组件(RTOS, USB, FS, TCP/IP,  Graphics, 等等)。它由两部分组成,
  • 一是 PC端的图形化配置工具:STM32CubeMX;
  • 二是基于STM32上的完备固件集合:STM32Cube库STM32Cube_FW_F0_V1.1.0。
相信将来,ST将会逐步放弃对标准固件库的更新,全面转向STM32Cube完备固件库。

mbed云端--最快捷的开发方式。无需安装IDE软件,而且有非常多模板可以快速的上手。第一次使用时需要注册账号,之后就可以按照模板开始自己的设计。可以参考从繁至简,颠覆传统设计的云端开发——极具性价比的STM32F401 Nucleo开发板评测了解在线mbed的使用。
注册成功后,进入的界面是这样子。通过新设计,可以建立多种基于模板或者空白模块的程序。

这里选择一个通过虚拟串口打印字符到PC机上的模板进行说明,设置工程名:Nucleo_printf。

确认后,自动生成一个工程文件,main.cpp文件如下,串口格式:9600-8-N-1。代码是C++格式。

点击上图中的编译按钮,编译完成后,会自动生成bin文件,并提示进行保存

将这个bin文件复制到U盘内,即可实现程序的下载,真是超级简单!

将板卡复位一下,程序就会自动运行了,每次复制bin文件到U盘都会实现程序固件的更新,这种“新颖”的下载方式也是NUCLEO系列平台的一个特色。
打开串口终端,设置好9600波特率,8位数据,1停止位,无校验,然后就可以看到Nucleo-F091RC开发板发送的信息了

KEIL-MDK+标准固件库--最熟悉的开发方式。这种开发方式是最传统的方式,也是最熟悉的方式,只要下载到标准固件库:STM32F0xx_StdPeriph_LibV1.4.0,参考搭建STM32-NUCLEO-KEIL-MDK工程模板的方法,就可以快速实现程序开发,因为STM32F091STM32F091系列产品系列芯片刚推出不久,KEIL-MDK内部没有此系列型号,需要找到路径STM32F0xx_StdPeriph_LibV1.4.0\Utilities\Third_Party\Toolchains_STM32F091_Patches中的补丁工具MDK-ARM STM32F09x_256k _Support_V1.0,将型号信息安装到KEIL-MDK软件中,这里安装到了KEIL-MDKV4.73版本中。建立如下工程模板

并在KEIL-MDK中实现如下文件,编译下载。这里实现了LED灯/串口打印/中断按键的驱动

在串口助手上打印信息如下:

STM32CubeMX + CubeF0完备固件库—最潮流的开发方式。采用STM32Cube软件开发,还是离不开KEIL-MDK/IAR-EWARM/ TrueSTUDIO等IDE开发环境的支持。所以,在此之前,必须要安装MDK-ARM STM32F09x_256k _Support_V1.0类的补丁工具。
STM32CubeMX是一款图形化工具,它用于STM32初始化代码的配置。它可以直观地进行STM32型号和板卡选择;进行图形化外设资源配置;C代码项目产生,并且它可以很好地支持Eclipse,作为一个插件使用。
在使用前,要安装好java软件 才能安装该软件。打开界面后,有【MCU】和【Board】两个选项,这里选择【Board】选项。在【MCU Series】里面选择STM32F0,在【Type of Board】里面选择Nucleo,通过这样的筛选,会看到有3款NUCLEO开发板在列,这里选择NUCLEO-F091RC,在显示绿色的可用外设中,设置button数量1个,Led数量1个。

在引脚配置中,为用到的引脚会以黑色显示。不同的外设和特殊功能引脚颜色不同。
在配置选项中,可以选择是否使用FATFS文件系统或者FREERTOS等。

在时钟配置界面,可以修改时钟频率,作用等同STM32F0xx_Clock_Configuration_V1.0.1

通过点击矩形方框中的资源模块进行分类详细配置

一个针对GPIO引脚的具体配置

最后的配置是针对电源功耗的计算,里面有不同种类锂电池可以选择。

点击工程界面的【Generate Code】选项,

在工程设置里面,设置好输出工程名,输出工程文件路径和IDE开发环境等。STM32Cube_FW_F0_V1.1.0要设置好对应的目录,否则无法正确输出。【Code Generator】里面保持默认选项即可。

产生的工程文件夹内容

这里是可以直接下载的,只不过仅是外设的初始化代码,需要自行增加用户代码。

STM32Cube_FW_F0_V1.1.0是STM32Cube系列软件中针对F0的完备固件库。它在结构上比原来的标准固件库增加一个中间件部分。硬件抽象层STM32F0xx_HAL_Driver和原来的标准固件库类似,注重不同系列型号中硬件资源配置代码的兼容性。通过这样的方式,可以更好地降低STM32开发门槛,增加不同系列型号软件代码的通用性,可移植性。

在STM32Cube_FW_F0_V1.1.0的工程文件夹中,可以找到ST Nucleo-F091RC开发板文件夹

打开演示文件夹,打开KEIL-MDK工程文件

可以看到资料齐全的各种驱动代码,借助这些经过验证的代码,快速实现产品开发。

编译后,即可下载,因为手头没有Adafruit 1.8" TFT LCD shield扩展板,只能看到LED灯闪烁。

小结
介绍了最新的Nucleo-F091RC开发板,10美元左右的价格使它成为性价比很高的开发套件。全新设计的ST-LINK/V2-1仿真器,全扩展接口以及Arduino兼容接口使得Nucleo开发板应用更加多样化。支持各种常用开发软件及在线mbed平台使得Nucleo开发板更加容易上手。统一化的硬件设计风格,让用户可用最低的成本评估5大系列10款产品。STM32Cube系列软件更是带给广大工程师崭新的开发体验,未来采用STM32Cube完备固件库开发将是一种必然的趋势。总体而言,Nucleo-F091RC开发板是一款非常好的ARM Cortex-M0入门学习套件。
参考资料


以上评测文章由社区特邀爱板网撰写,原文地址:http://www.eeboard.com/evaluation/st-nucleo-f411re-review/

收藏 7 评论93 发布时间:2015-1-19 11:19

举报

93个回答
harvardx 回答时间:2015-1-21 10:50:34
插入一下.哈哈 ,文章中提到的F0xx标准外设库是V1.4.0, 现在官方已经更新到. V1.5.0 上传给大家.
http://yunpan.cn/cy7IAMx5P6Q92 (提取码:2e1b)

关于F072 和F091等新芯片MDK4 MDK5不支持的问题,可以通过以下路径添加支持:

..\STM32F0xx_StdPeriph_Lib_V1.5.0\Utilities\Third_Party\Toolchains_STM32F030xC_STM32F070x6_STM32F070xB_Patches\MDK-ARM STM32F030xC_STM32F070xB_STM32F070x6_Support.zip

当然如果你喜欢iar则选另外一个.
大秦正声 回答时间:2015-1-19 13:51:36
版主讲的很详细!
沐紫 回答时间:2015-1-19 13:16:39
zfz0122 发表于 2015-1-19 11:38
重复发帖。。。nucleo的拓展板去哪找啊

我看到你那个帖子内容不全,这个是我们邀请爱板网发布的评测文章,我都搬过来啦
wxh0000mm 回答时间:2015-1-19 11:22:10
真不错!!!!!
拼命三郎 回答时间:2015-1-19 11:30:04
不错,学习了,不过图中的Micro USB标注错误,应该是MINI USB
abend 回答时间:2015-1-19 11:34:40
拼命三郎 发表于 2015-1-19 11:30
不错,学习了,不过图中的Micro USB标注错误,应该是MINI USB

是的,Nucleo都用这个,真心不喜欢
zfz0122 回答时间:2015-1-19 11:38:48
本帖最后由 zfz0122 于 2015-1-19 12:13 编辑

重复发帖。。。nucleo的拓展板去哪找啊
数码小叶 回答时间:2015-1-19 12:56:15
今天貌似都在说091啊
cxtarm 回答时间:2015-1-19 13:09:17
不错的板子
大秦正声 回答时间:2015-1-19 13:50:06
uart有8个啊!

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版