找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6495|回复: 0
打印 上一主题 下一主题
收起左侧

化圆为方:Nucleo-STM32F410评测

[复制链接]
跳转到指定楼层
楼主
Nucleo开发板配置都差不多,不同就是板载的芯片不同,所以我也花了很大的篇幅去介绍STM32F410和同系列芯片的相同点和不同点,但限于时间和个人水平限制不能面面俱到,如果你有兴趣详细了解可以下载我附件里面的芯片参考手册,那是ST对这个芯片最权威和详细的评测了!

  很幸运从ST社区拿到了最新的NUCLEO-STM32F410开发板,板载的STM32F410是F4系列的一款新的芯片,作为M4内核的一个新的成员,STM32F410采用动态功耗调整、新型智能DMA优化数据批处理等技术用来实现了功低耗新的里程碑,在功耗和性能高度平衡方面独树一帜。下面通过对STM32F410的认识和NUCLEO板子的简单测试使用来简单了解下这个新的芯片。

1、STM32F410介绍
  自从ST采用Cortex-M内核进入ARM单片机领域,相继推出了M0/M0+/M3/M4/M7内核的多个系列多款芯片,每款芯片都有自己独特的特性和使用行业。纵观ST32MCU的产品线已经完全覆盖了消费品、工业、医疗、物联网、可穿戴设备等各个行业和领域,无论高性能或者低功耗等需求,几乎都能找到一款适合的芯片。
  和M3内核相比由于M4内核带有DSP和FPU这些优点,所以ST很多性能强劲或者低功耗系列都采用M4这个内核,比如F4和L4系列。作为目前ST产品线最为丰富和成熟的F4系列产品线分为3个类别:
各个系列主要的参数对比如下:
STM32F410作为F4系列入门级的产品线(Access Line),主要用于医疗、工业、消费品等需要性能和功耗相平衡的行业,其内嵌高度集成的内存和外设使芯片封装缩小到2.553 x 2.579 mm,从上面的图片中可以看到这在整个入门级系列中都是最好的。主要参数如下:
                ●性能:主频为100MHZ,典型性能为125 DMIPS/339 CoreMark
                ●功耗:运行模式:89 uA/MHz,STOP模式:6uA
                ●外设:专用的音频PLL和3个双工I2S
                             3个高达10.5Mbit/s的USART
                             3个高达42 Mbit/s的SPI
                             3个I2C,其中一个FMPI2C,速度高达1MHZ
                              1个12bit的ADC和一个12bit的DAC
                              9个定时器,包括一个LPTIM,Systick时钟高达100MHZ
                              真随机数发生器

从上面的配置来看,丰富的外设接口,可以满足一般的使用都没有问题,比较遗憾的是芯片没有USB接口和FSMC/FMC,但是借助速度很高的SPI和USART能拟补些这些不足。芯片整体架构如下:
目前提供的封装和类别如下:
STM32F410产品线主要采用Dynamic Efficiency来实现性能和功耗的完美平衡。Dynamic Efficiency 技术包括ST专用的 ART Accelerator、Prefetch Queue和 Branch Cache,这些可以0等待的从Flash执行代码,最大的程度的提升性能。除此之外,90nm的工艺技术不但提高了性能而且还降低了动态功耗,同时动态电压调整优化了工作电压来满足性能需求并且尽量减少泄漏来降低功耗。ST形象的将Dynamic Efficiency这种技术比作“化圆为方”(square the circle),并做了下面的解释:
How the new STM32 Dynamic Efficiency™ microcontrollers “square the circle”:

Squaring the circle – constructing a square of the same area as a given circle - has become a metaphor for attempting the impossible. There is no plane solution to this ancient problem, since the square root of PI cannot be constructed geometrically.

In creating STM32 Dynamic Efficiency, ST has achieved a reduction in Power consumption with a simultaneous increase in Performance and Integration (P2I). Just as PI holds the key to the problem of squaring the circle, realizing P2I overcomes one of today’s toughest and most important challenges in microcontroller design.

STM32F410为了实现低功耗特别设计了新的Batch Acquisition Mode (BAM)低功耗模式,这种低功耗模式配合新型智能DMA可较大程度的优化功耗。在Sleep模式下,Flash被关闭,需要工作的外设继续运行,数据通过DMA传输继续有效!
各种低功耗模式对比如下:
2、NUCLEO-STM32F410
      相信很多小伙伴都很熟悉NUCLEO开发板了,铁打的外设流水的主芯片MCU,见到过一次再遇到就倍感亲切。仔细观察发现,STM32F410-Nucleo开发板的丝印采用了新的亮蓝色,和之前的深蓝色相比更能感觉到年轻和活力!
     STM32F410-Nucleo开发板继承了NUCLEO系列前辈的优良基因,简约而不简单,和高大上的EVAL/Discovery系列对比平凡而不平庸。扩展简单方便,不论Arduino或者Morpho 都能直接配套使用,除此之外板上引出的IO口更可方便的扩展自己的外围模块。
    板载的STLINK使下载调试程序方便简单,一块NUCLEO开发板配上一条数据线和一台电脑就可以开始学习STM32,是新手入门学习走向高手之路的必备神器,至于高手嘛,也可以用NUCLEO打发无聊的周末。^_^
STM32F410-Nucleo 开发板板载资源如下:
            ● ST-LINK/V2.1调试器,可以在PC上枚举出虚拟串口和虚拟U盘,前者可以用于调试时通信,后者可用于配合mbed下载使用
            ●2个按键,蓝色的是用户按键,黑色的是复位按键
            ●3个LED,一个多色LED用于显示stlink和PC的通信状态,一个红色的LED用于显示电源状态,一个绿色的LED用于用户折腾玩耍使用
            ●支持Keil,IAR,GCC,ARM mbed online 开发工具
先在电脑安装Nucleo板子需要的stlink驱动和虚拟串口的驱动,然后将开发板通过USB线和电脑相连接,在设备管理器里面可以看到枚举出了下面的设备:
在资源管理器里可以看到多出来一个U盘设备:
打开U盘设备里面的链接可以直接进入mbed网站,在这里可以看到可以看到该NUCLEO-STM32F410功能特性说明:
相应的扩展接口;
mbed网站资源丰富,很多开源的代码可以参考学习,在线的编译器能快速便捷进行功能验证和测试:
3 、NUCLEO-STM32F410测试
除了上面提到的mbedST也提供STMCubeMXSTM32Cube开发包用于快速开发测试评估。STMCubeMX是一个图形界面的代码配置工具,能让用户根据需要一步一步的进行配置外设、时钟、最后根据需要输出工程代码。这个工具功能强大上手简单,现在可以看到很多使用STMCubeMX的教程可以参考。为了更详细的测试,我使用STM32CubeF4开发包手动建一个keil工程并写一个简单的测试验证程序。自己建立工程的好处就是能很清楚自己的工程里面包含了那些代码,能有效的控制整个全局的程序结构,如果程序出了问题会比较便于查找。
1)STM32CubeF4开发包介绍:
       STM32CubeF4包括F4系列的HAL驱动库、DSP库、各种官方的开发板测试代码、第三方代码(FATFS/EMWIN/FreeRTOS)等等,总的来说这个开发包是开发人员能得到的最权威最详细的官方参考代码、使用文档、底层库的一个集合,是一个名副其实的聚宝盆,各种简单的外设使用比如IO口、USART、SPI、IIC等等都能找到如何配置和是使用的例子,复杂的比如USB、FreeRTOS、EMWIN等也有相应的测试DEMO。这里面的代码注释都很清晰明了,即使之前没有接触过也可以很快上手。
整体结构如下:
Drivers文件夹下是我们要使用的HAL库源文件和说明文档:
Project文件夹下的各种评估板测试代码(大宝藏),有了这个还要啥自行车....
STM32F410-Nucleo测试代码:
    整个CubeF4开发包结构清晰分类合理,上面的每个测试代码都可以使用keil、IAR等IDE打开,每个工程都有详细的Readme进行描述该测试代码的目的和使用方法。
    当我们使用keil开发时要下载一个F4对应的PACK,这个Pack就是打包的STM32Cube的文件然后加入芯片的一些架构信息用于keil生成工程使用,我们可以在keil的安装目录下看到这个被打包的STM32Cube
所以如果从ST网站下STM32Cube如果很慢时可以直接把从keil网站上下载的PACK后缀修改为rar压缩文件直接使用即可,不过有可能KEIL的PACK更新慢于STM32Cube
2)使用keil建立一个测试工程
1、新建工程选择STM32F410
2、点击OK后勾选弹出的CORE内核,这样就可以包含需要的内核头文件了
3、然后在建立几个文件夹放置HAL库,mian函数、硬件外设
4、将文件夹加入到工程中
5、建立LED,UARTSYS,MIAN等文件并添加到工程中
6、最后完善mian函数,完成LED闪烁和串口输出信息,编译下载即可看到预设的现象。
  • #include "main.h"
  • //Nucleo_STM32F410 Test By creep
  • //ST社区:www.stmcu.org
  • int main(void)
  • {
  •         uint8_t led_sta = OFF;
  •         HAL_Init();
  •         SystemClock_Config();
  •         LED_Init();
  •         USART2_Init();
  •         while(1)
  •         {
  •                 LED(led_sta);
  •                 HAL_Delay(1000);
  •                 led_sta = !led_sta;
  •                 printf("ST社区:www.stmcu.orgNucleo-STM32F410 Test by creep");
  •         }
  • }


复制代码
手动建立工程时有几个地方需要注意:
1)添加必要的库函数并包含需要的有文件
2)stm32f4xx_hal_conf.h文件中配置需要的库文件包含关系
3)建立工程时选中RTE的CORE用于直接调用keil5安装下的内核头文件
4)时钟配置函数可以从参考DEMO中的配置
最后输出测试信息:


总结:
    整体来说STM32F410继续保持着F4系列的超强性能而且通过动态功耗调整和新型智能DMA及新的BAM休眠等技术使功耗达到了一个新的里程碑,对于需要性能和功耗兼顾的行业是个不错的选择。
    ST采用差异配置在不断完善着各个产品线,给不同行业不同需求的都能提供理想的选择,也有越来越来的开发人员和产品使用ST的芯片,在这个良性的循环下可以预见到ST的ARM系列会越做越好,产品线也会越来越丰富。由于各个产品线系列的类似开发平台,这样最后也会让我们开发人员能很简单容易的去掌握使用新的芯片和技术。


测试代码及相应文档:

Nucleo_STM32F410_Test.rar

795.04 KB, 下载次数: 10, 下载积分: 黑币 -5

STM32F410-RM.rar

3.94 MB, 下载次数: 8, 下载积分: 黑币 -5

STM32F410x8-DS.pdf

1.89 MB, 下载次数: 5, 下载积分: 黑币 -5

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表