|
【NUCLEO-F412ZG试用体验】---开箱测评 Nucleo开发平台是ST在2014年最新发布的易用性好、可扩展性佳的低成本平台,因其简单自由、灵活可扩展受到多数工程师的喜爱,特有的支持ARMmbed项目开发,支持云端开发以及兼容Arduino R3扩展接口等特性让它一度有取代Discovery系列板卡之势,毫不夸张的说,Nucleo系列板卡已经让ST融入一个更加广大的生态圈。 最近,幸运的从电子发烧友网拿到了又一块Nucleo系列开发板—STM32F412ZG Nucleo,这是一款基于ARMCortex-M4处理器的开发板,众所周知,ST的F4系列微控制器一项被认为是“高性能的数字信号控制器”,凭借着不错的性能、功耗以及性价比,在各个领域都有引领风骚的趋势,如今,我们就来看看今天的这块板卡又会有些什么样的特色。
STM32F412ZG Nucleo采用一贯的包装,特别具有Nucleo系列的特色。先上图:
STM32F412ZG Nucleo包含了开发调试中常用的ST-LINK/ V2-1调试器/编程器,可供工程师灵活扩展的MCU扩展IO口以及Arduino接口。
板卡的主要特性:基于最大主频为100MHz的ARM Cortex-M4处理器、集成1MB Flash/256KB SRAM、兼容ST Zio/Arduino Uno扩展接口以及支持ST morpho、支持USB OTG功能、集成嵌入式调试器ST-LINK/V2-1、支持ARM mbed-enabled项目。
板卡正面 NUCLEO系列开发板基于公版设计,对于大多数引脚数相同的MCU,可以直接替换兼容的MCU来体验不同的MCU特性。开发板上中心位置是144脚的STM32F412ZGT6MCU,上下两侧则是NUCLEO开发板引出的Morpho及Zio接口。开发板右侧是ST-LINK/V2-1调试/下载器,ST-LINK已成ST官方开发板的标配。开发板左侧的缺口是没有引出的网络接口,另外相应的PHY芯片也没有焊接。如果用户需要使用网络功能,需要自行焊接。开发板左侧还提供了USBOTG接口,提供访问外部大容量USB存储器的能力。其它设备包括3个用户可编程LED指示灯、2个按钮(一个用户可编程按钮及一个RESET按钮),另外开发板上提供了32K的LSE晶振。开发板没有提供HSE晶振,不过ST巧妙的设计使得可以使用ST-LINK提供的MCO来给主MCU提供准确的时钟信号。
板卡反面
NUCLEO-F412ZG开发板背面包含大量的SB焊桥,用户可以通过这些焊桥的不同组合以实现不同的硬件配置。开发板引出的Morpho及Zio均使用过孔设计,方便接驳不同类型的杜邦线以连接各种外设。
其中Arduino UNO接口存在ZIO接口中,与之复用引脚。
Arduino UNO R3兼容接口
NUCLEO-F412ZG板卡的整个硬件系统框图如下所示:
这里列出了NUCLEO-F412ZG开发板上主要设备的位置及名称,方便用户参考使用,注意NUCLEO-F412ZG上没有引出ETH接口。(下图所示)
元器件布局及名称(上面)
元器件布局及名称(下面)
STM32F412ZG微控制器
板卡搭载的微控制器具体型号为STM32F412ZGT6,采用LQFP144封装,20mm*20mm,真是够大的。
STM32F412ZGT6微控制器的特性就不一一说明了,反正功能很丰富,比如支持LCD并行接口(8080/6800模式),最大支持17个定时器,支持17个通信接口,包括I2C、USART、SPI、I2S、SDIO、USB1.0OTG、CAN2.0B。有关微控制器具体的资源,可以查阅官方提供的规格书,下图则是STM32F412ZGT6的硬件系统,从中也不难看出其丰富的资源。
STM32F412ZGT6在不断提升品质的同时同样继承ST微控制器在软件和特性方面向前几代STM32F4系列微控制器产品兼容的优异特性,下图则是相应的可以兼容的产品系列列表以及某些地方稍微的改动,如此款STM32F412ZGT6微控制器设计了一个单独给USB供电的引脚,这主要是硬件电路设计的时候需要注意一下。
NUCLEO-F412ZG开发板出厂时内置了DEMO程序。使用Micro USB连接线连接开发板与PC,ST-LINK开始上电,通过调试器提供的三色LED灯来指示不同的工作状态。PC端会发现新的硬件设备,笔者是window7系统需要安装ST-LINK驱动程序,这里就不多做介绍。具体驱动可从官网下载。
安装完成可以在PC端的设备管理中看到相应的提示。
NUCLEO-F412ZG开发板上电后运行默认的LED程序,并且可以通过板载的蓝色用户按键改变不同的LED点亮。
同时,我们也能在PC端我的电脑中看到NUCLEO-F412ZG实现的U盘,这是Nucleo系列板卡支持ARMmbed项目的一个重要功能,通过U盘实现程序的下载。不过,实际使用发现NUCLEO-F412ZG板卡在ARMmbed项目中还没录进去,等待后续更新。
MBED硬件平台
ST之所以能成为行业巨头不仅因为其芯片种类丰富,性价比高,而且他的对外开放的资料丰富,开发者可以很容易的找到自己需要的片子而且上手很快。其官网上向用户提供完整的软、硬件设计参考,从产品的软件库到硬件的设计PCB、BOM等,应有尽有。
使用过ST微控制器的想必也很熟悉其开发环境,用第三方的MDK-KEIL或者IAR等都是可以的,选择自己习惯的就好。一直听说ST推出的一款图形化辅助用户编程工具STM32CUBEMX,使用非常方便。该工具提供了直观的图形化表示,帮助用户设置硬件的初始工作参数,结合ST推出的HAL库,开发者无需查询琐碎的寄存器参数就可以实现特定的初始化及相应的功能调用。通过对CUBEMX的设置,最终用户会得到一个基于IAR/MDK/TrueStudio的完整的工程文件,该工程文件除了设置好硬件工作参数外,还对内存布局、堆栈设置等作了初始设置。而且STM32CUBEMX还支持丰富的三方中间件集成功能,如RTOS的支持及FATFS等中间件的支持。正好借此机会笔者也来学习下。
官网下载
下载安装后就开始下载相应的库文件。
下载库文件
选择对应的库文件下载(已下载完)
新建工程,选择STM32F412ZGTx型号
打开后可以看到包括菜单栏、功能栏、模块栏以及微控制器的引脚定义图,图形化界面,非常直观。
实现的功能就是点亮板子上的3个LED灯,先看原理图,找到对应的IO口进行设置。
图形化的操作非常简单,点击相应的引脚并对其进行设置。三个LED引脚都设置成OUT输出模式,默认为高电平输出。
点击clock configuration对时钟进行设置,选择内部时钟并对sysclk进行2分频,可根据自己的要求进行设置。
点击configuration查看设置的GPIO以及进行默认设置。
完成后保存,在Project下点击生成代码。
看自己使用的IDE工具习惯,生成对应的项目文件,可生成的项目文件包括支持KEIL、IAR等IDE工具。
因为自己使用的是KEIL5,这里就直接生成MDK-ARM V5的项目文件,项目在KEIL5 中打开编译及下载都没有问题。
程序实现的现象展示。
由此看来STM32CubeMX能够让你省去了新建项目、配置、等一些列繁琐操作,对于新手很容易上手,而且在实际体验中也可以适当的精简部分代码的撰写,进一步提高开发人员的效率。不过如果要实现具体的项目需求肯定还需要对程序进行编写。
NUCLEO-F412ZG开发板,丰富的功能,可灵活扩展的外设,价格也很便宜,配套STM32CubeMX工具,值得任何新手或者对于项目成本敏感的公司使用,如果对这款开发板或者对STM32F412这款微控制器感兴趣的网友可以考虑入手了。
|