微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 新一代的STM32F4开发板——NUCLEO-F413ZH评测

新一代的STM32F4开发板——NUCLEO-F413ZH评测

时间:10-02 整理:3721RD 点击:

0.引言

近日,ST公司正式对外发布了一款新的NUCLEO-144系列开发板——NUCLEO-F413ZH。同时,这块开发板也是ST公司发布的第30块NUCLEO家族开发板。NUCLEO系列的开发板引出了MCU的所有引脚可用于扩展,同时具有下载器等外设,方便实验,同时价格便宜,因此受到很多人的欢迎。


作为STM32F4系列的新一代MCU,F413系列除了继承了之前F4系列MCU的特点之外,其最大的特点是同时具有较最大的片内存储空间。适合一些对存储有要求的环境下使用。

下面就由笔者向大家介绍这块基于STM32F413ZHT6的开发板。

1.开箱

这一部分向大家展示一下这块开发板的外观。

这块开发板的包装还是和之前的NUCLEO系列开发板差不多,都是一块开发板加一份说明书装在一个透明包装内,不过体积大了很多,此外,这块开发板是本身没有网口部分的。


开发板的正面图


开发板的背面图


下图展示的是两块NUCLEO-144的开发板——NUCLEO-F413ZH与NUCLEO-F767ZI,可以看出这个系列的开发板有些有网口有些没网口,除此之外其他的硬件布局都几乎一样,因此只要能够替换MCU就能够变成不同的NUCLEO-144。


2.硬件介绍

这一部分向大家介绍一下开发板的硬件。

新版的NUCLEO-144开发板基本配置一样,主要由两个部分组成,位于开发板上方的是一个ST公司的仿真器,开发板下方包含了一个MCU的系统,这两个部分是可以分离的。而NUCLEO-144开发板的主要改进之处除了使用了拥有功能更加丰富的144脚MCU之外,还有就是增加了一个USB电路,增加了一组Zio扩展接口,这样能够更好地评估板载的MCU。

整块开发板的主要硬件特性如下:

1、MCU: STM32F413ZHT6

2、两组扩展接口:ST Zio接口(其中包含一组Arduino UNO 扩展口)和ST morpho接口

3、USBOTG接口

4、板载ST-LINK/V2-1仿真器

5、三个用户定义的LED,一个复位按钮,一个用户定义的按钮

整块开发板的硬件布局如下图所示


下面对开发板的各个部分进行详细介绍。

1、MCU: STM32F413ZHT6

STM32F4家族是基于高性能的ARM Cortex –M4 32-bit RISC 内核 ,能够运行在100MHz的频率之上,同时拥有大容量的片内存储空间。具体参数如下:

-   内核:ARM  32位 Cortex?-M4 CPU (最大100 MHz) ,同时采用了 Adaptive real-timeaccelerator (ART Accelerator?)技术,此技术能够实现从flash读写的0等待, 集成MPU, 拥有125 DMIPS的性能。

-   存储:1.5MB Flash,320 KB SRAM

-   支持16通道12位ADC,2组12位DAC

-   支持直接存储器存取技术(DMA)

-   最多18个定时器

-   支持SWD,JTAG,ETM三种调试方法

-   最多114个IO口具有最多100MHz的速率,容忍5V输入

-   最多具有24路总线,其中4路I2C,10路UART,5路SPI(都可被复用为I2S),3路CAN总线,1路SDIO总线,1路SAI总线

-   支持USB2.0高速device/host/OTG模式

-   支持sigma delta 滤波器

2、扩展接口

扩展接口能够将MCU上面所有的引脚全部引出,Zio扩展接口的定义与morpho接口的定义在说明书上面有说明。

3、USBOTG

USBOTG接口直接连接到MCU上面,但是这个USB OTG接口不具有供电能力。

4、ST-LINK/V2-1仿真器

ST-LINK/V2是用于STM8和STM32微控制器的电路调试器和编程器。利用单线接口模块(SWIM)和JTAG /串行线调试(SWD)接口与电路板上面的STM8 或STM32单片机进行通信。

从硬件上面看,这块开发板沿用了NUCLEO-F412的配置,不过MCU比STM32F412要强一点,主要在片内存储与总线接口方面有所增加。但是要注意的是,这块MCU在性能方面仍然比不上STM32F469等最高性能的F4芯片。此芯片的主要应用场合为电机控制与可穿戴设备等方面。

3.开发环境介绍及搭建

这块开发板支持四种开发环境,都是第三方的开发环境,分别是:

1、Keil:MDK-ARM

2、IAR:EWARM

3、GCC-basedIDEs

4、ARMmbed online

其中Keil与IAR都是大家平常用得比较多的平台,ST公司在这两个平台上面提供了大量的例程,使用这些例程就能够很方便地进行开发。而这个ARM mbed online则是ARM公司推出的线上开发平台,任何人都可以为其贡献代码,因此其资源也是相当丰富的。不过在笔者写这篇评测的时候这个板子还没能在mbed上面使用。因此,笔者在这里仅介绍如何在Keil下对这块开发板进行开发,其他的平台也是类似的。

开发的步骤如下:

1、安装ST-LINK驱动。在下面网址可以获得驱动

http://www.st.com/content/st_com/en/products/embedded-software/development-tool-software/stsw-link009.html

下载之后得到一个压缩包,解压缩之后得到的文件夹有下图所示的两个文件


                              

如果是64位系统则选择amd64进行安装,32位系统则选择x86进行安装

