#申请原创# 安装SDK开发环境
HYPERLINK "https://www.ti.com.cn/tool/cn/download/MSPM0-SDK"
下载后正常安装即可使用,非常方便。
MSPM0L_DFP Pack下载
HYPERLINK "https://www.keil.arm.com/packs/mspm0l_dfp-texasinstruments/devices/"
点 1 直接下载最新版本
点 2 可以下载历史版本
只需要安装一个SDK软件开发包(并且的打包成EXE可执行文件格式的),里面包含了使用MSPM0L几乎所有的资料,非常方便!!
安装后的效果图。
安装SDK软件开发包,只需要安装一个keil的pack的器件支持包即可!
以上就完成了TI MSPM0L在Keil 5的开发环境安装了,整体非常的快捷方便!!
点灯环节
又来到了必有的点灯环节,用点灯来验证环境安装成功是再好不过的了!
打开C:\ti\mspm0_sdk_1_20_00_05\examples\nortos\LP_MSPM0L1306\driverlib\gpio_toggle_output 下的IO翻转例程。
直接编译即可,编译通过,下一步就是下载代码了。
Keil 5 下载配置
开发板上集成了DAP-Link,所以不用另外接线,就是需要手动选择并且配置一下,就可以下载代码了,过程如下:
需要选择MSPM0L MAIN 64K的flash下载算法,下载功能选项上选择下载,不要检验 和 下载完成后自动复位,不然就要手动复位(手动复位),复位键如下图:
点灯效果
这个IO翻转代码驱动的是一颗RGB灯,现象是红灯 与 蓝、绿俩色交替闪烁
int main(void)
{
SYSCFG_DL_init();
DL_GPIO_clearPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_2_PIN);
DL_GPIO_setPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN | GPIO_LEDS_USER_LED_3_PIN);
while (1) {
/*
delay_cycles(10000000);
DL_GPIO_togglePins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN |
GPIO_LEDS_USER_LED_2_PIN |
GPIO_LEDS_USER_LED_3_PIN);
}
}
只看代码可以得知,最开始初始化的时候,设置了1个高电平,2个低电平,并且在循环中不断的翻转。
结合代码 和 现象IO可以正常翻转!!所以环境搭建完毕!
点灯效果图
硬件SPI 驱动屏幕
现如今MCU的性能和外设的性能都越来越高,可以满足驱动屏幕的功能,一块屏幕+触摸 可以组合成无数的交互方式,可以更加高效的操作机器与设备,可以看见各种各样的设备都开始接上屏幕了,比如充电宝、各种大家电(冰箱、洗衣机),小家电(空气烤箱、烤箱)等等。
所以我下面就来点亮一块屏幕,屏幕的细节是:
通讯方式 SPI(四线电源正、负、时钟、数据共四根线)
驱动IC ST7789
SPI的屏幕模组引出了:VCC GND MOSI RESET RS引脚,引脚的功能分别是:
VCC 电源正极
GND 电源负极
MOSI 主发从收
Reset 是复位脚
RS 信号、命令脚(发送数据时拉高,发送命令时拉低)
结合SPI LCD屏幕引脚功能后,可知我们需要会配置主机模式的SPI、控制IO翻转、延时函数等功能
延时函数ti官方有提供毫秒级的延时,我们移植使用即可
SPI我选择了FIFO+ DMA格式的SPI主机模式代码。
1、FIFO定义
FIFO是英文First In First Out的缩写,是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。
2、FIFO优点
1)对连续的数据流]进行缓存,防止在进机和存储操作时丢失数据;
2)数据集中起来进行进栈和存储,可避免频繁的总线操作,减轻CPU的负担;
使用了FIFO可以,节省等待和代码处理数据的时间,只管把数据给组合出来发送给fifo,然后five再按照先入先出的顺序将数据写入到dma中,让刷图速度更快的同时可以提高代码的运行效率。
整体波形
细节波形
需要注意的有两点:
1、R/S脚,可以看见,在发命令的时候是拉低的,写数据的时候是拉高的,(命令指的是需要配置的寄存器,一般只有在初始化或者说进入休眠,退出休眠的时候才需要,其他的时候只要发送图片的数据就行了,所以大部分时候都是处于高电平)。
其他的就是SPI的正常数据。
2、RESET脚需要按照要求切换高低电平复位屏幕。
屏幕的驱动IC是 ST7789,所以我们驱动这块屏幕是控制主控把我们想要现实的内容按SSD1306能够识别的格式整理后,通过SPI发送给 ST7789,接到数据后ST7789会按照对应的格式解析 并 显示在屏幕上。
和大多数传感器一样我们需要初始化OLED屏幕,设定分辨率,左上角坐标、刷图方式等等,以下是我找到的初始化参数。
PS:注意每一款屏幕的初始化参数都是不一致的!!需要确认参数是否可用。
寄存器 数据
0x11 {0}
0x36 {0x00}
0x3A {0x05}
0xB2 {0x0C,0x0C,0x00,0x33,0x33}
0xB7 {0x14}
0xBB {0x21}
0xC0 {0x2C}
0xC2 {0x01}
0xC3 {0x0F}
0xC6 {0x1E}
0xD0 {0xA7}
0xD0 {0xA4, 0xA1}
0xD6 {0xA1}
0xE0 {0xF0,0x08,0x0C,0x09,0x09,0x15,0x35,0x44,0x4B,0x38,0x13,0x13,0x2D,0x33}
0xE1 {0xF0,0x06,0x0D,0x0B,0x0A,0x07,0x34,0x44,0x4A,0x3A,0x15,0x15,0x2E,0x33}
0xE4 {0x24, 0x00, 0x00}
0x21 {0}
0x29 {0}
0x2A {0x00,0x00,0x00,0xEF}
0x2B {0x00,0x00,0x01,0x27}
0x2C {0}
如果仅仅确认确认初始化数据通过SPI正常发送,屏幕不会肯定正常工作的,需要进一步的确认R\S 和 reset引脚的波形,是否按照之前描述时机的驱动IO。
不断发送0XF8 0X00,不断的刷红色
刷纯红色的效果图
那么为什么发送0XF8 0X00(0XF800),屏幕会显示红色?
这块屏幕 和 驱动IC(ST7789)配置的颜色数是565格式的,在565格式中纯红色就是0XF800
配合TI 开发板的 红色转接板 + 显示红色屏幕,红红红!
安装CCSTUDIO
https://www.ti.com/tool/CCSTUDIO
经常停留在一个文件名很久,打开任务管理器 会提示无响应,但是在任务管理器点击一下CCS的任务(不要结束任务,只是单纯的点击一下),安装就会新的有反应
按照好CCS 并连接开发板后,点击以下指示的图标即可进入电流测量模式!
断开GND 和 3V3就可以断开给开发板的MCU部分的供电(那边的灯还是会亮,但是亮度会降低,但是上位机的电流很小,所以灯的电不是从此漏电的),从靠近MSP430侧的接口又杜邦线对其他PCB供电就可以测量的3V3对外提供的电流大小!
蓝牙设备从上电-工作-浅睡-深睡的电流变化,细节很丰富
蓝牙广播的时的电流变化的细节都能捕捉到。
吐槽一下,上位机是真的不好用(或者说我不会用,**提供中文文档),希-望可以优化一下,让他变得真正好用,而不是鸡肋。
1、显示数据的界面和波形界面做到同一个界面里
2、电流的坐标随着电流大小自动变化
3、时间轴会自动滚动
4、在时间轴按下并滑动,高亮滑动区域并且显示改区域的平均电流
5、添加鼠标滚轮的滑动时间轴功能,并且配合键盘快捷键做出缩放效果
**可以参考Nordic的PPK2测电流模块的上位机、芯科 的 EFM32 Zero Gecko 小壁虎开发板的上位机,对应的效果图如下:
Nordic PPK2的上位机
小壁虎Simplicity Studio的上位机。
最后非常感谢TI给的评测机会体验之后发现,
1、TI的开发资料非常的丰富、完整。
2、各个开发环境都有,甚至有云端可以直接控制开发板上的灯和传感器(摸索中...)。
3、各个外设的视频简介在B站都有,非常贴心(能不能把提到的相关资料的链接放在简介或者评论区里?)
|