|
【深度评测STM32 Nucleo】+ 开发经验和阶段总结
[复制链接]
本帖最后由 fyaocn 于 2014-12-15 12:25 编辑
因为有其他工作,所以测试断断续续,所以中间的发帖也很简单,就是一个展示。不过在这个过程中还是收获很大的,给分享一下,并请指出不正确的地方。
1. BLE芯片PK
其实这款BLUENRG其实是非常让人期待的,在刚出新品时就希望能测试和适用,联系了几家销售代理都不熟悉这个产品,后来答复目前仅在美国国外配货,还没轮到中国,郁闷...。这次活动能直接拿到测试板确实喜出望外。同级别的对手不是很多,CSR,TI,Nordic也就这么几家SoC的BLE芯片。从参数看BLUENRG是其中功耗指标最低的,这在BLE中是非常重要的指标,TI的CC254x系列先发但成为大家的目标,都要比过@CC254x才拿出手。CC254x是8位C51内核,比M0的32位差了辈分。其他的仅有资料没有测试,不太熟悉。
不过深入评测并研读手册后才发现,这个芯片略有遗憾的是BLUENRG是NetProcessor,也就是如果需要用户定制程序还需要一个MCU来实现控制的功能,这在本次的套版中体现出来,开发都是基于Nucleotide的STM32L053进行的,不能直接对BLUENRG动手,需要通过Nucleo的SPI功能和BLUENRG通信。有关的BLE协议等都固化在BLUENRG中了。不过我分析还是可以用ST-link工具直接写BLUENRG的, 可惜没有这样的固件,而且如果写保护还好,要是一下个刷大发了,就不好刷回来了,所以没敢试试。
这样的优点是降低了开发的难度,SPI的标准通信手段还是很容易做到的,而且BLE的工作频率要求极低,很容易满足的。更何况开放了众多的库,更是可以迅速上手。不过这样带来另一个问题就是功耗需要考虑MCU的了,这样和CC254x是要用2个芯片的功耗之和相比才略显公平。这样两个芯片是个有千秋乐。
2. STM开发平台
首先在开发的过程中,我首先遇到的问题往往是平台搭建,如果程序不兼容,或组件没有下载够,那么搞明白的过程还是比较郁闷的。STMNucleotide已经是非常的友好了,而且提供的开发工具丰富得有些眼花。不过都测试过以后就能够理解这些和STM的开发层次有关系,分为level0,level1,level2。其中level0直接对硬件开发,level1可以用STM提供的HAL等库来支持,level2就更复杂一些,需要启用 middleware。(详见有关文档,就不展开了)因为内存毕竟有限64k,所以这三种方法都可以胜任,综合差别不太大,其中middleware还有第三方提供的,学习和使用就还要再多熟悉熟悉,如MBED的middleware就和STM提供的不同,还可以直接从第三方下载,如RTOS,uCOS等。这样的话这个精简的硬件平台后的支持软件体系相当庞大,建议只研究和采用厂家的就好了。举例,MDK平台需要支持硬件的softPack和支持组件的legacy,否则编译错误。 需要对比不同的开发方式:CubeMX直接生成的是半成品,给不熟悉硬件的直接提供一个开发框架;IAR,Keil等是全能型的开发手段,可以在各个level开发;MBED是傻瓜式,用鼠标点点就可以快速生成.bin文件,拷入内存就可以跑起来,配置好接口就可以直接用printf()通信。STM对MBED的支持非常全面,nucleo是不多的可以直接使用的板子,容易得孩子都可以来用,这可能也是一个方向,降低难度,提高效率,而且有跨厂家跨平台的通用性。
3.后续的开发
目前的测试过程是比较理想的,目前能测试的均得到了理想的结果。后续两个方向,跨平台通信和功能扩展。
跨平台就是使BLUENRG和TICC2541基于BLE通信,跨功能就是通过Nucleo的GPIO来采集传感器的信号,实现更丰富的功能。
4.结论
STM的开发平台完善,不仅有通用的工具还有GUI,ST-Link Utility等针对性的厂家工具,还有MBED,这个过程是很有趣的。
BLUENRG + Nucleo 功能强大,从性能和扩展性上都非常独特,包括我不太熟悉anduio的开发平台,都给这个平台提供了无限的可能。
|
赞赏
-
2
查看全部赞赏
-
|