打印

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

[复制链接]
1781|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
TI LP_MSPM0L1306_LaunchPad 开发板测评
---熟悉的配方,熟悉的味道
一、前言
国际大厂TI在MCU领域也算是翘楚,当年的MSP430系列单片机,因为性能强劲,资源丰富,功耗极低,开发资料丰富等,尤其是其当年的超低功耗这一性能,几乎很少能够匹敌,从而在mcu领域独占鳌头,迅速占领低功耗市场,特别是在水气热这三表领域,凭借其独特的优势,所向披靡。近来TI推出M0 系列的MCU已经有一段时间了,一直没有机会尝试,借此TI和21ic组织的机会,很幸运能拿到手做一次上手评测。
二、开箱
拿到手之后的第一感觉是:熟悉的味道,熟悉的配方。
TI经典的LaunchPad小火箭加上经典的红黑白配色包装盒,以及经典的TI公司**。仿佛又回到了多年前使用TI的各种RF芯片评估板。

打开之后是一张简单的介绍卡片快速指南。

接下来则还是那个经典的静电袋包装的LaunchPad评估版了。

板子的设计,布局,比如板载资源,对外接口(USB、按钮、LED,外接排针接口)等等,都是经典的典型设计。板子做工还是一贯优秀。


板载资源包括:
具有外部编程选项的板载 XDS110 调试探针
可用于超低功耗调试的 EnergyTrace 技术
用于用户交互的 2 个按钮、1 个 LED 和 1 个 RGB LED
热敏电阻电路
光传感器电路
ADC 输入的 RC 滤波器(默认未安装)
支持使用 GPIO 和 XDS110 调用 BSL
反向通道 UART,通过 USB 连接到 PC
下图为板载资源示意图

如下则为其各模块框图

接下来就是给板子上电,看一下TI给我们的这个LaunchPad烧写了什么样的出厂代码。
果不其然,就是经典中之经典的电灯程序了,右下角的LED1周期性亮灭。

同时在电脑的硬件管理器中也能看到识别出来的XDS100的设备,其中Application/User UART就是接到MSP430M0芯片上的串口,可以通过这个串口发送数据给PC。

板载主芯片为MSPM0L1306,这是一颗具有 64KB 闪存、4KB SRAM、12 位 ADC、比较器和 OPA 的 32MHz Arm® Cortex®-M0+ MCU,其主要特性如下:


从芯片资源上看,其实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"

下载完成之后暗战正常的软件安装即可,在安装过程中选择安装目录时,最好选择默认的C盘根目录,安装以往CC2640/42 等经验来看看,另外选择安装目录有可能造成xdctool之类的以来工具的使用问题,从而在编译等过程中容易出错。

安装之后的文件结构如下

打开docs可以查看其提供的参考文档,其中就特地就有提供了中文版本工选择,也可见TI近年对中国市场的重视程度了。


而在example中提供了nortos和rtos供选择,相对来说nortos中的例程会更加全面丰富一些。不过rtos大部分可以一直过去。

例程还是非常丰富的,甚至包括了一些典型应用的例子,如血压仪、烟感、热释电检测等等。很多都能上手即用,给大大的点赞。

SDK本身的架构非常的强大,从下图中可以看的出来,TI还是用了心想好好做一把的。

开发工具选择和安装
开发工具上目前支持四种方式,他们分别是
CCS Theia、 CCS、 IAR、Keil
因为我的电脑已经安装keil,因此沿用这个ide进行开发。另外,为了后续的out_of_box的程序运行,还安装了ccs,CCS的安装比较简单,主要是在安装时,勾选需要安装的器件组件,以获得软件sdk等的支持,因之前有一些CC26xx以及毫米波雷达的项目已经安装,本初不再赘述,只描述keil相关的内容。这里还是特别说一下,使用CCS开发已经非常方便,界面好,编译调试信息丰富,也没有卡顿,获取demo code之类的也非常简单,算是开发利器,十分推荐

Keil的开发需要安装MSP430M0的pack,在keil中可以直接进行操作


但因为种种原因,经常会造成下载pack文件非常慢或者干脆超时失败的情况,所以可以直接前往keil官网下载,对应msp430m0的链接为
HYPERLINK "https://www.keil.arm.com/packs/mspm0l_dfp-texasinstruments/boards/"

安装成功就可以看到对一个的支持psck了。

