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.

[参考译文] MSPM0G3519:MSPM0Gx51x PWM 占空比和周期捕获支持以及 Timer_ERR_01

Guru**** 2885180 points

Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1629883/mspm0g3519-mspm0gx51x-pwm-duty-and-period-capture-support-and-timer_err_01

器件型号: MSPM0G3519
主题: SysConfig 中讨论的其他器件

根据 MSPM0Gx51x 勘误表、 www.ti.com/.../slaz758 TIMER_ERR_01 在这些器件中不存在、因此  不需要 e2e.ti.com/.../faq-timer-capture-issue-in-period-capture-mode-for-mspm0-production-sample 中所述的手动重新加载权变措施。 但是、 SysConfig 以及最新的 mspm0_sdk_2_10_00_04 不考虑这一点。

SysConfig 依赖于 SDK dl_timer.c 函数 DL_Timer_initCaptureCombinedMode () 、其中包含以下代码:

  /*
   *由于 GPTimer 组合捕获限制,将加载条件设置为 NONE
   */
  DL_Timer_setCaptureCompareCtl (gptimer、DL_TIMER_CC_MODE_CAPTURE、
    (DL_TIMER_CC_ZCOND | DL_TIMER_CC_ACOND _TIMCLK |
      DL_TIMER_CC_LCOND | DL_TIMER_CC_CCOND_TRIG_FALL)、
    captConfig.index);
  DL_Timer_setCaptureCompareCtl (gptimer、DL_TIMER_CC_MODE_CAPTURE、
    (DL_TIMER_CC_ZCOND | DL_TIMER_CC_ACOND _TIMCLK |
      DL_TIMER_CC_LCOND | DL_TIMER_CC_CCOND_TRIG_RISE)、
    captPairConfig.index);
SysConfig 还将启用 “组合捕获...“ 功能 的中断、MSPM0Gx51x 器件不需要该功能。
 
此致、
Eugene
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Brian /TI、

    我们能否从 Eugene 返回此主题、以获得某种程度的初始反馈?

    CY、
    CY  

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

    您好、Eugene、

    代码设置 DL_TIMER_CC_LCOND NONE 、因为  MSPM0 上的 GPTimer(通用计时器)在 组合捕获 模式下具有硬件限制 、无法执行自动加载操作。 因此、 在脉宽和周期组合捕获中、计时器计数器在捕获事件后不会自动复位为加载值。 这会强制 您使用 DL_TIMER_setTimerCount () 在中断服务例程 (ISR) 中手动重新加载计数器 、或者手动计算两个连续捕获值之间的差值。
    如果您看到不需要的中断代码 、请确保已取消选中   SysConfig 计时器模块的“Interrupt Configuration“部分中特定的“Combined Capture“中断标志。 如果代码仍然存在:
    1. 验证您是否使用了最新的 MSPM0 SDK  
    2. 如果自动重新加载对您的计时至关重要、则必须  在 ISR 中实现手动重新加载权变措施:

          

    void TIMER_0_INST_IRQHandler(void) {
        // ... determine your capture event ...
        DL_Timer_setTimerCount(TIMER_0_INST, gLoadValue); 
    }

    希望这对您有所帮助!

    -布赖恩

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

    您好、Brian、

    MSPM0Gx51x 没有此错误、但 SDK 强制采用次优解决方案。 您认为是否 应该 更新 SDK 或 SysConfig 以更好地使用 MSPM0Gx51x?

    此致、

    Eugene

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

    嗨、Eugene、我认为这是一个公平的观点、我会向我们的软件团队提出一个行动、以便将来对我们的 SDK 进行改进。