LP-MSPM0L1306开发板试用体验---熟悉的配方,熟悉的味道

[复制链接]
2770|2
 楼主| Tristan_C 发表于 2023-10-9 09:13 | 显示全部楼层 |阅读模式
TI LP_MSPM0L1306_LaunchPad 开发板测评
---熟悉的配方,熟悉的味道
一、前言
国际大厂TI在MCU领域也算是翘楚,当年的MSP430系列单片机,因为性能强劲,资源丰富,功耗极低,开发资料丰富等,尤其是其当年的超低功耗这一性能,几乎很少能够匹敌,从而在mcu领域独占鳌头,迅速占领低功耗市场,特别是在水气热这三表领域,凭借其独特的优势,所向披靡。近来TI推出M0 系列的MCU已经有一段时间了,一直没有机会尝试,借此TI和21ic组织的机会,很幸运能拿到手做一次上手评测。
二、开箱
拿到手之后的第一感觉是:熟悉的味道,熟悉的配方。
TI经典的LaunchPad小火箭加上经典的红黑白配色包装盒,以及经典的TI公司**。仿佛又回到了多年前使用TI的各种RF芯片评估板。
217f01bda591ab30a72decc5e528f762
打开之后是一张简单的介绍卡片快速指南。
dd0bbeaae298fae02330abb2886642f8
接下来则还是那个经典的静电袋包装的LaunchPad评估版了。
8865d25a215fb6b782fb0e01633c21b9
板子的设计,布局,比如板载资源,对外接口(USB、按钮、LED,外接排针接口)等等,都是经典的典型设计。板子做工还是一贯优秀。
4ee1f289f3dc585dab296045903214af
2b2ae1a2546c9bee0c82dc38f01479ee
板载资源包括:
具有外部编程选项的板载 XDS110 调试探针
可用于超低功耗调试的 EnergyTrace 技术
用于用户交互的 2 个按钮、1 个 LED 和 1 个 RGB LED
热敏电阻电路
光传感器电路
ADC 输入的 RC 滤波器(默认未安装)
支持使用 GPIO 和 XDS110 调用 BSL
反向通道 UART,通过 USB 连接到 PC
下图为板载资源示意图
3e1e7c51abfa18a4bb092455d0b20299
如下则为其各模块框图
da4bf2a2a101f8aff3fef400d2ed1420
接下来就是给板子上电,看一下TI给我们的这个LaunchPad烧写了什么样的出厂代码。
果不其然,就是经典中之经典的电灯程序了,右下角的LED1周期性亮灭。
c6c40d60e5c7030527ebc608cf5a74c3
同时在电脑的硬件管理器中也能看到识别出来的XDS100的设备,其中Application/User UART就是接到MSP430M0芯片上的串口,可以通过这个串口发送数据给PC。
0d99652ea5e34541e8480d51b249e361
板载主芯片为MSPM0L1306,这是一颗具有 64KB 闪存、4KB SRAM、12 位 ADC、比较器和 OPA 的 32MHz Arm® Cortex®-M0+ MCU,其主要特性如下:
271d8b40befbabe7dc380301d5b2e644
b9b0ec96e6dc416d24ac42de3d5e38de
从芯片资源上看,其实TI还是给足了诚意的。从封装上还可以看到甚至还有VSSOP,这对于一些生产工艺要求不是那么高的产品用户来讲还是很友好的。
主要应用领域有如下几大类
• 电池充电和管理
• 电源和电力输送
• 个人电子产品
• 楼宇安防与防火安全
• 联网外设和打印机
• 电网基础设施
• 智能抄表
• 通信模块
• 医疗和保健
• 照明
并且TI还有非常丰富的产品参考设计,比如点击驱动类的,血氧仪参考设计,烟雾探测器,3D霍尔传感器等等。
另外,TI还提供非常完善的开发文档,可以在官网的芯片主页和开发板的主页找到,基本上从评估,到开发,到生产需要的问题都能在上面找到答案,这也是TI的一个巨大优势。
HYPERLINK "https://www.ti.com.cn/product/cn/MSPM0L1306#product-details"
HYPERLINK "https://www.ti.com.cn/tool/cn/LP-MSPM0L1306?keyMatch=LP-MSPM0L1306%20LAUNCHPAD#overview"
三、环境搭建
SDK安装
官方SDK可以从如下链接下载
HYPERLINK "https://www.ti.com/tool/MSPM0-SDK"
075c3cb89e93f2f46016e0924fe43546
下载完成之后暗战正常的软件安装即可,在安装过程中选择安装目录时,最好选择默认的C盘根目录,安装以往CC2640/42 等经验来看看,另外选择安装目录有可能造成xdctool之类的以来工具的使用问题,从而在编译等过程中容易出错。
336b89c007c576ce3ae12e6e197d3d9c
安装之后的文件结构如下
5af7f9613fda21393054175779af2785
打开docs可以查看其提供的参考文档,其中就特地就有提供了中文版本工选择,也可见TI近年对中国市场的重视程度了。
8a0a808570172a9149690e18f01ea5e2
4661c68bea26cbe9e7aea0b08db02f5d
而在example中提供了nortos和rtos供选择,相对来说nortos中的例程会更加全面丰富一些。不过rtos大部分可以一直过去。
324d7a53ef75de4f5d319e7f180da6fc
例程还是非常丰富的,甚至包括了一些典型应用的例子,如血压仪、烟感、热释电检测等等。很多都能上手即用,给大大的点赞。
8f295517225e031f776de33e5ce36cd1
SDK本身的架构非常的强大,从下图中可以看的出来,TI还是用了心想好好做一把的。
93aa6f502a0356738f38eb9cbb15aed6
开发工具选择和安装
开发工具上目前支持四种方式,他们分别是
CCS Theia、 CCS、 IAR、Keil
因为我的电脑已经安装keil,因此沿用这个ide进行开发。另外,为了后续的out_of_box的程序运行,还安装了ccs,CCS的安装比较简单,主要是在安装时,勾选需要安装的器件组件,以获得软件sdk等的支持,因之前有一些CC26xx以及毫米波雷达的项目已经安装,本初不再赘述,只描述keil相关的内容。这里还是特别说一下,使用CCS开发已经非常方便,界面好,编译调试信息丰富,也没有卡顿,获取demo code之类的也非常简单,算是开发利器,十分推荐
f549307345ec80848b47fbf6ff5cf465
Keil的开发需要安装MSP430M0的pack,在keil中可以直接进行操作
b573314f1ce10f7d22464f2f4c55bafb
5c3dd272d53d5dbd2f259717e0d0afe6
但因为种种原因,经常会造成下载pack文件非常慢或者干脆超时失败的情况,所以可以直接前往keil官网下载,对应msp430m0的链接为
HYPERLINK "https://www.keil.arm.com/packs/mspm0l_dfp-texasinstruments/boards/"
c7ce16a76e15f70edbbe4b21d6612c37
安装成功就可以看到对一个的支持psck了。
8ac7f4b1e60264ace1e1d198af1b8a74
开始第一个程序
接下来就可以打开我们的经典电灯demo code了,具体的工程路径如下
C:\ti\mspm0_sdk_1_10_01_05\examples\nortos\LP_MSPM0L1306\driverlib\gpio_toggle_output_hiz
先通过Project工具下的Open Project打开上述路径的keil文件加下的工程
f7ecc6dd800bd1dda2456cc77ac4e527
然后编译,成功之后就可以准备下载执行 了
b22b9be107ed3333474051a6b6c0b465
此时,需要到如下链接地址下载并按爪个
HYPERLINK "https://software-dl.ti.com/ccs/esd/documents/xdsdebugprobes/emu_xds_software_package_download.html"
安装时,同样也将其安装于默认的C盘的TI目录下
39bac14b04dc181a64d6547d9acfeb9f
然后在工程配置中,选择正确的仿真器
32654e8a56b4699aa6ea65c7abfa1d35
这里一定要注意时CMSIS DAP Debugger,并不是最有那个TI XDS Debugger
e89ec512913cf6765c715cf8c3cd6231
同时注意选择sw方式,并注意勾选右下角的Download to Flash,否则复位不运行
cd29085fba0e72df21162d89e19f546f
下载成功之后,运行。
75c0ac0cc6dd0c9c14793a9f516db0d5
发现板子上的LED1灯不亮。这是遇到的第一个问题了……
首先打开工程下的README文件
e0364f4d2582c31a6c7e3ffec1cd116c
可以看到翻转的IO是PA11
8205518b6a4b922f5562fbbb35daa3ab
这从我们的程序代码上也能看的出来
ab65cf3b95c77d3e85d895a94819bfe3
而硬件上,从原理图看,是PA0引脚
6a04040b5e0eeb0ac5a4d8c8e8d67b59
因此进行如下更改
5ccf0e002b03432883c2a91a784ee254
重新编译下载即可运行了。灯开始1Hz亮灭闪烁。
从代码上看,主函数主要做了一个初始化,包括时钟和GPIO,然后就在主循环中进行延时很取反IO操作。
2f7abc2084436e64804e0d53eab0b666
091283687561c6f5906998cef6478347
四、开发评估
GPIO
在前面开发环境的搭建中,已经进行了GPIO的输出,已控制LED的周期性翻转,本次就做一个另一个GPIO功能,即按键输入。翻看demo程序,发现也已经有类似的了,也就是如下路径的input capture代码。
C:\ti\mspm0_sdk_1_10_01_05\examples\nortos\LP_MSPM0L1306\driverlib\gpio_input_capture\keil
打开其readme文件,可以看到其功能就是通过PA14(按钮)作为输入,并以中断方式检测,而PA0作为输出,控制LED灯的亮灭。
5d17493ee1482c5fb896161a626db018
从如下的源代码中可以看出来,其初始化了按钮GPIO为边沿中断,并在判断其电平为高时熄灭LED,电平为低时亮起LED。
f63e10508be0376878230cb5b52a7c81
168af0b45008773b7d101298a33343bd
e1a55b407aa25a9b7f7958fc11522dc7 919bcea5de370828d2a792dcafb71f0d
温度和光照
板子硬件上,板载了一个RGB的LED,温度热敏电阻以及一个光敏电阻,分别可以通过GPIO控制LED,以及ADC采样热敏和光敏电阻。官方其实也做得非常完善了,提供了一个叫 out_of_box 的例程,该例程可以把板子上的外设基本都跑通,下面我们来看下具体的内容。
首先找到demo程序所在的位置,后续可能会用到。
59b485eee260a170fb0ff24e461e771a
打开ccs,在Resource Explorer中找到对应的demo
840a282aa305d4efd62e7b4e82140c36
点开out_of_box之后点击右侧的三个点,并选择Import to CCS IDE
f7cbd2df61524981d4d4e3a3bcf7114f
此时会打开REDME,点击here超链接
9c329072ffb6f1f7cfcf16a258ce835d
打开浏览器,这个demo是需要TI的TICloudAgent Bridge支持的,因此需要安装,
2b0045a8381218561e0e8401f9b2554a
因为一些原因,此处最好选择firefox来安装扩展插件
edd54ceaaf48ab32ee432341b597dad8
安装过程不再赘述,完成之后打开链接如下,点击ok即可
c660c36a0c28be3c00070b1a3edf874e
9968b8821a796b57ae99d38a0eff4747
打开File并点击Load Program,根据提示操作点击OK即可烧写对应的out_of_box的固件到LaunchPad中了。
2a8814558ef9ec34d8b9ccb68bd4c480
b8555abc6a6cbf971e090679277f919c
8495246ff495db4cd3cb66aab7557d7f
板载红色LED1开始闪烁表明烧写成功。
然后打开Options并点击Serial Port Settings
1de83392fe569f8bc00baafb26f08acc
选择正确串口端口号以及波特率
951e79456b6638157dc3ef91cdee1c79
此时最下角就会显示已连接硬件
b629788b4e27e790daf0dc77a45f23f0
接下来即可通过S2按钮切换功能或者点击对应选项卡左上角的Enable,并在Blink LED、Light Sensor和Thermistor之间进行演示
0ca99ae588c2fe6faa3282bb6f91128c
Blink LED,还可以调整闪烁频率
fd1699757affc4de18289886ad32f9c9
2f3d0f963d63b52e62dc8084d2317f3b
Light Sensor,可以看到根据光照亮度的变化,其ADC采样值的变化
c1b018050afc903c5295ad085525e379
Thermistor
bb1be0a62cb8946a8550550de66a99a0
程序代码的结构也比较简洁,跟demo应用相关的主要是blink_led、lightsensor以及thermistor三个部分。
b41c81dfe7599d95df335b440f79f58c
main函数中主要是初始化系统和gui处理相关部分,然后进入状态机,状态机可根据s2按钮和串口协议进行切换
8a12ee5fedc2ad5e8ab2aa8de0399f8d
状态机在IDLE时,只翻转LED1
状态机在BLINK_LED_MODE时,即进行0.5秒翻转一次绿色LED,从初始化中可以看出,其开启了一个定时器,并在定时中断中完成翻转操作
1fb93b2ebca6cac3e708911e7b4fd14c
60184baf1bce47abdda0ed8eef361b40
在该状态机的主任务中,判断状态是否发生改变并发送串口协议以更新状态
ea934f3b10eb40d872f8117ee4b72f30
状态机在LIGHTSENSOR_MODE时,同样初始化开启了定时器,以周期性检测light sensor的ADC,并初始化了lightsensor相关的硬件包括adc等
f4f9e93fea3d632a8bc210126367cb75
然后在状态机的主任务中判断是否获取光照ADC值,并通过串口发送协议数据以更新数据
86039c22bd4f9e33782c467bd973e3c7
状态机在THERMISTOR_MODEE时,同样初始化开启了定时器,以周期性检测thermistor的ADC,并初始化了lightsensor相关的硬件包括adc等
3b37e156b42d8466a08d86a0a0250c10
在状态机的主任务中,判断温度检测值状态,并通过串口发送协议数据以更新数据,同时还可以看到,其做了一个温度值报警功能,即当温度大于一定值则亮红灯警示,低于一定值则亮绿灯警示。
cc2bc75ec81b96fdba99acae11885a16
同时还提供了热敏电阻的温度软件计算方法
73cc6a6e13396305f9d89534567c49ab
五、总结
还是熟悉的配方熟悉的味道,体验下来,发现TI还是在这个系列的产品上用了心的,从芯片的设计,到配套SDK、工具的开发,都非常完善和强大,限于文章篇幅和时间精力,还有很多暂时还未完全体验,比如其非常好用的SysConfig 工具,可以极大简化开发时对芯片底层的设计和处理,一目了然,待后续再行挖掘TI这一精心推出的产品。从早年间评估CC2640,CC2642,到后面的CC1350,等等一众RF芯片。现如今普通低端MCU已经杀成红海,不仅国际大厂有众多的芯片推出,国产的低端单片机也非常多,尤其是在arm开放M0内核的版权之后,且都想主打性价比。TI在此时推出M0系列,自有打算凭借其一贯的雄厚技术储备(包括模拟,数字处理,RF等等),夺回低端MCU应用的市场,并且TI还提供了非常丰富的参考设计,这点说实话,TI在各芯片厂家里面做得是非常好的,这也是TI一贯以来非常好的作风,也是一项非常大的优势,**这次TI也能利用其特有的优势一展宏图,续其辉煌。

xyz549040622 发表于 2023-10-12 21:56 | 显示全部楼层
感谢楼主的评测,我相信只要TI把中文文档做好,凭借MSPM0L的性能和TI生态链的支持,在低端MCU市场还是大有可为的。
 楼主| Tristan_C 发表于 2023-10-13 08:31 | 显示全部楼层
本帖最后由 Tristan_C 于 2023-10-13 08:35 编辑
xyz549040622 发表于 2023-10-12 21:56
感谢楼主的评测,我相信只要TI把中文文档做好,凭借MSPM0L的性能和TI生态链的支持,在低端MCU市场还是大有 ...

生态确实算是一大优势,尤其是资料和及其丰富的参考设计
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

117

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部