当前位置:首页 > 嵌入式 > 开发板
[导读]ST 的官方评估板又添了新成员,今天测评的STM32F031K6 就是NUCLEO32 中的首批评估板。

引子

ST 最近要火。一是听说ST 的芯片现在部分系列缺货,如经典产品STM32F1 系列,原因据说是ST 现在在国内混得风生水起,预谋着涨点价,所以先缺点货,等价格上来了,再放量,自然是皆大欢喜。缺不缺货我不知道,反正最近自己画了块STM32 的MINI 板,在某宝上购买了几片,价

格是比以前高了一点。传说毕竟是传说,今天要说的是另一件事,就是ST 的官方评估板又添了新成员。

众所周知,ST 官方评估板,传统上分为三个系列,第一类是高大上的EVAL 板,功能齐全,价格威猛,只有大户才用得上;第二类是DISCOVERY 板,板载资源相对丰富,价格亲民,向来为各屌丝所爱好;还有一类就是所谓的NUCLEO 核心板,光板一块,引出所有可用引脚,

供各大爱好者自行选择外设资源,自由组织,乃各DIY 爱好者首选开发板

传统上,NUCLEO 被设计为使用固定的64PIN 芯片,芯片选择会涵盖大部分产品,这样原本极好,只是在选择的自由度上有所局限。ST 也意识到了这个问题,今年将NUCLEO 评估板再度细分,将使用32PIN 芯片的NUCLEO 板命名为NUCLEO32,而原来的64PIN 开发板则称之

为NUCLEO64,值得注意的是NUCLEO64 板并不是64 位MCU。另官方消息已泄露了还将有144PIN 的NUCLEO144,不过暂未面市。

今天测评的STM32F031K6 就是NUCLEO32 中的首批评估板。

 

开箱

用过NUCLEO 和DISCOVERY 板的用户都知道,对于NUCLEO 及DISCOVERY 板来说,就没有开箱之说,一块开发板,用个简单的透明塑料板包装就行了。不过塑料板一般都是定制的,刚好和开发板的形状吻合,起到保护开发板的作用。这样既节省了成本,又有效保护了开发板,不错的设计理念!

包装可谓精简之极,除了板,什么都没有,不过这也是惯例,在NUCLEO32 上也不例外。

甚至不需要打开包装,就一个感觉:小,太小了!

 

打开塑封包装之后,终于得见NUCLEO32 的真面目,感觉仍然是:小,真小!

左边是NUCLEO64,右边是NUCLEO32。环肥燕瘦,各具风骚,有么有!


拿在手上,体验一下。


真正的掌中舞,比飞燕还要飞燕!

 

认识开发板

小美人虽然小巧玲珑,然内涵依旧,正如流行语所言:主要看气质!且听我一一介绍。

USB

  • STM32F031K6开发板上使用的是MINI USB接口,见图。该USB接口主要有如下几方面的功能:
  • USB供电,连接到PC后,可以使用PC的USB接口为开发板供电,
  • 虚拟串口, 与板载的ST-LINK相连,可以实现与主机的串口通信功能
  • 大容量存储接口,可以连接大容量存储设备

这样看来,USB接口的功能确实非常丰富。一般情况下,我们使用USB VBUS来给开发板供电,除此之外,如果要实现开发板与PC通信,就不再需要单独的串口模块来连接开发板的串口了,非常方便。当然这个功能是由ST-LINK提供的。

ARDUINO NANO接口

传统的NUCLEO板,也就是现在所称的NUCLEO64板,其中一个宣传点就是和ARDUINO接口兼容,新的NUCLEO32则与ARDUINO NANO接口兼容。这一点当在情理之中。一张图诠释ARDUINO NANO接口。

MCU

开发板使用的MCU型号是STM32F031K6T6,其主要特性如下

  • (1)内核基于ARM® 32-bit Cortex®-M0 CPU,主频高达48 MHz。
  • (2)32 Kbytes片内Flash存储器。
  • (3)4 Kbytes片内SRAM存储器,带有硬件校验。
  • (4)电源电压:2.0-3.6 V。
  • (5)低功耗模式:睡眠、停机和待机。
  • (6)晶振可用4至32 MHz。
  • (7)5通道DMA控制器。
  • (8)1X12位,1.0us的ADC(最多10个通道)。
  • (9)多达9计时器。
  • (10)1个I2C接口,支持快速模式加(1Mbit/s)。
  • (11)1个USART,支持主同步SPI和调制解调器控制。
  • (12)1个SPI高达18Mbit/s。
  • (13)串行调试功能(SWD)。
  • (14)温度范围:-40-+105°C。