开始第一个程序
接下来就可以打开我们的经典电灯demo code了,具体的工程路径如下
C:\ti\mspm0_sdk_1_10_01_05\examples\nortos\LP_MSPM0L1306\driverlib\gpio_toggle_output_hiz
先通过Project工具下的Open Project打开上述路径的keil文件加下的工程

然后编译,成功之后就可以准备下载执行 了

此时,需要到如下链接地址下载并按爪个
HYPERLINK "https://software-dl.ti.com/ccs/esd/documents/xdsdebugprobes/emu_xds_software_package_download.html"
安装时,同样也将其安装于默认的C盘的TI目录下

然后在工程配置中,选择正确的仿真器

这里一定要注意时CMSIS DAP Debugger,并不是最有那个TI XDS Debugger

同时注意选择sw方式,并注意勾选右下角的Download to Flash,否则复位不运行

下载成功之后,运行。

发现板子上的LED1灯不亮。这是遇到的第一个问题了……
首先打开工程下的README文件

可以看到翻转的IO是PA11

这从我们的程序代码上也能看的出来

而硬件上,从原理图看,是PA0引脚

因此进行如下更改

重新编译下载即可运行了。灯开始1Hz亮灭闪烁。
从代码上看,主函数主要做了一个初始化,包括时钟和GPIO,然后就在主循环中进行延时很取反IO操作。


四、开发评估
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灯的亮灭。

从如下的源代码中可以看出来,其初始化了按钮GPIO为边沿中断,并在判断其电平为高时熄灭LED,电平为低时亮起LED。



温度和光照
板子硬件上,板载了一个RGB的LED,温度热敏电阻以及一个光敏电阻,分别可以通过GPIO控制LED,以及ADC采样热敏和光敏电阻。官方其实也做得非常完善了,提供了一个叫 out_of_box 的例程,该例程可以把板子上的外设基本都跑通,下面我们来看下具体的内容。
首先找到demo程序所在的位置,后续可能会用到。

打开ccs,在Resource Explorer中找到对应的demo

点开out_of_box之后点击右侧的三个点,并选择Import to CCS IDE

此时会打开REDME,点击here超链接

打开浏览器,这个demo是需要TI的TICloudAgent Bridge支持的,因此需要安装,

因为一些原因,此处最好选择firefox来安装扩展插件

安装过程不再赘述,完成之后打开链接如下,点击ok即可


打开File并点击Load Program,根据提示操作点击OK即可烧写对应的out_of_box的固件到LaunchPad中了。



板载红色LED1开始闪烁表明烧写成功。
然后打开Options并点击Serial Port Settings

选择正确串口端口号以及波特率

此时最下角就会显示已连接硬件

接下来即可通过S2按钮切换功能或者点击对应选项卡左上角的Enable,并在Blink LED、Light Sensor和Thermistor之间进行演示

Blink LED,还可以调整闪烁频率


Light Sensor,可以看到根据光照亮度的变化,其ADC采样值的变化

Thermistor

程序代码的结构也比较简洁,跟demo应用相关的主要是blink_led、lightsensor以及thermistor三个部分。

main函数中主要是初始化系统和gui处理相关部分,然后进入状态机,状态机可根据s2按钮和串口协议进行切换

状态机在IDLE时,只翻转LED1
状态机在BLINK_LED_MODE时,即进行0.5秒翻转一次绿色LED,从初始化中可以看出,其开启了一个定时器,并在定时中断中完成翻转操作


在该状态机的主任务中,判断状态是否发生改变并发送串口协议以更新状态

状态机在LIGHTSENSOR_MODE时,同样初始化开启了定时器,以周期性检测light sensor的ADC,并初始化了lightsensor相关的硬件包括adc等

然后在状态机的主任务中判断是否获取光照ADC值,并通过串口发送协议数据以更新数据

状态机在THERMISTOR_MODEE时,同样初始化开启了定时器,以周期性检测thermistor的ADC,并初始化了lightsensor相关的硬件包括adc等

在状态机的主任务中,判断温度检测值状态,并通过串口发送协议数据以更新数据,同时还可以看到,其做了一个温度值报警功能,即当温度大于一定值则亮红灯警示,低于一定值则亮绿灯警示。

同时还提供了热敏电阻的温度软件计算方法

五、总结
还是熟悉的配方熟悉的味道,体验下来,发现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市场还是大有 ...

生态确实算是一大优势,尤其是资料和及其丰富的参考设计

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

113

帖子

0

粉丝