This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSPM0L1306:MSPM0L1306 快速引导时间测试

Guru**** 2665185 points

Other Parts Discussed in Thread: MSPM0L1306

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1577321/mspm0l1306-mspm0l1306-fast-boot-time-test

器件型号:MSPM0L1306


我需要一个启动时间低于 0.5ms 的低成本微控制器。 选择 MSPM0L1306 是因为其内部时钟、封装选项、低成本、并且其 M0 内核具有足够的性能和外设。 我在数据表中已经看到、它支持 214us 的快速启动时间、可轻松满足我的时序要求。 但是、我的测试显示了一致的 4.5ms 引导时间。 我的测量方法是使用高侧驱动器电路快速接通电源、运行代码来打开/关闭输出引脚、并记录从电路通电到切换开始的时间。 工程选项、.syscfg 文件、BCR 存储器或其他地方中是否有任何需要修改的重要设置以实现更快的速度? 是否有更好的 MCU? 我正在使用评估板对此进行测试、并通过断开将调试器连接到 MCU 的接头来加快速度。 我的文件上传可能由于 IT 策略问题而无法正常工作、因此我只能包括我的代码。

包含“ti_msp_dl_config.h"</s>“
#include
int main (void){
  //最小 GPIO 初始化 — 绕过 SYSCFG_DL_init () 以实现最快的启动
  // 1。 启用 GPIOA 外设的电源
  GPIOA->GPRCM.PWREN =(GPIOA->GPRCM.PWREN &~0xFF000000)| 0x26000000 | 0x1;
  // 2. 等待电源域准备就绪
  Volatile int timeout = 10000;
  while (((GPIOA->GPRCM.STAT & 0x1)=0)&&(TIMEOUT_-> 0));
  // 3. 将 PA21 的 IOMUX 配置为 GPIO 功能
  // PA21 为 IOMUX 索引 21、设置为 GPIO 函数(函数 1)
  IOMUX ->SECCFG.PINCM[21]= 0x00000081; //使能+ GPIO 功能
  // 4. 将 PA21 配置为 GPIO 输出
  GPIOA->DOE31_0 =(1 << 21);
  // 5. 切换 PA21
  while (1){
    GPIOA->DOUT31_0 =(1 << 21); //将 PA21 设置为高电平
    for (volatile int i = 0;i < 32000;i++)_asm(“nop")“);
    GPIOA->DOUT31_0 = 0;       //将 PA21 设置为低电平
    for (volatile int i = 0;i < 32000;i++)_asm(“nop")“);
  }
  返回 0;
}
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jordan:
    通过消除等待电源域就绪的情况、我能够从上电到 GPIO 切换达到约 284us。 我建议删除该等待、除非您认为这对于您的应用程序是必要的。

    此致、

    Diego Abad

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Diego:

    我不知道为什么忽略了测试、但这确实有很大帮助。 进行这项更改后、我的时间将缩短至 0.8ms。  您使用哪些.syscfg 设置? 您只是使用默认项目设置吗?

    谢谢、

    约旦

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jordan:
    以下是我执行的步骤:

    1.打开最新的 CCS -->导入空工程

    2.将您提供的代码复制到 main

    3.运行代码。 测量从上电到第一次 GPIO 上升为高电平的时间。

    我没有特别做任何事情来获得这种价值。

    此致、

    Diego Abad

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    很棒! 这应该很容易尝试、但我遇到了一些 IT 问题、无法创建项目。 我希望该问题能在下周得到解决。 你现在已经收窄了一切,所以我应该能够稍后证明这一点。  我的选择 c++工程而不是 c、或者我更改了的工程选项、可能会更慢一些。 感谢您的帮助!