该MCU在F0家族中的地位如图所示

[!--empirenews.page--]

中规中矩的一颗芯。

复位按钮

说实话,我是第一次看到这样的按钮,所以找了很久才找到。复位按钮的作用当然是用来给系统复位的。功能很简单,就怕你找不到!

ST-LINK/V2-1

板载ST-LINK/V2-1接口似乎已成ST官方开发板的标配,以前的DISCOVERY板只支持ST-LINK/V2,二者的差别之一就是前者能使用虚拟串口功能,这样,在与PC连接的时候就可以直接通过UART与PC通信,不再需要专门的串口模块了。

ST-LINK使用的是一颗STM32F103C8T6的芯,这在所有的ST-LINK/V2中都是一样的。注意这颗芯在开发板的背面。

IDD

IDD只是用来给你测功耗的,别的也没有什么用途。如果需要测量开发板的电流,拔掉这个跳线帽,用万用表连接上去就可以测量开发板的电流,进而评估开发板的功耗。不过这个IDD跳线太过纤弱,插拔要小心,我就是在使用万用表测试电流的过程中将这个小东西扯下来了。

关于供电

开发板提供了几种供电机制,使用非常灵活。

USB供电

可以通过USB直接从PC取电。需要注意的是在USB开始枚举之前,只会给ST-LINK供电,此时只需要100MA的电流。在USB进行枚举时,它向PC询问是否能提供300MA的电流,如果PC能够提供的话,此时开发板开始上电,同时LED LD2点亮。如果PC端不能满足此要求,则只能使用外部供电。

外部供电

外部供电有三种方案,VIN、+5V或+3V3。

当使用VIN或+5V的供电方案时,仍然能使用ST-LINK。只不过在这种情况下,需要先给板子供电,然后再连接PC,此时因为是外部供电,枚举肯定能够成功。使用外部VIN供电时,电压范围可以是7-12V,此时最大可以提供约800MA的电流,而使用+5V供电时,则能达到最大约500MA的电流。

使用CN4上的+3V3给板子供电时,此时ST-LINK上没有电,所以不能用来调试。

将USB与PC连接后,开发板开始上电工作,此时LED LD3开始闪烁,频率约为0.5HZ

 

代码测试

好了,板子也认识了解得差不多了,跑个代码。

准备工作

STM32的NUCLEO系列除了支持传统的GCC工具链之外,还支持M-BED云端开发。M-BED是一个在线开发环境,因为基于云端开发,所以能很好的实现代码共享,全球的STM32开发者都位于同一个平台,共享相同的代码。

本文使用MDK做为开发工具。自MDK 5.X推出后,使用的是一种新的称之为PACK的机制,即每个系列的MCU都有自己对应的PACK,所以在正式体验之前,先要到这里下载好对应的PACK。

http://www.keil.com/dd2/packs/,最新的版本是1.4。

将下载好的PACK导入到MDK开发工具中。

下载F0系列的官方示例代码。ST官方的代码库现在称为HAL库,区别于传统的STD库。HAL库是ST官方主推的开发库,STD库已不再更新和维护。从这里下载最新的官方HAL库。

http://www.st.com/web/en/catalog/tools/PF260612

最新版本也是1.4。

ST官方推出一个图形化编程工具STM32CUBEMX,在上面的链接中下载,安装。需要注意的是STM32CUBEMX需要JAVA支持,所以还要下载JAVA运行时支持包。

不赘述。

如果还没有安装ST-LINK/V2-1的驱动,在上面的页面中还要下载ST-LINK的驱动安装。正常安装后设备管理器里应出现如下的驱动。


生成代码

运行STM32CUBEMX代码生成工具,创建一个新的工程,选择对应的MCU,如下图


接下来选择外设,这里只使用了LED,通过查看原理图,LD3连接在PB3上。所以直接在PB3引脚上右击,选择GPIO_OUTPUT。


接下来设置时钟树,由于NUCLEO32板没有提供外部晶振接口,所以就只能使用HSI了。通过前面的介绍,我们知道STM32F031K6最高支持48MHZ的频率。故作如下配置


然后就是生成代码了,点击生成工程按钮


在弹出的工程设置对话框中作相应的设置


这样一个工程文件就生成了。需要注意的是,STM32CUBEMX只会给你生成工程文件的框架,并不会给你添加程序逻辑,所以要想实现自己的功能,就需要往这个框架里添加实现代码。

添加逻辑

使用MDK打开刚才生成的工程,打开main.c文件,在while循环里添加如下语句

/* Infinite loop */[!--empirenews.page--]

/* USER CODE BEGIN WHILE */

while (1)

