完美兼容、性能提升——NUCLEO-F446ZE开发板测评
早在去年12月份,就得知意法半导体(STMicroelectronics,简称ST)公司扩充了低成本评估板Nucleo系列,在Nucleo 64和Nucleo 32的基础上,推出Nucleo 144系列评估板。等了几个月,终于见到真容了!
这次非常感谢EEWORLD社区和管理员,让我有幸拿到一块NUCLEO-F446ZE评估板来测评。那今天就和大家一起体验一下Nucleo的新宠。
我的测评内容包括:
1、开箱
2、上电
3、认识
4、开发
5、小结
一、开箱
拿到NUCLEO-F446ZE开发板,包装依然是熟悉的风格——吸塑包装,只是这次包装要大了许多,比之前的STM32F469-Discovery的还要大一些。拿到手里,和手掌差不多大小,是不是感觉大气?眼前一亮?
图1-1 NUCLEO-F446ZE开发板包装
图1-2 NUCLEO-F446ZE开发板
Nucleo 144开发板是意法半导体ST公司为用户推出的低成本Nucleo系列,截至目前,一共推出了Nucleo32、Nucleo64和Nucleo144三种系列,可谓涵盖了STM32系列的低、中、高的MCU产品,引脚封装也有大、中、小各种主流的MCU,形成了比较完备的生态系统。下图是目前ST推出的Nucleo评估板。可以看到Nucle-F446ZE属于高性能多引脚的范围。
图1-3 Nucleo开发板系列
正好手头上三种系列的开发板都有,放在一起来对比一下。左面最小的是Nucle-F031K6开发板,板载一颗32引脚的STM32F031K6微控制器,中间是最早推出的Nucleo 64系列开发板Nucleo-F446RE,板载一颗64引脚的STM32F446RE微控制器,右面的是这次的Nucle-F446ZE,板载一颗144引脚的STM32F446ZE微控制器。大家可以看到,Nucle-F446ZE评估板具有具有更多的接口,更丰富的资源。
图1-4 Nucleo开发板对比
来大致看一下这次的Nucleo-F446ZE开发板,可以看到,这次开发板虽然个头大了不少,不过还是能看到之前Nucleo系列评估版的熟悉身影:
(1)开发板上部板载ST-LINK V2.1仿真调试器,可方便用户不许花费格外费用,即可对板载MCU进行编程调试,而且做成了卡孔形式,可掰开单独使用;
(2)正中间高性能主控芯片STM32F446ZE微控制器组成的最小系统,带有DSP和FPU功能的ARM Cortex-M4 内核,主频可达180 MHz ,512kB闪存,LQFP144封装。
(3)提供两种接口,ST Zio接口,包含Arduino™ Uno Revision 3接口,同时仍然提供了ST morpho接口,将所有引脚均引出以备用户使用,不过这部分接口并没有焊接排针,一点点小遗憾;
(4)出了STM32F446ZE最小系统外,开发板提供了极少的板载外设资源,用户按键、复位按键和用户LED,不过这次将用户按键和复位按键的位置有了较大的改动,不再放在开发板中间,而是放在了开发板的最底部,这样更加有利于用户使用,在大家设计扩展板时,基本不需要考虑会被盖住了,另外用户LED的数量由原来的1个增加到了3个,此外Nucleo-144系列开发板上增加了USB-OTG接口和以太网接口,这也是此款卡发版的一大特色了,不过我拿到的这块Nucleo-F446ZE开发板只是具有USB-OTG接口,原有的以太网接口电路存在,但是元件均为焊接,主要是板载STM32F446ZE微控制器不具备以太网功能的片内外设,这也是这块开发板的一大遗憾了!!!
图1-5 NUCLEO-F446ZE开发板正面
看完了开发板正面,反过来看看背面,和以前的风格一致,背面基本上是配置用的锡桥,在之前的Nucleo-64开发板上,锡桥只有在电路板的底层,而在Nucleo-144开发板上,顶层和底层电路板上都设置有锡桥,只不过顶层的锡桥全部以SBXX形式命名,而底层的锡桥全部以SB1XX形式命名。
图1-6 NUCLEO-F446ZE开发板背面
在开发板的背面四个角上,可以看到排针已经被焊接上了,而且加了四个跳线帽,这四个位置正好是接地(GND),正好比已经焊接的ST Zio接口排针高了一点点,形成了开发板的四个小小的支撑底座,这点设计还是挺巧妙、温馨的。
图1-7 NUCLEO-F446ZE开发板底座
另外还有一点要赞一下,在新版的Nucleo-F446ZE开发板上面,所有的引脚说明都被温馨的标在电路板的丝印上,这样就可以非常方便的查找引脚,不用像以前,先扒一扒电路原理图,然后再一个一个引脚的数一下,还经常找错!
图1-8 NUCLEO-F446ZE开发板接口1
图1-9 NUCLEO-F446ZE开发板接口2
图1-10 NUCLEO-F446ZE开发板接口3
来看看包装盒中的说明页,这个风格和以前的差不多,上面是本开发板的型号,左下角是开发板的基本特征描述,右面是开发板接口说明。
图1-11 NUCLEO-F446ZE开发板说明页正面
是不是和以前的一样呢?其实还是稍稍有些区别,就是在左上角的开发板型号这里,新板套件上正式使用了Nucleo-144和Nucleo-64之类的名称,之前官方并没有这种明确的叫法。
图1-12 NUCLEO-F446ZE开发板说明页对比
说明页的背面有一段关于开发板使用的步骤引导说明,如果是初次使用Nucleo系列开发板,建议仔细阅读,上面描述了如何运行板载演示例程,另外下面依次是开发板使用的系统配置需求、推荐集成开发工具IDE等信息。
图1-13 NUCLEO-F446ZE开发板说明页背面
二、上电
拿到开发板,想要尽快上手运行一番,当然官方提供的板载例程是个不错的选择。
1、要运行板载例程,需要确认Nucleo-F446ZE开发板上跳线的位置:
(1)跳线PWR-EXT(JP1)确认断开
(2)电源选择跳线JP3确认U5V被选择短接
(3)跳线IDD(JP5)确认被短接
(4)CN4接口短接
2、使用USB A到micro-B型USB线将开发板的CN1接口与电脑连接,既可以给开发板上电,可以看到开发板的电源指示灯绿色LED(LD6)点亮,同时ST-LINK指示灯LD4灯亮。
3、同时系统开始运行程序:
(1)绿色用户LED1开始闪烁,频率2Hz,0.5秒的周期。
(2)按下蓝色用户按键1次,绿色用户LD1持续点亮,LD2(蓝色LED)闪烁,频率1Hz。
(3)按下蓝色用户按键2次,绿色用户LD1与LD2持续点亮,LD3(红色LED)闪烁,频率0.5Hz。
(4)按下蓝色用户按键3次,绿色用户LD1闪烁,频率2Hz,LD2和LD3点亮。
之后重复按下蓝色用户,按LD1、LD2、LD3的顺序,每次有一个LED闪烁,另外两个LED会持续点亮。
图2-1 官方DEMO演示
三、认识
刚刚拿到NUCLEO-F446ZE开发板,当然还是要好好认识一下开发板的资源,以便进一步的使用。
1、结构
Nucleo-144开发板是意法半导体ST公司提供的基于LQFP-144封装的STM32微控制器的低成本评估板,在开发板结构设计上仍然遵循之前的Nucleo-64系列的风格,开发板分为上下两个区域,上面是ST-LINKV2区域,下面是微控制器自小系统、板载外设和接口电路部分,而且ST-LINK部分可以很方便的从中间剪开来单独使用,这时,Nucleo-F446ZE开发板就分成两个独立的小板子。
ST-LINK编程调试器可以利用CN6接口使用SWD方式为其它的STM32微控制器编程或调试程序。
STM32F446ZE的最小系统板,也可以单独使用,这时需要注意,最小系统板的供电只能使用ST Morpho全扩展接口的VIN、E5V和3.3V,或者ST Zio接口的VIN and 3.3V引脚供电。
图3-1 NUCLEO-144开发板结构
开发板整体布局介绍可参看下图,可以看到,意法半导体的芯片说明文档上配的这部分图比之前的也有提升,使用了3D模拟图展示,看起来更加方便。
图3-2 NUCLEO-F446ZE开发板正面布局
图3-3 NUCLEO-F446ZE开发板背面布局
2、STM32F446ZET6微控制器
在Nucleo-F446ZE开发板中间,板载了一颗高性能的LQFP-144封装的微控制器STM32F446ZE。
图3-4 NUCLEO-F446ZE开发板主控制器
STM32F446ZE隶属于意法半导体ST公司的高性能STM32F4微处理器,在STM32F446xx系列中,有可分为8种型号,具体见下图,其主要区别在封装形式、引脚数量和片内三寸不同,其中Nucleo-F446ZE开发板板载的这颗MCU在STM32F446xx中属于性能和配置最高的一款,具有512KB的闪存FLASH,144引脚LQFP封装,主频可高达180 MHz。
图3-5 STM32F446微控制器系列
下图是STM32F446ZE这颗芯片的内部结构原理图。
图3-6 STM32F446ZET6内部结构框图
STM32F446ZET6主要特点是:
基于ARM Cortex-M4内核处理器,最高支持180 MHz主频、512 KB闪存、128 KB的SRAM。
供电电压为1.7 V至3.6 V。
自适应实时加速器(ART加速器™),支持从Flash中0等待执行代码。
具有Sleep、Stop和Standby等低功耗模式,可有效降低系统功耗。
具有3个12位的2.4MSPS的ADC,高达24个通道,具有2个12位的DAC。
高达17个定时器:2个watchdog,1个SysTick,12个16位通用定时器和2个32位高达180MHz的高速定时器,并且具有输入捕获、输出比较和PWM等功能。
外部引脚上,144引脚中114个具有中断功能,111个具有90MHz的高速I/O,112个具有5V的容忍能力。
接口方面具有一个SPDIF接收器,多达4个I2C接口,多达4个USART和2个UART接口(支持LIN, IrDA),2个SAI接口,2个CAN接口和1个SDIO接口。
具有外接SRAM,PSRAM,SDRAM/LPSDR DRAM, Flash NOR/NAND等存储器的外扩存储器控制器,16位数据总线。具有支持8080/6800模式的并行LCD接口。这些都为STM32F446ZET6可实现更为复杂的LCD控制方案提供较好的支持。
具有USB-OTG功能,应用于各种不同的设备或移动设备间的联接,进行数据交换。
支持8位或14为的并行摄像头接口。
3、ST-LINK/V2-1
Nucleo-F446ZE开发板内嵌一个ST-LINK/V2-1编程调试器,通过SWD接口与目标MCU直接连接,可对目标MCU进行编程和调试功能,同时可实现USB接口虚拟串口、USB接口存储器和USB电源管理等功能。这里要注意,ST-LINK/V2-1编程调试器不支持SWIM接口和低于3V的工作电压。
ST-LINK/V2-1编程调试器不但能对板载的STM32F446ZE进行编程和调试,而且预留了外接的SWD接口,可以对其它STM32系列单片机进行编程调试。
下图是使用ST-LINK/V2-1编程调试器对板载MCU进行编程调试,需要注意,必须将CN4跳线短接。
图3-7 ST-LINK/V2-1编程调试板载MCU
下图是使用ST-LINK/V2-1对外部MCU进行编程调试,需要注意,这是必须将CN4跳线断开,使用CN6外接MCU。
图3-8 ST-LINK/V2-1编程调试外部MCU
CN6从上到下的定义见下表。
表3-1 ST-LINK/V2-1接口
拿Nucleo-F446ZE开发板和Nucleo-F446RE开发板的ST-LINK/V2-1对比一下,一眼看下去,好像电路一样,其实仔细看的话,还是会发现有不同之处:
Nucleo-F446RE开发板使用了USB-B型接口,而Nucleo-F446ZE开发板的USB接口采用了更小尺寸的micro-B接口。
ST-LINK部分的晶振的封装不同。
图3-9 Nucleo-F446RE与Nucleo-F446ZE的ST-LINK对比
其实最大的区别在于在Nucleo-F446ZE的micro-B接口下面增加了一个USBLC6-2SC6芯片,电路见下图, 该芯片是低容值的ESD保护器,致力于ESD高速接口(如USB 2.0,以太网链接和视频线)保护单片器件。极低的线路电容保证了信号的完整性实现消除ESD冲击影响。
图3-10 Nucleo-F446RE的ST-LINK的USB电路
图3-11 Nucleo-F446ZE的ST-LINK的USB电路
4、完美兼容的扩展接口
Nucleo-F446ZE开发板在设计时,就以最大程度的完全兼容现有STM32开发生态系统,包括专用的应用扩展插接板,这就意味开发人员能够将之前为NUCLEO-64开发板设计的扩展板直接应用在Nucleo-F446ZE开发板上。这一特性是非常值得称赞的,实现了不同开发板间的兼容。
图3-12 Nucleo-F446RE接口说明
图3-13 Nucleo-F446ZE接口说明
新的Nucleo-F446ZE开发板通过三种接口实现无限的应用扩展功能,除现有的Nucleo-64板上的Arduino™Uno和ST morpho连接器外,还包括一个ST zio连接器。这三类连接器让开发人员能够使用STM32微控制器的全部通用I/O引脚,轻松实现各种功能评估。
5、USB FS OTG or device
Nucleo-F446ZE开发板的一大特色就是开发板上带有一个用户USB接口CN13,通过Mirco USB-AB型连接器可以实现计算机与板载的STM32F446RE微控制器实现USB OTG和device的全速通信。
这里要注意了,Nucleo-F446ZE开发板虽然有两个USB接口,一个是ST-LINK的USB接口,一个是这个USB-OTG接口,但是对开发板供电仅有ST-LINK部分的USB接口实现,用户的Micro–AB型USB不提供想开发板供电的功能,主要是预防损坏主控制器的I/O口。
在USB接口电路上有两个LED指示灯,一个是绿色LED(LD8),当Nucleo-F446ZE开发板在作为USB主机时,电源开关U12被打开时被点亮,或者在作为USB设备时,VUSB线上被主机接通电源时被点亮;另一个是红色LED(LD7),低昂作为USB主机时,在VUSB上出现过流时被点亮。
该部分电路如下:
图3-14 用户USB电路
使用的MCU引脚及功能:
表3-2 USB接口引脚
5、以太网(Ethernet)接口
拿到Nucleo-F446ZE开发板后,发现开发板上的以太网接口空空的,没有任何元件,查了一下资料,发现STM32F446ZE微控制器不带Ethernet功能,感觉挺遗憾的,不能对这部分功能测评了!!!
Nucleo-F446ZE开发板的其他功能基本上和之前的Nucleo-64系列开发板的类似,在这里就不和大家重复了。
四、开发
对开发板有了较为清楚的认识后,就可以进行下一步开发了。
1、环境
开发之前当然要准备开发工具,搭建开发环境。意法半导体ST公司为NUCLEO开发板提供了非常丰富的开发工具。在IDE方面,支持主流的IDE,有MDK、IAR、GCC-based IDEs等,另外还支持ARM最新推出的云端开发Mbed。在软件方面,ST为STM32提供了标准库和HAL库,并提供了大量的工程实例和开发模板,帮助工程师快速开发STM32的工程。另外,ST还推出的STM32 CUBEMX配置工具可使用图形化界面完成STM32微处理器的初始化配置工作。所有的这些组成了简单易用的生态系统。
本来想要体验一下新板Nucleo-F446ZE的Mbed开发,但是连接到Mbed网站后,显示暂不支持Nucleo-F446ZE开发。看来是Nucleo-F446ZE太新了,据介绍预计在2016年第2季度Nucleo-F446ZE开发板正式支持Mbed开发。
图4-1 Mbed暂不支持Nucleo-F446ZE
既然这样,只能使用传统的开发方式,我这里还是选择比较熟悉的MDK+CUBEMX+HAL库的方式。
(1)首先要在MDK官网下载最新的MDK5.18,网址:http://www.keil.com/arm/mdk.asp。
图4-2 MDK下载页面
(2)然后在MDK官网下载最新的软件支持包MDK5 Software Packs,版本是Keil.STM32F4xx_DFP.2.7.0.pack,网址:http://www.keil.com/dd2/Pack/。
图4-3 MDK5 Software Packs下载页面
(3)在ST官网下载CUBEMX,版本4.13,网址:http://www.st.com/web/catalog/to ... 961/SS1533/PF259242。
图4-4 STM32 CUBEMX下载页面
(4)下载STM32F4的HAL库,版本:1.11.0,网址:http://www.st.com/web/en/catalog/tools/PF259243。
图4-5 STM32F4系列MCU库下载页面
软件安装比较简单,这里就不再重复了。
在开发之前,还要确保Nucleo-F446ZE开发板的ST-LINK仿真调试器驱动安装好,且固件是最新的。当开发板连接计算机后,在设备管理器中显示出相应的设备。
图4-6 Nucleo-F446ZE开发板被识别的设备
2、开发
开发环境搭建好后,下面就是开发自己的工程,体验意法半导体ST公司提供的STM32生态系统的便捷。
这里基本软件使用就不和大家分享了,相信社区里有不少的方法。
Nucleo-F446ZE开发板的资源没有以太网接口,那么USB接口就是这块板子最大亮点之一了。当然在这里来体验一下。
这里从ST公司给大家提供的现有工程实例开始是个不错的选择,使大家对开发板的USB功能不太熟悉的基础上,快速体验了解Nucleo-F446ZE的USB功能。
ST公司为Nucleo-F446ZE开发板提供了非常丰富的例程,路径在:\STM32Cube\Repository\STM32Cube_FW_F4_V1.11.0\Projects\STM32F446ZE-Nucleo下面。
图4-7 Nucleo-F446ZE开发板例程
在上述路径的Applications文件夹下面有关于USB的综合性的例程,分为主机和外设两种。
图4-8 Nucleo-F446ZE开发板USB例程
经过查看发现,里面有不少例程由于比较综合,因此硬件资源不仅仅包含Nucleo-F446ZE开发板本身,而且需要一些扩展板,比如LCD屏等等。
经过选择,终于找到了一个在USB设备中有标准的HID例程,实现了鼠标功能,只需要开发板本身就可以了。路径:STM32Cube\Repository\STM32Cube_FW_F4_V1.11.0\Projects\STM32F446ZE-Nucleo\Applications\USB_Device\HID_Standalone。
使用MDK打开,可以看到工程目录结构非常清晰。
图4-9 HID_Standalone例程
整个工程例程非常简洁,还配有相关的注释,这里就不过多分析了,直接将程序编译,发现没有任何错误,然后下载运行程序,发现开发板上3个LED开始闪烁。
将USB线连接到开发板的Micro–AB型USB接口,并连电脑,就会发现用户USB接口旁边绿色LED亮,同时计算机的鼠标在水平方向上反复往返运动。同时在设备管理器中找到新的USB鼠标设备。
图4-10 HID_Standalone例程演示
图4-11 HID_Standalone例程识别出的鼠标设备
整个过程非常顺利,当然,大家可以花一点时间自己好好研读一下程序,相信必将收获不少。另外也可以在例程的基础上增加一些功能,比如使鼠标在屏幕上做些复杂的运动,增加鼠标单击双击动作等等。
最后,在查看使用ST提供的官方例程的过程中,结合个人体会,想提出几点小小的建议:
(1)官方提供的库中叫综合性的例程,最好能够结合开发板自身的资源,尽量少使用扩展资源,应为扩展板并不是每个人都有,比如说例程中有许多用到1.8寸的TFT屏,这个估计并不是每个人都有,即使有,TFT屏的控制芯片也不一定就符合,比如例程中的使用的是ST7735S驱动IC,而我有好几块都不是这个,要想使用例程,要么购买这个扩展板,我查了一下这个Arduino扩展板价格不菲。
(2)官方提供的库例程均是基于HAL库的,但是,没有充分利用ST推出的图形化开发工具STM32 CUBEMX软件。换句话说,我没有看到例程中那个是在STM32 CUBEMX软件生成的代码基础之上进行开发的,也没有提供STM32 CUBEMX例程。STM32 CUBEMX软件的推出目的是为了简化开发过程,但是即使是ST官方也没有较多的例程参考,增加了学习的难度,带来一些不便。因此希望意法半导体ST公司在后期更新HAL库时,能够提供更多的基于CUBEMX软件的一些例程,并包含CUBEMX工程文件。
五、小结
总之,意法半导体ST公司推出的Nucleo-F446ZE开发板是隶属于STM32 Nucleo-144系列,是对原有STM32开发生态系统的进一步扩充,新的Nucleo-144开发板价格实惠且尺寸紧凑,板载一颗基于ARM Cortex-M4内核处理器STM32F446ZET6,最高支持180 MHz主频、512 KB闪存、128 KB的SRAM,开发板自带ST-LINK编程调试器,方便系统调试开发,Nucleo-F446ZE开发板通过三种接口实现无限的应用扩展功能,除现有的Nucleo-64板上的Arduino™Uno和ST morpho连接器外,还包括一个ST zio连接器,完全兼容现有STM32开发生态系统,包括专用的应用扩展插接板,这三类连接器让开发人员能够使用STM32微控制器的全部通用I/O引脚,Nucleo-F446ZE开发板支持多种流行开发环境IDE,提供给用户有完备的软件库和基于图形化的开发工具,不论是电子爱好者和学生,还是经验最丰富的专业系统开发人员,都可以重复利用Nucleo-F446ZE开发板轻松实现各种功能评估。
近期精彩原创内容推荐: