type
status
date
slug
summary
tags
category
icon
password
前言CCS的使用打开需要使用管理员身份打开,要不然闪退(因为电脑账户为中文名)当代码文字太小时,通过以下快捷键:当代码文字太大时,通过以下快捷键:TI MSPM0G使用记录BUG、报错记录1、编译报错 no such file or directory :'@device.opt'[Ln1,Col 1]2、配置完sysconfig , 提示使用未声明的定义3、报错 warning #10210-D: creating ".sysmem" section with default size of 0x400; use the -heap option to change the default size4、使用DMA的FIFIO注意使用keil1、sysconfig 关联bug2、ADC0的通道一,PA26。默认是接地,输入信号没有东西,和3.3v连接会短路,配置输出为高电平,测试发现还是接地3、报错一大堆使用SYSCONFIG1.GPIO界面关于ADC的细节关于DMA配置使用定时器触发ADC
运用 MSPM0 的DMA和 Event 功能实现 ADC 多路周期性采样 (ti.com.cn)
MSPM0 UART通信中DMA和Ring Buffer环形缓冲的应用 (ti.com.cn)
 

前言

我们组三个人都大三了,这是最后一次打电赛了,可惜今年是北京市省赛。这次比赛,第三天所有功能就都实现了,最终封箱DAC烧了,换了一块DAC,导致我们的DAC补偿系数不对了,最后拿了二等奖。
虽然受限于硬件原因,拿了二等奖,但我认为方案还是不错的,整个比赛过程也很开心,没留下遗憾,电赛对一个人能力的锻炼真的不可替代。尤其是紧迫时间下的抗压能力,是非常宝贵的经历,有条件的同学们一定要试着尝试。
还有一个感触,Ti这次推出的M0系列板子,bug真的非常多啊😓
总之,方案是可以的😊,接下来是正篇。

CCS的使用

打开需要使用管理员身份打开,要不然闪退(因为电脑账户为中文名)

 
 

当代码文字太小时,通过以下快捷键:

Ctrl /Shift/ +
可以实现代码字体变大;

当代码文字太大时,通过以下快捷键:

Ctrl/-
可以实现文字代码变小;
 
 
 
 
 
 
 

TI MSPM0G使用记录

BUG、报错记录

 

1、编译报错 no such file or directory :'@device.opt'[Ln1,Col 1]

notion image
解决办法:切换工作空间,不要有中文(电脑用户名)
 

2、配置完sysconfig , 提示使用未声明的定义

原因:有时候
编译器会自动给你加头文件 #include "cstdint”
报错:有时候直接说明这个头文件找不到
有时候报某些变量为声明
删掉就行
notion image
notion image
 
 
 

3、报错 warning #10210-D: creating ".sysmem" section with default size of 0x400; use the -heap option to change the default size

 
原因:使用标准库的sprintf会占用大量的堆栈,默认堆栈不够用
 
解决:在在CMD文件最前面,-heap加上0x400(相应的报错数据)
 

4、使用DMA的FIFIO注意

启用了FIFO寄存器,是一个32位的寄存器,将从这个寄存器读取ADC的转换结果。因为是32位的,所以会将两次的转换结果存放在一起。所以,如果转换了1000次,实际上只要读500次,因为每次能读取两个结果。
notion image
注意这段话:ADC通道的数据在MEM0-MEM11当中存储,因为FIFO是2个合成一个,所以设置MEM的时候要刚刚好让DMA搬运完,要不就出现高低位错位
notion image
 
 
 
 

使用keil

keil可以兼容市面上很多处理器,所以很多报错大家都能在网上找到,普通的我也没有记录
CCS Theia 很多关于环境的报错在网上找不到,如果熟悉keil的可以直接使用keil
 
 

1、sysconfig 关联bug

官网下载最新版本的MSPM0SDK包 和sysconfig软件
notion image
SDK包里面内置的sysconfig关联工具 是 1.19.0版本
notion image
 
官网最新版本的sysconfig的版本是1.20.0版本
 
所有手动修改工具源码 把上面红框里面的19替换为20 便可以正常关联并启动
 
或者使用老版本SDK开发包
notion image
 
 

2、ADC0的通道一,PA26。默认是接地,输入信号没有东西,和3.3v连接会短路,配置输出为高电平,测试发现还是接地

查看原理图
PA26的引脚和J18跳线帽相连,是放大器和比较器的低,如果要使用ADC0的这个通道,记得把这个跳线帽给拔掉
notion image
 

3、报错一大堆

#include "ti/driverlib/dl_timera.h” 定时器A的
#include "ti/driverlib/dl_timer.h” 总的
不能同时引用,用哪个就调用哪个
 
 
 
 
 

使用SYSCONFIG

1.GPIO界面

notion image
 
PWM
notion image
 

关于ADC的细节

1、单通道单次转换
notion image
notion image
结束之后重新开启:先调用enc 再调用start
 
 

关于DMA配置

notion image
notion image
所以要选用单数的MEMR, sample count 和通道结合,让一次搬运完12个MEMR,不要让高低错位
 
 
single:有一个搬运一个 block:一次搬一个区块
repeat single:搬运完成,回到第一个重新开始搬运
notion image
 
transfer size: 总的点数除以2
notion image
 

使用定时器触发ADC

修改ADC memory 的trigger mode
notion image