{

/* USER CODE END WHILE */

/* USER CODE BEGIN 3 */

HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_3);

HAL_Delay(500);

}

/* USER CODE END 3 */

然后编译,下载,一切正常的话,LED LD2应该开始闪烁了,只不过现在的频率变成了1HZ。

如果发现LD2没有闪烁,尝试按一下复位键,还记得在哪吧!

 

特别策划:HSI精度测试

NUCLEO32开发板为了减少体积,尽可能缩减一些不必要的设备。其中的外部晶振都被简化了,也就是说使用NUCLEO32开发板,只能使用芯片内置的HSI及LSI。

我们知道,内部晶振的精度是有限的,到底这个HSI的精度如何,让我们编写一段简单的代码,借助外部仪器来检查一下。

片内设备如定时器等,都是在晶振产生的时钟信号下工作,通过测试定时器定时的精度,进而来了解晶振产生的时钟信号的精度。本次测试利用了片内设备的TIM1及TIM2,其中TIM1产生一路PWM信号,周期为1MS,占空比为30%。TIM2产生一个定时中断信号,周期也为1MS,在中断例程中翻转GPIO,通过测试GPIO来了解时间信息。

测试使用的仪器为逻辑分析仪LA,该LA最高可达400M采样率,如下图。


下面是LA抓取的信号图


这是PWM波形信号,可以看到在1MS内,大约发生了1US的误差。对于精度要求不高的场合,这种情况是可以接受的。


这是TIM2产生的1MS中断信号,结果与上面的大致差不多,也有一定的误差。

为了对比,这里再来一张以前在STME32F407上使用外部晶振产生的信号图


上图产生的精确的30%占空比的PWM信号。

关于HSI,想必你心中已经有数!

 

结语

平心而论,NUCLEO32并不是什么新东西,相对于NUCLEO64来说,只不过是一个新的开发板,选择了一个新的MCU,做了一个更小巧的玩意儿。所以自然也引不起我们太多的激情。然而NUCLEO32的优势在于:它非常小巧,同时它还能完成我们所需要的工作,在很多场景下,我们可以直接将NUCLEO32开发板作为一个模块,嵌入到现有的系统中,从而增强系统的功能,实现我们自己额外的逻辑。就这一点而言,NUCLEO64则有点力不从心,毕竟NUCLEO64的体积和尺寸摆在那。还有一点令人担心的是,一旦NUCLEO144出来后,NUCLEO64差不多就是一个鸡肋,不过这一点现在说还为时过早,毕竟尺有所短,寸有所长。NUCLEO32系列还一个大的缺陷,那就是没有提供外部时钟,只能使用内部的HSI及LSI,在需要高精度时钟的场合下,这必然会是一块短板!

另外不得不说一下,那个IDD的跳线帽,也许是为了追求小体积,排针的距离大约是1.27mm的,且是横向焊接在开发板上,正准备来测试开发板电流的时候,虽然小心,还是把那个排针给搞掉了,得重新焊上去!

就板载的STM32F031K6而言,这是一个低功耗的产品,同时价格也便宜,只是牺牲了CORTEX系列中的TRACE功能,有点可惜!

再者,为了让板子更小巧,将NUCLEO64上提供的外部晶振接口都一并省略啦,如果你对时钟精度要求很高,得另外考虑别的方案!

掌中舞罢箫声绝,三十六宫秋夜长。

现实中,各种需求都会碰到,不会出现一个芯片独领风骚的情况。总而言之,就是环肥燕瘦,精彩纷呈!这一点在NUCLEO144出现后,会再掀高潮!

 

资源链接

STM32单片机中文官网

STM32单片机官方开发工具

STM32单片机参考设计

NUCLEO-F031K6官方介绍及资源:

http://www.st.com/web/catalog/tools/FM116/CL1620/SC959/SS1532/LN1847/PF262498?s_searchtype=partnumber

该页面包含如下内容:

  • 1. NUCLEO-F031K6简介
  • 2. 用户手册,开发板手册
  • 3. 官方开发原理图
  • 4. ST-LINK驱动程序
  • 5. STM32CubeF0 HAL库

STM32CubeMX工具及相关HAL库:

http://www.st.com/web/en/catalog/tools/PF259242

测试工程及代码:

http://pan.baidu.com/s/1gevhVyV PASS:xxnf

M-BED FOR NUCLEO-F031K6:

https://developer.mbed.org/platforms/ST-Nucleo-F031K6/

STM32F031K5 MCU官方介绍及资源:

http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1574/LN7/PF259773?s_searchtype=partnumber

内含技术文档,应用笔记等丰富开发资源

 

——————本文版权归属21ic,未经许可请勿转载——————

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