安装过程中会弹出询问是否安装驱动的提示,选择安装即可,最后完成时的界面如下图所示


安装完PC端的驱动之后还需要将ST-LINK的固件更新一下,到下面这个网址可以获得最新版的固件:

https://developer.mbed.org/teams/ST/wiki/Nucleo-Firmware

下载完之后将开发板与PC连接,然后打开名为ST-LinkUpgrade.exe的应用程序,应用程序此时会检测到开发板,然后点击Yes即可


安装完驱动并更新完固件之后将开发板与PC连接,然后设备管理器中会有如下图中红框所示的设备


到这里驱动安装就完成了。

2、在MDK-ARM中更新相关开发板的库。在下面网址下载相应的包,并进行安装

http://www.keil.com/dd2/


安装完成之后可以在Pack Install下面看到相关的信息。


4、下载ST官方的支持包(SDK),下载地址如下:

http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32cube-embedded-software/stm32cubef4.html

下载之后得到一个压缩包,解压缩之后会得到一个带有3个不同平台的例程包还有相关库文件的文件夹。


到这里为止就完成了所需的开发环境的搭建。

4.实验演示

这里将演示几个实验,同时介绍一下如何进行开发。

首先打开keil MDK-ARM软件,然后依次点击File-Open,找到刚刚下载的SDK,随后选择相应的例程进行测试。

UART串口通信测试:

打开\Examples\UART\UART_Printf\MDK-ARM,在这个程序的基础之上可以在图示位置对打印出来的文字进行修改。


打开putty,设置为波特率9600,数据位7位,停止位1位,校验位为奇校验,然后打开串口进行通信,打印出来的信息如下图所示。


GPIO与中断测试:

打开\Examples\GPIO\GPIO_EXTI\MDK-ARM,这个程序利用板载的按键B1(蓝色)产生一个中断,当产生这个中断时使板载的LD1点亮。下图为主程序段。


看门狗测试:

打开\Examples\IWDG\IWDG_Example\MDK-ARM,这个程序可以利用板载的按键B1(蓝色)产生一个中断,此中断将会产生一个错误,从而触发看门狗定时器的功能,等到一定时间(差不多5分钟)过后开发板将会复位。

正常运行时仅蓝灯闪烁


按下蓝色按键产生错误,绿灯点亮


等待一段时间之后开发板会复位。

利用ST官方的例程进行开发已经比较简单了,下面再介绍一个更加简便的工具,此工具就是stm32cubemx,下面演示一下利用这个工具进行编程,循环点亮板载的三个LED。stm32cubemx下载地址为

http://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-configurators-and-code-generators/stm32cubemx.html

这个是ST的代码配置工具,用这个工具可免除写初始代码的麻烦。下载之后得到一个压缩包,解压缩之后直接安装即可。此处注意,要使用最新版的软件才能支持F413,如果是旧版软件需要点击一下软件界面右上角的那个绿色箭头进行更新。安装完成以后点击“new project”新建工程,在Boards选择界面中选择NUCLEO-F413ZH,然后点击OK。


下面进行时钟配置。在左侧RCC选项中,选择使用外部晶振,即HSE的选项改为crystal,点击上方的“clock configuration”进入时钟配置界面。

在时钟配置界面修改以下三个位置:

1、inputfrequence选择25MHz,PLL source Mux选择HSE

2、systemclock Mux选择PLLCLK

3、HCLK选择120MHz

如下图所示


回车,系统会计算出一个比较合适的参数

完成时钟配置之后进行引脚配置。首先在原理图中找到三个LED对应的管脚,如下图所示


在Pinout界面下找到PB0、PB7与PB14,配置为普通的GPIO-output口。


完成之后直接生成项目,名称和路径可以任选,生成的工程这里选择为MDK 5。


随后在生成的文件中找到那个MDK的project的工程文件并打开。

下面来看看如何使用GPIO口。打开main.c,然后找到如下图所示程序段


这里可以看出使能GPIO的程序是

HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0|GPIO_PIN_14|GPIO_PIN_7, GPIO_PIN_RESET);

因此,只要在之前的while(1)中增加

HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0, GPIO_PIN_SET);

HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7, GPIO_PIN_RESET);

HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14, GPIO_PIN_RESET);

HAL_Delay(200);

HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0, GPIO_PIN_RESET);

HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7, GPIO_PIN_SET);

HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14, GPIO_PIN_RESET);

HAL_Delay(200);

HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0, GPIO_PIN_RESET);

HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7, GPIO_PIN_RESET);

HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14, GPIO_PIN_SET);

HAL_Delay(200);

即可循环点亮板载的三个LED了。然后点击编译,编译无误之后下载调试程序,最终实验的结果如下


5.总结

本次评测介绍了一款ST公司的NUCLEO开发板——NUCLEO-F413ZH。这块开发板属于新一代的NUCLEO-144系列,也属于ST公司近期力推的STM32F41X系列的第三款NUCLEO板。STM32F41X的定位是入门级性能的ARM Cortex-M4内核MCU,在继承ARM Cortex-M4内核的优点,如FPU加速,ART加速等的同时,兼顾了性能。而这块NUCLEO板上面具有多种模块能够很好地评估这款MCU。而且支持多种开发环境,能够让用户快速上手。美中不足的就是由于这款开发板刚面世不久,因此缺少相关的设计资源,最直接表现在到目前为止仍不支持mbed。不过这一问题应该会在将来得到解决。
更多资料可前往ST中文网

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top