更大?更强!—Nucleo F446ZE(144pin)评测
扫描二维码
随时随地手机看文章
2016年初,ST意法半导体低调发布新的评估板系列NUCLEO 144。
NUCLEO系列向来以低价、紧凑闻名。不过出于成本考虑,以前的NUCLEO开发板均只提供64PIN MCU。新的NUCLEO 144系列打破了这一局限,使得ST官方评估板更加完善,从低功耗的NUCLEO32到高性能的NUCLEO 144,总有一款适合你。首批NUCLEO 144评估板包含四个型号:NUCLEO-F746ZG, NUCLEO-F429ZI, NUCLEO-F446ZE and NUCLEO-F303ZE。本文对NUCLEO-F446ZE做基本介绍。
一、认识NUCLEO 144
外观
包装已无亮点,万年不变的塑封板封装,不过这个包装板是一次成型,也算是一大亮点。
NUCLEO-F446ZE开发板,注意切边的毛刺
令人意外的是,NUCLEO 144板子做得很大,比相像中的要大得多。光看图片你可能没感觉,咱来张全家福,看看大小比较。
NUCLEO全家福,从左至右依次是NUCLEO32、NUCLEO 64、NUCLEO 144。
变化
和以前的NUCLEO板比较,NUCLEO 144板做了几方面的调整。
USB接口,NUCLEO 64仍然使用的是MINI USB接口,而新版的NUCLEO32及NUCLEO 144均调整为使用MICRO USB接口。
ZIO接口,NUCLEO 144上首次引出ZIO接口,在保留了ST MORPHO接口的同时,引出一个新的称为ZIO的接口。
MORPHO接口,只保留了封装接口,需要自行焊接排针或排母。
网络接口,NUCLEO 144 PCB板上均引出了网络接口,只不过只在NUCLEO-F746ZG, NUCLEO-F429ZI这两个板上真正实现了这个接口,其它两个板上的网络接口都被阉割了。
关于ZIO接口,这是一种工业接口标准,是为了MCU等嵌入式产品与PC更好兼容,这样组织后的接口在逻辑上更清晰。其主要理念是通过USB连接至PC,提供分组的标准接口如ADC、I2C、PWM等。
标准ZIO接口
ZIO接口,从丝印标注上看到,对USART、ADC、TIMER等外设接口都进行了分组,这样在建立原型的时候,整个功能逻辑会更清楚。
ST引出的UNO接口与原有的ARDUINO UNO保持兼容,所以无需担心原有的ARDUINO兼容设备与开发板的互联问题。
本次评测的NUCLEO-F446ZE,板上的网络接口被阉割了,算是一处遗憾!
STM32F446ZET MCU,144PIN的高性能庞然大物!
整体效果,赏心悦目!
特性
NUCLEO-F446ZE评估板主要特性
· 核心MCU使用STM32-F446ZE,LQFP144封装,最高频率达180MHZ
· 两种类型扩展接口:ZIO及MORPHO
· 支持ARM的MBED开发平台
· 板载ST-LINK/V2-1
· 灵活的供电机制
· USB OTG支持
· ETH接口(部分板不支持)
· 3个用户LED
· 2个按钮:RESET及USEB
· 板载32.768K LSE晶振
整体功能框图
开发板接口分布,需要注意的是F446上没有ETHERNET RJ45接口,ETH接口留空。
整体印象,NUCLEO 144系列评估板开创了一个新系列、增强了MCU的性能;调整了接口的类型及布局,向标准化迈出了新的一步;加强了网络的配置,使得产品在IOE及IOT方面更具竞争优势!
二、上电测试
新的NUCLEO144评估板使用的是MICRO USB接口,兼具供电及通信功能。要体验NUCLEO-F446ZE的强大功能,先要准备一条MICRO USB数据线。
MICRO USB数据线[!--empirenews.page--]
供电接口
NUCLEO 144秉承了NUCLEO开发板一贯的灵活供电机制。
可以使用主机通过USB给开发板供电;也可以使用外部电源给开发板供电。外部电源主要包括如下几个方面:
· VIN(7V-12V)
· E5V(5V)
· +3V3(CN8或CN11)
下表列出了外部供电的一些配置及限制事项
本文只测试了使用USB供电的情况。
开发板出厂时已固化有测试固件,上电后,LED1开始闪烁。按下USER BUTTON,LED1至LED3依次以不同频率闪烁。简单上电测试可以用来粗略测试开发板是否正常工作。
功耗测试
在STM32系列产品中,F4属于高性能产品类型。通过将MCU设置为不同的运行模式,通过电流值的对比来验证功耗变化。这里主要考察了三种不同的运行模式:
· SLEEP模式
· STOP模式
· STANDBY模式
这三种低功耗模式在ST的所有MCU中都几乎存在,具有一定的代表性。
拔掉NUCLEO开发板上IDD上的跳线帽,将万用表串联到电路中,本文使用的测试万用表为VICTOR 86E。
万用表接入电路中
SLEEP模式及测试参数设置
· 运行于180MHZ频率之下
· FLASH设定为3个等待状态
· 指令及数据缓存设置为打开
· 关闭预取
· 代码运行于FLASH
· 所有外设禁用
· 使用USER BUTTON来唤醒
SLEEP模式前后电流值变化比对,发现省电效果很明显
STOP模式及测试参数设置
· 使用LSI给RTC供电
· 电压调节器置于低功耗模式
· HSI、HSE关闭
· 未使用IWDG
· FLASH处于深度掉电模式
· 使用RTC自动唤醒(20秒)
STOP模式前后电流变化值比对,对比SLEEP模式,会发现功耗的进一步减少
STANDBY模式有参数设置
· RTC及备份域关闭
· IWDG及LSI关闭
· 使用PA0唤醒
STANDBY模式前后电流值变化比对
整体测试结果,从数值上看与官方标称的值有一定的出入,比如ST官方宣称STM32F4在RTC时钟供电模式下最高可达1UA的功耗,这里测试的结果约为2UA。这主要归结于两个方面的原因。其一,测试代码中用到了LED来表示MCU运行状态,而LED吸收的电流值还是比较大的,板载的外围电路也会消耗一定的电流;另一方面,测试仪器的精度及测试环境如温度亦会有一定的影响。不过总体来看,这个值在可接受的范围之内。
三、软件及生态环境
ST提供了丰富的开发生态支持。
ST现在提出一个新的概念,STM32 Open Development Environment,简称为STM32 ODE。按官方的说法,STM32 ODE是一个开放、灵活、易用、可负担的开发环境,用于开发创新产品及应用。STM32 ODE主要由五个部分组成。
· STM32 NUCLEO开发板
· STM32 NUCLEO扩展板
· STM32CUBE软件
· STM32CUBE扩展软件
· STM32 ODE软件包
STM32 ODE生态系统
这里面没有包括开发用的工具链及IDE。STM32同样支持丰富的开发工具链及IDE,主要有IAR、MDK、STM32 AC6及MBED开发IDE。不过截止本文发稿为止,MBED上还找不到对NUCLEO 144系列的支持,官方承诺在2016 Q2推出对NUCLEO 144的MEDB开发支持。
MBED开发界面,基于云端技术的开发
STM32软件开发流程大致如下
· 安装STLINK/V2-1驱动
· 准备开发工具链
· 编译写代码、编译、DEBUG、下载
· 功能测试
对于不同的IDE,上述开发过程大同小异。
这里重点介绍一下使用STM32CUBEMX辅助工具来进行软件开发的流程。STM32CUBEMX是一个代码生成工具,使用它可以轻松创建一个工程的基本框架,开发者只需专注于程序逻辑即可。
启动STM32CUBEMX,这是一个基于JAVA的图形化代码生成工具。启动后新建一个工程,选择MCU的类型,如下图
[!--empirenews.page--]
接下来需要配置引脚功能
开发板上的LD2连接到PB7
接下来配置时钟树,通常这是一个比较复杂也容易出错的地方。然而STM32CUBEMX提供的可视化配置模式大大简化了这个过程。
如果配置比较复杂的外设如AD/DA及USB等,接下来就是配置这些外设的参数,好在STM32CUBEMX提供了可视化配置方式,配置过程中还有相应的参数提示。这里只测试最简单的IO翻转,不需要进一步的配置。
最后是输出相应的工程文件,STM32CUBEMX提供的丰富的输出方式,如图
单击OK,就可以生成一个指定的工程文件了。
生成的MDK5工程文件目录结构如下,包含了所有必须的文件及基本的配置。
生成的工程文件已对MCU进行了正确的配置,同时对DEBUG参数也相应做了基本的配置,当然如果需要进行工程属性微调,还需要用户自行指定。
MCU已指定了正确的类型
DEBUG已配置为使用STLINK/V2-1
STM32CUBEMX的初衷是为了更好的解放程序员,为此STCUBEMX的开发团队做了大量的工作。总是听到有人抱怨新的HAL库(STM32CUBEMX支持的开发库),说HAL库过于抽象,隐藏了大量的细节,不利于程序的调试及学习STM32的原理。殊不知,这正是HAL的含义及精髓所在,将底层功能封装在较抽象的HAL API中,一方面,各产品之间的移植将更加容易;同时,软件逻辑将更加清晰。这些底层的硬件细节及耦合工作交给库,用户只需要专注于功能,正是未来软件开发的大趋势所在。
从STD库向HAL库迁移确实会引发阵痛,然而STM32CUBEMX充当了一个助手,使得这个迁移过程更加顺畅。
当然STM32CUBEMX也不是万能的,它能会你搭好一个工程的框架。程序逻辑仍然需要程序员来实现。接下来添加一段代码,实现LD2的闪烁功能。
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration----------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* Configure the system clock */
SystemClock_Config();
/* Initialize all configured peripherals */
MX_GPIO_Init();
/* USER CODE BEGIN 2 */
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_7);
HAL_Delay(500);
}
/* USER CODE END 3 */
}
注意/* USER CODE BEGIN 3 */及/*USER CODE END 3 */之间添加的代码。在类似这些注释的中间添加代码,不会影响重新配置STM32CUBEMX后的结果。这是使用STM32CUBEMX来生成代码特别要注意的地方!
编译正确无误后下载到开发板,会发现LD2以1HZ的频率闪烁。
四、结论
NUCLEO 32、NUCLEO 64及NUCLEO 144系列产品的细分,是ST对官方评估板格局的一次调整,打破了NUCLEO系列中NUCLEO 64一统江湖的局面。用户在进行产品设计及前期测试中,选择的范围更加灵活,加上NUCLEO独特的设计理念,产品原型的周期将进一步缩短,极大方便了产品研发人员。当然爱好者亦将从此受益。硬件并不代表一切,ST深深意识到生态系统的重要性,已着手打造一个健康、开放的ODE环境,为硬件保驾护航。功能完善的HAL库,官方X-NUCLEO系列扩展板,对众多三方开发环境的支持,都彰显着ST的大气、严谨!
在此次推出的四种不同型号的NUCLEO 144评估板中,NUCLEO-F446ZE评估板选择STM32F446ZE作为主控,性能强劲、板载FLASH/RAM容量分别为512K/128K,加上F4集成的DSP及FPU功能,完全可以用来评估一些高端应用,如电机控制、汽车、电源管理、嵌入式音频(能听懂人说话的智能洋娃娃?)和工业自动化等应用领域。ZIO接口的引入,使得外设接口的组织更加合理,逻辑结构更加清晰。不过可能出于成本的考虑,官方把NUCLEO-F446ZE上的ETH接口给阉割了,可惜,可惜!
NUCLEO-F446ZE评估板,简而言之就是:换了一块更大的PCB板;引入了性能更强劲的MCU; ZIO则将接口标准化了。
五、参考资源
1 ZIO参考:http://www.zilogic.com/blog/product-zio.html
2 ST官网:http://www.st.com/web/en/home.html
3 ST社区支持:http://www.stmcu.org/module/forum/forum.php
4 NUCLEO F446ZE官方页面(含产品文档、资源等):http://www.st.com/web/catalog/tools/FM116/CL1620/SC959/SS1532/LN1847/PF262632?s_searchtype=partnumber
5 STM32CUBE F4官方页面:http://www.st.com/web/en/catalog/tools/PF259243
6 MBED官方页面:https://developer.mbed.org/compiler/
本文系21ic原创,未经许可严禁转载