意法半导体的开发板一直都深入人心,平易近人的价格加上无处不在的生态支持,非常受学生、工程师以及电子发烧友的喜爱,如果你也曾用过不少开发板,拆过不少电子产品,你会发现,ST的微控制器产品在目前的电子行业领域基本是无处不在。 从Discovery系列开发板到NUCLEO开发板,意法半导体完成了一次成功的华丽转型,不得不让人称赞,目前在官网上可以看到,ST的Nucleo系列开发板主要有Nucleo-32、Nucleo-64以及Nucleo-144三个类型,我们可以简单的理解为面向入门级、中端以及高端,无论是性能还是功能都呈阶梯状提升。 来看看今天的主角——NUCLEO-F412ZG,这是面向高端的Nucleo-144系列中的一款产品,基于微控制器中高性能的ARM Cortex-M4处理器,具备丰富的功能和内置1MB Flash的大存储空间。 NUCLEO-F412ZG开发板硬件 NUCLEO-F412ZG采用ST Nucleo系列一贯的精简包装,不过在包装盒内的硬纸板上明确的点出了板卡的几个重要特性,比如基于最大主频为100MHz的ARM Cortex-M4处理器、集成1 MB Flash/256KB SRAM、兼容ST Zio/Arduino Uno扩展接口以及支持ST morpho、支持USB OTG功能、集成嵌入式调试器ST-LINK/V2-1、支持ARM mbed-enabled项目。 了解过ST Nucleo系列板卡的用户可能都明白,这系列的板卡就相当于微控制器的最小系统+板载调试器的组合,但对于初学者或者第一次接触Nucleo板卡的用户,当第一眼看到板卡实物的时候可能会有些失望,毕竟听介绍NUCLEO-F412ZG板卡性能和功能都该很强大,但是板载的众多功能都没有相应的外设来体现,需要自己动手去实现各种功能,上手简单,想要进一步就比较困难。 即便如此,为何ST还是要大力拓展Nucleo系列的板卡呢?依笔者的愚见来看,这里实际就涉及到一个生态的问题,玩过Discovery系列板卡的用户都该清楚,Discovery板卡都基本会板载一些外设,可供用户验证微控制器的功能,不会像拿到Nucleo板卡这样有点不知道该干什么好,但是有利也有弊,对于一些已经玩单片机很溜的用户来说,更希望自己亲手DIY板卡外设功能,而Discovery系列的板卡部分功能已经被占用,没法让用户尽兴的DIY,而Nucleo系列的板卡就不同了,依托于目前Arduino广泛的生态圈,基于Arduino UNO扩展接口的模块市面上很多,而且价格低廉,这就像芯片都在朝SoC的方向发展,而我们的外设组件都在慢慢变为模块化,既标准化,又非常的方便,利于验证、研发、DIY,所以从长远来看,Nucleo系列的板卡明显会具有更大的优势,生命周期也将更长。 浅显的表达了下笔者的愚见,接着回到NUCLEO-F412ZG板卡,诚如上面所述的,Nucleo系列板卡板载的资源少的可怜,大多数情况是需要依靠用户自己DIY外设。 整个板子的结构是以微控制器最小系统+调试器的组合,撇开这颗全新的、还不完全了解的微控制器,ST-LINK/V2-1可是我们熟悉的调试器,不仅对内,还可以对外调试,方便实用,这点上相比以前动不动就需要我们额外购买仿真器强上不少,不仅方便,还能节省不少成本。 另外,我们也可以看到板卡的微控制器外部晶振只保留了一个32.768kHz的RTC晶振,高速晶振也省去了,如果需要使用,我们也可以通过配置使用STLINK/V2-1的MCO来作为MCU的高速时钟。 其中Arduino UNO接口存在ZIO接口中,与之复用引脚。 NUCLEO-F412ZG板卡上的资源大概就是以上这些东西,可以看到,此款板卡明显有精简的意味,即便是已经扩展出以太网接口、在PCB板上已经布局了这个器件,但是实际拿到的板卡还是未贴片,这也难怪,这么强大的MCU功能板,官方的报价还不到19美金,你还能要求什么呢? NUCLEO-F412ZG板卡的整个硬件系统框图如下所示。 STM32F412ZG微控制器 说实话,除了微控制器本身,NUCLEO-F412ZG板卡还真找不出一个可聊硬件的地方,当然,这也可能是跟笔者经常接触Nucleo系列的板卡有关,太熟了,都不知道该说些啥,板卡搭载的微控制器具体型号为STM32F412ZGT6,采用LQFP144封装,20mm*20mm,真是够大的,比目前手机的SoC还大,当然这也是由于封装关系,另外也有采用UFBGA144封装的,要小上不少,只有10mm*10mm。 STM32F412ZGT6微控制器的特性就不一一说明了,反正功能很丰富,比如支持LCD并行接口(8080/6800模式),最大支持17个定时器,支持17个通信接口,包括I2C、USART、SPI、I2S、SDIO、USB1.0 OTG、CAN2.0B。有关微控制器具体的资源,可以查阅官方提供的规格书,下图则是STM32F412ZGT6的硬件系统,从中也不难看出其丰富的资源。 STM32F412ZGT6在不断提升品质的同时同样继承ST微控制器在软件和特性方面向前几代STM32F4系列微控制器产品兼容的优异特性,下图则是相应的可以兼容的产品系列列表以及某些地方稍微的改动,如此款STM32F412ZGT6微控制器设计了一个单独给USB供电的引脚,这主要是硬件电路设计的时候需要注意一下。 上电与开发环境 ST Nucleo系列板卡出厂自带内置的程序,可以实现一些小功能,最常见的就是点灯程序了,毕竟这个程序很通用,如果第一次使用Nucleo的板卡,是需要安装驱动程序的,最重要的一个就是ST-LINK/V2-1调试器的驱动了。安装完成可以在PC端的设备管理中看到相应的提示。 NUCLEO-F412ZG开发板上电后运行默认的LED程序,并且可以通过板载的蓝色用户按键改变不同的LED点亮。 同时,我们也能在PC端我的电脑中看到NUCLEO-F412ZG实现的U盘,这是Nucleo系列板卡支持ARM mbed项目的一个重要功能,通过U盘实现程序的下载。 不过,实际使用发现NUCLEO-F412ZG板卡在ARM mbed项目中还没录进去,期望后续尽快更新。 ST微控制器的开发环境想必大家都非常熟悉,用第三方的MDK-KEIL或者IAR等都是可以的,选择自己习惯的就好。而值得谈谈的是ST也为广大用户推出了非常方便实用的STM32CubeMX,这是如下这个玩意。 STM32CubeMX是一个全面的软件平台,包括了ST产品的每个系列,(如,STM32CubeF4 是针对STM32F4系列),平台包括了STM32Cube硬件抽象层和一套的中间件组件(RTOS,、USB/FS、TCP/IP、Graphics, 等等) 使用STM32CubeMX主要的优势在于: -可以直观地进行STM32选择 -图形化配置 -C代码项目产生,涵盖STM32初始化部分。兼容IAR, KEIL和GCC编译器4.支持Eclips 用通俗的语言讲,即便你不是很了解C语言,通过STM32CubeMX也能实现简单程序的开发,说实话,这么好的工具放着不用很可惜的,即便是你是大牛,通过STM32CubeMX一样可以缩短你的研发时间,进一步提高开发效率,好像目前伟大的半导体公司都在竭尽全力为全世界的工程师提供更方便、更快速的产品化研发道路,这里要给他们一个大大的赞。 STM32CubeMX工具可以在ST的官方免费下载到,打开后的界面如下图所示。 第一次使用需要安装相对应的微控制器的Libraries。 NUCLEO-F412ZG板卡选择STM32F4系列的固件,直接用工具中自带的下载器下载的话速度可能会很慢,推荐先去ST官网下载,然后导入。 从最新的Library库可以看到中,别说时微控制器,就是连现成的板卡都能找到,如果仅针对板卡的开发,这就更加方便了。 打开后可以看到包括菜单栏、功能栏、模块栏以及微控制器的引脚定义图,图形化界面,非常直观。 板子上也没啥资源,这里就以3颗LED为例实际使用下这个工具,目标是同时点亮这三颗LED。 先在原理图上找到LD1、LD2、LD3 LED的引脚信号。 LD2、LD3原理图 LD1原理图 根据原理图的管脚设置相应的GPIO口输出 时钟配置,选择默认或者按照需求设置都可以。 完成后保存,在Project下点击生成代码。 看自己使用的IDE工具习惯,生成对应的项目文件,可生成的项目文件包括支持KEIL、IAR等IDE工具。 因为自己使用的是KEIL5,这里就直接生成MDK-ARM V5的项目文件,项目在KEIL5 中打开编译没有问题。 下载调试也没有问题。 程序实际运行效果图。 从这个简单的实例来看,STM32CubeMX让你省去了新建项目、配置、等一些列繁琐、新手又不容易上手的过程,而且在实际体验中也可以适当的精简部分代码的撰写,进一步提高开发人员的效率。另外,有件事大家注意了没,整个示例过程中甚至没去关注或者接触一丁点的代码书写,这是何其的神奇! 小结 NUCLEO-F412ZG开发板,丰富的功能,可灵活扩展的外设,不到19美金的价格,配套STM32CubeMX工具,值得任何新手、电子发烧友或者对于项目成本敏感的公司使用,如果对这款开发板或者对STM32F412这款微控制器感兴趣的网友可以考虑入手了。 本文由爱板网提供技术支持 相关推荐: STM32评估与开发工具更多评测: F412ZG评测之RAM和FLASH速率 |
刚刚出来,目前市面上可能还没有
刚刚出来,目前市面上可能还没有
都在玩简单的应用,迟点发帖子分享下