本帖最后由 夜色风满楼 于 2016-3-8 10:19 编辑
前一段时间在使用STM32CubeMX做开发时,意外地发现新建工程的Board Selector下多出了Nucleo144一栏,原来的Nucleo也改成了Nucleo64。这不禁让我眼前一亮,因为这说明ST又推出了一款引脚数目更多的Nucleo板,正好赶上论坛举办活动,于是立即就报名了。有幸从21IC拿到了这块Nucleo-F446ZE,在这里简单谈谈我的使用心得。STM32F446是一款高性能的芯片,它利用ST的专有ART Accelerator、智能架构、先进的Flash技术及其嵌入式ARM Cortex-M4内核,实现了225 DMIPS和608 CoreMark的领先性能(180MHz频率下从嵌入式Flash执行)。因此在一些中高端的场合极为合适。下图是各产品线定位对比。
拿到开发板的第一感觉是好大啊,它的宽虽然比Nucleo64略小,长却比Nucleo64长很多,所以它的总面积还是比Nucleo64大出二分之一,当然更是Nucleo32的好几倍。三种型号合照如下图。
可以看出,Nucleo-F446ZE延续了Nucleo系列的外观,白色的底板与蓝色的丝印更是相得益彰。包装一如既往的淡雅脱俗,拿到后让人爱不释手。套件正面靓照如下。
套件反面靓照如下。
整个套件包含一块开发板与一张说明卡。对于很熟悉Nucleo系列板子的来说自然不必多看,不熟悉的人可以从上面了解到一些测试现象,开发环境以及一些基本参数。观察背面可看到板卡背后有很多的0欧电阻,这里的电阻起桥接作用,随着焊接电阻位置的不同,扩展I/O口对应着芯片不同的引脚。这一点新入手板卡的朋友要小心注意,因为很有可能因为没有注意到某个引脚浮空,而造成实验现象不正常,继而耽误评估过程,造成不必要的麻烦。通过查阅用户手册可以看出,系统硬件的整体结构与Nucleo64相差不多,主要多了USB接口和RJ45接口,方便用户评估更多扩展功能。具体见下图。
硬件框架图:
做USB或者以太网开发的朋友可以关注下这一新元素。但要注意LAN8742以及RJ45接口并没有焊接,需要用户自行购买焊接~(也不知道是不是PHY芯片比较贵哈)。
STM32F446支持180MHz时钟,2Mbflash,256MbSRAM,支持2个OTG,3个16位timer,2个CAN接口,同时支持I2S和Ethernet。STM32F446产品系列是高度集成的节能产品,具有高性能和丰富的连接性,Flash最小为256KB。
集成:
1、 2个专用音频PLL,SPDIF输入,3路半双工I²S和2路串行音频接口(SAI),支持全双工I²S和时分复用(TDM)模式。
2、多达20个通信接口(包括4个USART、2个速度达11.25 Mbit/s的UART、4个速度达45 Mbit/s的SPI、3个具有新型可选数字滤波器功能的I²C、2个CAN、SDIO、HDMI CEC以及摄像头接口)
3、两个12位DAC、三个速度为2 MSPS或7.2 MSPS(交错模式)的12位ADC定时器多达17个:频率高达180 MHz的16和32位定时器
4、使用灵活的90 MHz存储控制器可以轻松扩展存储范围,带有一个32位的并行接口,能支持Compact Flash、SRAM、PSRAM、NOR、 NAND以及SDRAM存储器
5、由于90MHz Dual quadSPI接口支持内存映射模式,可进行经济实惠的NOR闪存扩展。
在上电测试之前,首先要做的事情当然是安装集成开发环境和驱动。STM32支持的开发环境有很多种如Keil、IAR等。在这里我选择的是Keil5做为集成开发环境(资源见最下方)。因为每一块Nucleo开发板均集成了ST-LINK/V2-1,故采用其做为调试器,所以安装ST-LINK/V2-1驱动即可(资源见下方)。准备工作做好后,就可以上电测试了。通过microUSB(CN1)将Nucleo开发板与PC相连,这里要特别注意microUSB需要自己准备,套件是不提供的。上电后,可看到LED闪烁,证明开发板没有损坏。
接下来就是利用CubeMX进行编程测试。STM32CubeMX是一款图形化工具,它用于STM32初始化代码的配置。它可以直观地进行STM32型号和板卡选择;进行图形化外设资源配置;C代码项目产生,并且它可以很好地支持Eclipse,作为一个插件使用。在使用前,要安装好java软件 才能安装该软件。这种方式将我们从繁琐的底层解放出来,使我们能专注于完成我们的开发而并非一直去钻研浩如烟海的寄存器。
首先要安装STM32Cube_FW_F4_V1.10.0。它是使用STM32CubeMx平台的不可缺少的组件(如果开发F1系列,就要装F1的),里面主要有相应的HAL库,和一些资料、底层驱动。
然后我们打开STM32CubeMX,进入主界面(如下图),点击New Project。此时我们可以选择Mcu Selector和 Board Selector。前者与后者的区别主要在于,后者建立的工程有一些IO口已经提前占用掉了(比如上电测试中的绿色LED),为了防止用户误用,已经提前标注。而前者只有当用户设置时,才会标注。这也是STM32CubeMX的一大好处,可以有效的防治开发过程中的引脚冲突。
由硬件原理图(资源见下方)可知LD2与LD3分别对应PB7和PB14,且均为高电平驱动。故设置PB7和PB14位高电平输出。即可点亮LED灯。
效果如下:
评估和选型在初期对工程师有着重要作用。Nucleo144具有Nucleo系列板卡固有的特性,板卡兼容Arduino接口、支持ARM mbed在线编译器,调试方便且生态圈庞大。同时加入了许多新元素,如USB接口,RJ45接口等,方便用户评估,弥补了以往Nucleo系列的缺点。总之,无论是学习还是开发,Nucleo144开发套件丰富的功能绝对能让你眼前一亮。最后感谢论坛提供的机会~希望论坛越办越好~
水平有限,请各位多多包涵。
ST-Link 驱动:http://pan.baidu.com/s/1dEb7Mxj
MDK-ARM :http://pan.baidu.com/s/1i4moXA9
|