这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 企业专区 » TI » 课程1-任务1+2:认识TIMSPM0以及GPIO操作

共3条 1/1 1 跳转至

课程1-任务1+2:认识TIMSPM0以及GPIO操作

高工
2024-04-30 14:04:15     打赏

MSPM0L1306 LaunchPad™开发套件用用于评估MSPM0L130x混合信号微控制器开发板。该套件包含在MSPM0L1xx上开始开发所需的一切微控制器平台,包括用于编程、调试和能量的板载调试探针测量。该板还具有板载按钮和LED,可为简单用户快速集成接口、板载热敏电阻、光传感器和RGB LED。

开发板靓照:

 https://www.bilibili.com/video/BV17m411C7xc/?buvid=XY75B537C416E17A953A00A33EDB883CA28EB&is_story_h5=false&mid=Pw2Hq3t6IhfKj%2FPD%2Bao96g%3D%3D&plat_id=147&share_from=ugc&share_medium=android&share_plat=android&share_session_id=24675ff3-531b-4190-887e-92ff72a910f3&share_source=WEIXIN&share_tag=s_i&timestamp=1714456421&unique_k=gZaBq1y&up_id=5269371684.jpg

MSPM0L1306是Arm®32位Cortex®-M0+CPU,频率高达32MHz。设备功能64KB嵌入式闪存与4KB片上RAM相结合。集成的高性能模拟12位1-Msps SAR ADC、零漂移和零交叉斩波运算放大器(OPA)以及通用放大器(GPAMP)等外围设备可帮助用户设计系统。40针BoosterPack™插入式模块头简化了快速原型设计,支持广泛的可用BoosterPack插件模块的数量。您可以快速添加无线连接、图形显示器、环境传感等等。设计您自己的BoosterPack插件模块或选择TI和第三方开发人员已经提供了许多。还提供免费软件开发工具,如TI的Code Composer Studio™IDE、IAR Embedded Workbench™IDE和Keil®µVision®IDE。Code Composer Studio IDE支持EnergyTrace™技术当与MSPM0L1306 LaunchPad开发套件配对时。有关LaunchPad的更多信息开发工具包、支持的BoosterPack插件模块和可用资源可以在TI上找到LaunchPad™开发工具包门户网站。快速入门并在MSPM0软件中查找可用资源开发工具包(SDK),请访问TI云开发区。MSPM0 MCU还得到广泛的支持在线辅助资料、MSP Academy培训以及通过TI E2E™支持论坛提供的在线支持。

 0.jpg

资源:

•带有外部编程选项的板载XDS110调试探头

•EnergyTrace技术可用于超低功率调试

•2个按钮、1个LED和1个RGB LED,用于用户交互

•热敏电阻电路

•光传感器电路

•ADC输入的RC滤波器(默认情况下未填充)

•支持GPIO和XDS110的BSL调用

•通过USB到PC的反向通道UART

 


芯片MSPM0L1306介绍:MSPM0L134x 和 MSPM0L130x 微控制器 (MCU) 属于 MSP 高度集成的超低功耗 32  MSPM0 MCU 系列,该系列基于增强型 Arm® Cortex®-M0+ 内核平台工作频率最高可达 32MHz。这些低成本 MCU 提供高性能模拟外 设集成支持 -40°C  125°C 的工作温度范围并在 1.62V  3.6V 的电源电压下运行。MSPM0L134x MSPM0L130x 器件提供高达 64KB 的嵌入式闪存程序存储器和高达 4KB  SRAM。这些 MCU 包含精度高达 ±1.2% 的高速片上振荡器无需外部晶体。其他特性包括 3 通道 DMA16 位和 32  CRC 加速以及各种高性能模拟外设例如一个具有可配置内部电压基准的 12  1.68MSPS ADC、一个具有内置基准 DAC 的高速比较器、两个具有可编程增益的零漂移零交叉运算放大器、一个通用放大器和一个片上温度传感器。 这些器件还提供智能数字外设例如四个 16 位通用计时器、一个窗口化看门狗计时器和各种通信外设包括两个 UART、一个 SPI 和两个 I 2C)。这些通信外设为 LINIrDADALIManchesterSmart CardSMBus PMBus 提供协议支持。 TI MSPM0 系列低功耗 MCU 包含具有不同模拟和数字集成度的器件可让客户找到满足其工程需求的 MCU。此架构结合了多种低功耗模式并经过优化可在便携式测量应用中延长电池寿命。

 


Arm® 32 Cortex®-M0+ CPU频率高达

32MHz

工作特性

– 工作温度范围40°C  125°C

– 宽电源电压范围1.62V  3.6V

存储器

– 高达 64KB 的闪存

– 高达 4KB  SRAM

高性能模拟外设

– 一个具有总计多达 10 个外部通道的 12

1.68Msps 模数转换器 (ADC)

– 可配置的 1.4V  2.5V 内部 ADC 电压基准

(VREF)

– 两个零漂移、零交叉斩波运算放大器 (OPA)

0.5µV/°C 漂移具有斩波

6pA 输入偏置电流 1

• 集成可编程增益级 (1-32x)

– 一个通用放大器 (GPAMP)

– 一个具有 8 位基准 DAC 的高速比较器 (COMP)

32ns 传播延迟

• 低功耗模式低至 <1µA

ADCOPACOMP  DAC 之间的可编程模拟

