【MSPM0学习笔记】01-资料来源与环境配置

前言

  近期准备电赛在用TI的MSPM0G3507这款单片机,这个型号的性能相对强一些,而且片上模拟外设很丰富,用来打电赛挺合适的。但是M0系列单片机还很新,网上相关教程资料都很少,我在前几个月刚上手的时候遇到了挺多问题,基本只能在官网给的资料里找解决方案。于是就产生了写学习笔记的想法,暑假这阵打算把M0的常用功能都调试一下,然后记录下实现过程,随缘更新。

  这篇文章简单写下我学习M0单片机的资料来源和环境配置。

MSPM0 VS STM32

  去年电赛和备赛时用过MSP430和STM32,今年蓝桥杯用的是STM32,所以我其实对于STM32更加熟悉一些,也很喜欢STM32的CubeIDE和CubeMX工具。现在用MSPM0主要是因为电赛是TI赞助的,会指定一题必须用TI的单片机,所以老师建议我用它备赛,正好也是个不错的学习机会。用了一阵,简单谈下我的看法吧。

  • 相对于MSP430系列,MSPM0系列的进步很大,不仅芯片价格更低,性能更强,而且在开发上有了System Configuration这个图形化工具来生成初始化代码,极大地方便了开发;
  • 而相对于STM32单片机,MSPM0的优势并不明显:
    • 对于开发环境来说,TI这边的System Configuration工具对标ST的CubeMX工具,实际用下来倒是问题不大,熟悉一阵即可上手,两者的风格以及对细节的处理有所不同。我更喜欢CubeMX的带引脚功能标注的芯片示意图,对于引脚分配和电路设计很有利;同时我更喜欢System Config的可展开的详细说明;
    • 对于硬件来说,MSPM0系列官方对标的是STM32G0系列,但就实际芯片价格来看,MSPM0系列应该对标的其实是STM32G4系列。MSPM0和STM32G4芯片价格相当,但前者是Cortex-M0+内核,后者却是Cortex-M4内核,性能不是一个等级的,而且STM32G4有更高的主频和更丰富的外设;
    • 对于程序开发来说,STM32有HAL库和LL库,HAL库封装程度较高,很易于上手;MSPM0的非RTOS例程给的是基于DriverLib的程序,类似于STM32的LL库,是对寄存器操作的初步封装,对初学者相对不友好。不过也各有利弊,之前就遇到了STM32 HAL库的SPI通信速度太慢的问题,发现是HAL库做了太多的参数检查,直接操作寄存器后快了很多;MSPM0这边的多数库函数就短短几句内容,不用担心它影响速度。

资料来源

  M0系列作为TI的单片机,官方资料还是很完善的,在TI官网搜索对应型号即可找到。

图1 TI官网搜索MSPM0G3507

图1 TI官网搜索MSPM0G3507

  这里搜索MSPM0G3507,芯片页面点进去能看到数据手册、参考手册等资料的下载。下面硬件开发部分有官方的评估板LP-MSPM0G3507的资料。软件开发部分有MSPM0-SDK,SDK里面有官方的测试例程,对于我们学习M0单片机的使用十分重要,不过这个SDK不用单独下载,安装好CCS之后可以在CCS中查看。另外重要的就是CCSTUDIO Code Composer Studio 集成式开发环境 (IDE)。

数据手册

  M0芯片数据手册主要介绍了M0单片机的硬件特性,在设计开发板的时候需要仔细阅读。对于使用来说,我们主要需要阅读的是数据手册的极限参数(绝对额定最大值)和引脚功能部分,前者能防止我们烧坏单片机,后者对于我们分配引脚功能有必要。

图2 MSPM0G3507数据手册

图2 MSPM0G3507数据手册

参考手册

  M0的参考手册对于单片机程序开发很重要,这里详细介绍了M0单片机内部的模块和外设,以及它们的使用方法,这种手册的篇幅都很长,但一般没必要通篇阅读,用到哪个功能,就去这个手册里读一遍相关内容即可。

图3 MSPM0G3507参考手册

图3 MSPM0G3507参考手册

  TI的中文手册一般翻译得都还不错,但之前用MSP430的时候发现过中文手册的问题,怀疑手册翻译有问题的时候,还得以英文手册为准。

