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.

[参考译文] TM4C1290NCZAD:计时器计数器更新导致意外的程序停止

Guru**** 2931100 points

Other Parts Discussed in Thread: TM4C1290NCZAD

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1640906/tm4c1290nczad-unexpected-program-halt-caused-by-timer-counter-update

器件型号: TM4C1290NCZAD

尊敬的专家:

我的客户正在 使用 TI TM4C1290NCZAD 和 TI DriverLib 开发两相步进电机的控制程序。  这 不是基于 PWM 的电机控制。 相反、通过在每次中断时更新下一个计时器值来加速和减速电机。

在运行期间、他们发现程序随机停止运行的问题。  可通过对电路板进行下电上电来恢复系统。
发生该问题时、也无法通过 JTAG 调试器进行连接、并且调试环境中会显示以下错误消息:

“Cortex_M4_0:连接到目标时出错:(错误–2062 @ 0x0)无法停止器件。 重置器件、然后重试此操作。 如果错误仍然存在、请确认配置、对电路板进行下电上电、和/或尝试更可靠的 JTAG 设置(例如下 TCLK)。 (仿真包 8.0.27.9)“

经过我们的调查、他们发现问题可以通过在更新计时器计数器值之前停止计时器一次、然后在更新后再次启用计时器来解决。

具体而言、他们实现了以下 Disable() / Enable() 序列:
TimerDisable (TIMER0_BASE、TIMER_A);
TimerLoadSet (TIMER0_BASE、TIMER_A、(wTimer - 1));
TimerEnable (TIMER0_BASE、TIMER_A);

我们的问题如下:

  • Q1:如果更新 计时器计数器值而不停止计时器,则可能发生什么类型的故障或异常行为?
  • 问题 2:从设计和规格的角度来看、上述 停止和重启计时器的权变措施是否是适当的解决方案?

初始化代码如下所示。

SysCtlPeripheralEnable (SYSCTL_PERIPH_TIMER0);
while(!SysCtlPeripheralReady (SYSCTL_PERIPH_TIMER0));
TimerDisable (TIMER0_BASE、TIMER_A);
TimerConfigure (TIMER0_BASE、TIMER_CFG_PERIODENT);
TimerPrescale Set (TIMER0_BASE、TIMER_A、0);
TimerLoadSet(TIMER0_BASE、TIMER_A、(g_timerPeriod –1));
TimerUpdateMode (TIMER0_BASE、TIMER_A、TIMER_UP_LOAD_TIMEOUT);
TimerIntClear (TIMER0_BASE、TIMER_TIMA_TIMEOUT);
TimerIntEnable (TIMER0_BASE、TIMER_TIMA_TIMEOUT);
IntPrioritySet (INT_TIMER0A、4);
IntEnable (INT_TIMER0A);
TimerEnable (TIMER0_BASE、TIMER_A);

此致、
正常

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

    尊敬的专家:

    很抱歉耽误你。 是否有任何更新?

    此致、
    正常

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

    尊敬的专家:

    很抱歉耽误你。 是否有任何更新?

    此致、
    正常

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

    您好、

    感谢您的支持。

    我在 新创建的主题中收到了回复、但我也想与客户分享您的详细说明。

    此致、
    正常