连接

– 集成温度传感器

经优化的低功耗模式

– 运行71µA/MHz (CoreMark)

– 停止4MHz 时为 151µA32kHz 时为 44µA

– 待机32kHz 16 位计时器运行时为 1.0µA

SRAM/寄存器完全保留32MHz 时钟唤醒时间

 3.2µs

– 关断61nA具有 IO 唤醒能力

智能数字外设

3 通道 DMA 控制器

3 通道事件结构信号系统

– 四个 16 位通用计时器每个计时器具有两个捕

/比较寄存器支持待机模式下的低功耗运

总共支持 8  PWM 通道

– 窗口化看门狗计时器

增强型通信接口

– 两个 UART 接口一个支持 LINIrDA

DALISmart CardManchester 并且都支持待

机模式下的低功耗运行

– 两个 I2C 接口一个支持 FM+ (1 Mbit/s)两个

都支持 SMBusPMBus 和从停止状态唤醒

– 一个 SPI支持高达 16Mb/s 的速率

时钟系统

– 精度为 ±1.2% 的内部 4MHz  32MHz 振荡器

(SYSOSC)

– 精度为 ±3% 的内部 32kHz 低频振荡器

(LFOSC)

数据完整性

– 循环冗余校验器CRC-16  CRC-32

灵活的 I/O 功能

– 多达 28  GPIO

– 两个具有失效防护保护功能的 5V 容限开漏 IO

开发支持

2 引脚串行线调试 (SWD)

封装选项

32 引脚 VQFN (RHB)

32 引脚 VSSOP (DGS)

28 引脚 VSSOP (DGS)

24 引脚 VQFN (RGE)

20 引脚 VSSOP (DGS)

16 引脚 SOT(DYY)

16 引脚 WQFN (RTR)

系列成员 另请参阅器件比较

MSPM0L13x38KB 闪存、2KB RAM

MSPM0L13x416KB 闪存、2KB RAM

MSPM0L13x532KB 闪存、4KB RAM

MSPM0L13x664KB 闪存、4KB RAM

开发套件与软件另请参阅工具与软件

LP-MSPM0L1306 LaunchPad开发套件

MSP 软件开发套件 (SDK)

 软件进行GPIO操作:

首先进行芯片资源配置:

代码编写:

芯片原理图:

#include "ti_msp_dl_config.h"

/* This results in approximately 0.5s of delay assuming 32MHz CPU_CLK */
#define DELAY (26000000)

//粗延时函数,微秒
void delay_us1(unsigned int time)
{
    unsigned int i=0;
   while(time--)
   {
      i=10;  //自己定义
      while(i--) ;
   }
}
//毫秒级的延时
void delay_ms1(unsigned int time)
{
    unsigned int i=0;
   while(time--)
   {
      i=12000;  //自己定义
      while(i--) ;
   }
}
int main(void)
{
    /* Power on GPIO, initialize pins as digital outputs */
    SYSCFG_DL_init();

    /* Default: LED1 and LED3 ON, LED2 OFF */
    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 |
                                        GPIO_LEDS_USER_TEST_PIN);

    while (1) {
        

              DL_GPIO_setPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN);
              DL_GPIO_setPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_2_PIN);
              DL_GPIO_setPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_3_PIN);
              delay_ms1(500);
              DL_GPIO_clearPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN);
              DL_GPIO_clearPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_2_PIN);
              DL_GPIO_clearPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_3_PIN);
              delay_ms1(500);
              DL_GPIO_setPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN);

              DL_GPIO_setPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN);
              DL_GPIO_setPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_2_PIN);
              DL_GPIO_setPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_3_PIN);
              delay_ms1(500);
              DL_GPIO_clearPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN);
              DL_GPIO_clearPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_2_PIN);
              DL_GPIO_clearPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_3_PIN);
              delay_ms1(500);
              DL_GPIO_setPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN);


              DL_GPIO_setPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN);
              DL_GPIO_setPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_2_PIN);
              DL_GPIO_setPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_3_PIN);
              delay_ms1(500);
              DL_GPIO_clearPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN);
              DL_GPIO_clearPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_2_PIN);
              DL_GPIO_clearPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_3_PIN);
              delay_ms1(500);
              DL_GPIO_setPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN);





              DL_GPIO_clearPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN);
              DL_GPIO_setPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_2_PIN);
              // 灭掉红色,点亮绿色
              delay_ms(500);
              DL_GPIO_clearPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_2_PIN);
              DL_GPIO_setPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_3_PIN);
              // 灭掉绿色,点亮蓝色
              delay_ms(500);
              DL_GPIO_clearPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_3_PIN);
              DL_GPIO_setPins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN);
    }
}

实现现象一下视频;



https://www.bilibili.com/video/BV17m411C7xc/?buvid=XY75B537C416E17A953A00A33EDB883CA28EB&is_story_h5=false&mid=Pw2Hq3t6IhfKj%2FPD%2Bao96g%3D%3D&plat_id=147&share_from=ugc&share_medium=android&share_plat=android&share_session_id=24675ff3-531b-4190-887e-92ff72a910f3&share_source=WEIXIN&share_tag=s_i&timestamp=1714456421&unique_k=gZaBq1y&up_id=526937168



 



高工
2024-04-30 15:12:15     打赏
3楼

谢谢分享


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]