环境配置

  下面来介绍下我开发M0单片机的环境配置,这里我并不会详细说明软件安装和使用等问题(毕竟我也懒得重装截图),但会记录一下重要的以及我遇到问题多的地方。

开发板硬件

  我后续开发会使用MSPM0G3507这款芯片,开发板是我和老师为电赛设计的一款开发板,用了TI标志性的红色阻焊,所以取名叫“番茄派”。工程分享在了嘉立创开源平台,有兴趣可以看看:番茄派MSPM0G3507开发板

图4 番茄派开发板照片

图4 番茄派开发板照片

  目前番茄派开发板已经小批量生产了一些用于我们学院的电赛培训,板上除了MSPM0G3507最小系统,还有USB转串口、RGB LED、串口屏接口、按钮和旋转编码器等模块。现在已经用了两个多月,感觉挺棒的~

开发环境

CCS还是CCS-Theia?

  去年我开发MSP430单片机的时候用的是CCS,今年发现TI新出了个CCS-Theia。CCS-Theia基于Theia,界面跟VS Code挺像的,乍一看比基于Eclipse的CCS简洁舒服很多,但用了几天我发现它的一些功能有些问题,尤其是DriverLib代码的函数定义跳转不了,所以还是用回了传统的CCS。

图5 CCS与CCS-Theia

图5 CCS与CCS-Theia

CCS

  CCS是免费的IDE,TI官网就能下载,离线安装包和在线安装包均可,安装也很简单,不再赘述。之前我把CCS调成深色风格了,代码高亮也手动调了一遍,看起来还是挺好看的。感觉我对Eclipse框架的IDE最适应不了的是代码补全要按快捷键才能显示,还是更适应VS Code那种边输入边显示补全列表的形式,所以我后面敲工程的主要代码的时候,更喜欢拿VS Code打开工程编辑。目前我用的CCS版本是12.7.0。

图6 CCS界面

图6 CCS界面
CCS中找不到单片机型号

  如果你像我这样安过旧版本的CCS,那么可能在新建工程的时候找不到M0系列的单片机,这时去官网下载安装文件,在原路径重新安装CCS即可,安装程序会提示选择单片机型号,将M0选中然后继续安装,即可添加M0系列单片机。

图7 CCS添加单片机型号

图7 CCS添加单片机型号
添加或更新SDK

  若CCS中没有M0的SDK,或者SDK版本不正确,可以在CCS的Resource Explorer中下载或更改。

图8 CCS管理SDK

图8 CCS管理SDK

  可以看到这里目前最新的SDK是2.01.00.03,但我并没有这个版本,这里可以直接下载,点击下载后,任务会在后台启动,好像没有任何进度提示一类的东西,一般等待1分钟左右即可安装好。如果需要切换到其它版本,点开Manage Versions选择即可。

图9 CCS选择SDK版本

图9 CCS选择SDK版本

  后续我应该会使用2.01.00.03这个版本的SDK。CCS工程对于SDK版本要求似乎挺严格的,如果你拿到别人的工程导入没法跑,很可能是SDK版本不一致导致的。

VS Code

  前面说过对于代码编写,我习惯用VS Code,为了让VS Code更适合编辑M0单片机的工程,除了安装C/C++一套扩展外,还可以改改其它设置。

  CCS不像STM32CubeIDE那样能自动把驱动库中需要的文件拷贝到工程中(至少我还没发现怎么操作),而是会默认包含SDK的路径,所以用VS Code直接打开CCS的工程,SDK中的函数会因找不到而报错,可以将SDK的路径写在VS Code的包含路径中,并且根据单片机型号添加宏定义,即可让VS Code正确找到SDK。

图10 VS Code 包含路径设置

图10 VS Code 包含路径设置

图11 VS Code 宏定义设置

图11 VS Code 宏定义设置

  当然由于M0的很多DriverLib函数是内联函数,VS Code并不能全都找到这些函数,所以对于单片机本身外设的操作函数,VS Code很难进行补全。于是我对于这些单片机外设本身的开发,是先在CCS中编写的(乐)。好在这些代码都相对固定,熟练之后不用花费太多时间,其余大量的主体代码逻辑在VS Code中编写是很舒服的。

结语

  没想到写了这么长,也是侧面反映了资料查找和环境配置对于学习单片机的重要性,很多问题其实都是因为没仔细读手册或者开发环境不正确导致的。下一篇就让M0单片机实际跑起来~

  • 27
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值