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.

[参考译文] TMS320F28386S:定时器文档问题

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1175719/tms320f28386s-timer-documentation-questions

器件型号:TMS320F28386S
Thread 中讨论的其他器件:SysConfig

一些计时器文档似乎不充分、不完整或可能错误。

用于函数 CPUTimer_setPreScale()

cputimer.h 状态

//! 此函数设置 CPU 定时器的预分频器值。 每个值
//! (预分频器+ 1)、CPU 定时器计数器减1。

这是什么意思?

其中一个示例指出:

   //
   //将预分频计数器设置为1分频(SYSCLKOUT):
   //
   CPUTimer_setPreScaler (cpuTimer、0);

这是什么意思? 在这个上下文中什么是 SYSCLKOUT。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~μ A

对于函数 CPUTimer_reloadTimerCounter ()

cputimer.h 指出:

//! 此函数使用中包含的值重新加载 CPU 定时器计数器
//! CPU 定时器周期寄存器。

为什么? 何时需要? CPUTimer_setPeriod()没有设置值吗?

谢谢、

JH

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

    您好、John、

    [引用 userid="152282" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1175719/tms320f28386s-timer-documentation-questions "]

    cputimer.h 状态

    //! 此函数设置 CPU 定时器的预分频器值。 每个值
    //! (预分频器+ 1)、CPU 定时器计数器减1。

    这是什么意思?

    [/报价]

    预分频器的工作方式就像在现有定时器之上增加一个计数器。 通常、CPU 定时器递减 TIMH:TIM 寄存器(加载周期)。 然而、当使用一个预分频器时、值 PSCH:PSC (这是从 TDDRH:TDDR 载入的预分频值)将递减、直到它达到0。 PSCH:PSC 达到0后的一个周期、PSCH:PSC 的值通过 TDDRH:TDDR 复位、然后计时器计数器 TIMH:TIM 递减1。 因此、在 CPU 定时器本身递减之前、它基本上会使 PSCH:PSC 先达到0、从而减慢定时器的速度。

    [引用 userid="152282" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1175719/tms320f28386s-timer-documentation-questions "]

    其中一个示例指出:

       //
       //将预分频计数器设置为1分频(SYSCLKOUT):
       //
       CPUTimer_setPreScaler (cpuTimer、0);

    这是什么意思? 在这个上下文中什么是 SYSCLKOUT。

    [/报价]

    当它说预分频计数器被设置为除以1时、这意味着本质上没有预分频器(由于该值被设置为0、它将在 CPU 定时器递减之前不会计数)。 本质上、通过添加预分频器、您可以减慢或分频时钟的频率。 在这里、SYSCLKOUT 是您的系统时钟频率。 此注释基本上是说计数器将使用系统时钟频率速度来递增计数器。 换句话说、1个时钟节拍是1个计数器节拍。

    [引用 userid="152282" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1175719/tms320f28386s-timer-documentation-questions "]

    cputimer.h 指出:

    //! 此函数使用中包含的值重新加载 CPU 定时器计数器
    //! CPU 定时器周期寄存器。

    为什么? 何时需要? CPUTimer_setPeriod()没有设置值吗?

    [/报价]

    使用 CPUTimer_setPeriod ()函数设置周期的值、但  CPUTimer_reloadTimerCounter ()函数设置 TCR 寄存器中的 TRB 位。 这会将周期加载到定时器计数器 TIMH:TIM 中、以便它基本上从开始(计数器递减加载的周期值)开始计数器。  该位还使用定时器分频 TDDRH:TDDR 值加载预分频计数器 PSCH:PSC。

    我在这里写下的很多答案都可以在技术参考手册的"CPUTIME_REGS 寄存器"部分(第3.14.8节)找到。 如果您还有任何问题、请告诉我。

    此致、

    Omer Amir

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

    再次感谢。 我想这是 SPRU110D 中的第3.15.8节- 2022年7月更新

    这进一步推动了我对编程人员参考手册的需求。 我同意寄存器描述中有很多有用的信息、我是 EE、我可以对它们进行解析。 但是、用户必须使用该信息程序寄存器位、或者希望找到一个准确而详细的示例、其中包含一个函数调用或宏来设置 TRB 位、只有通过分析这些调用、才能确定它们是否设置了所需的位。

    我现在是一名合同工程师(实际上是 TI 的全职工程师、78 - 93年)、如今、大多数雇主都不想让您有时间详细了解 TRMS。 例如、在过去几年中、我只能获得职位、因为我以前曾使用 PIC32或 STM32或类似产品。 TI 可以通过将命令及其实际操作放在程序员手册中来帮助人们学习曲线和吞吐量。 此外、我也不需要在论坛上过多地向您推荐好朋友。 你们很好,但是周末不在线。

    感谢 Omer 提供的所有详细帮助。 它非常有用、让我对该外设更了解。

    很抱歉答复迟了,但生病了。

    John

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

    您好、John、

    很遗憾听到通过 参考手册进行解析的困难。 对于未来的项目、我建议使用 SysConfig 配置您的外设。 此工具提供了一个 GUI、用于使用 driverlib 函数初始化外设。 添加外设后、它将执行大部分基本初始化、并允许用户配置其余部分。 它简化 了您需要更改的设置、并可提供 通常在编译时不会发生的说明/错误检查。 我已经附加了一个图片、展示了使用此工具时 CPU 定时器及其生成的代码的外观:

    即使您不想将 GUI 用作常规工具、当您想知道如何使用 driverlib 函 数配置外设时、仍可以将其用作参考(尽管我建议使用 GUI、因为它提供了更好的易用性)。

    此致、

    Omer Amir

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

    谢谢。 SysConfig 是通过 CCS 访问还是独立访问?

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

    您可以在 CCS 中使用 SysConfig 实际生成可直接运行的代码、也可以使用独立版本(但这本身不能在器件上运行程序)。

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

    再次感谢。

    我找不到该工具的大量文档。 我确实找到了一个旧的论坛帖子、并创建了一个.syscfg 文件并让其构建。 它创建了 interrupt_init()和 CPUTIME_init(),但我还需要一个配置文件。

    是否有用户指南?

    John

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

    您好、John、

    下面是一些介绍 SysConfig 工作原理和创建示例 的视频:training.ti.com/sysconfig-development-tool-c2000-real-time-mcus。 用户指南可在以下位置找到: https://www.ti.com/lit/an/spracx3/spracx3.pdf?ts=1669918560321

    此致、

    Omer Amir

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

    好的、谢谢。 我本页上的指南是:

    https://www.ti.com/tool/SYSCONFIG#tech-docs

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

    尊敬的 John:

    链接的页面通常适用于 SysConfig。  该页面 由 C2000以外的其他器件系列共享、因此这可能是该培训信息未显示的原因、因为它是特定于 C2000的。 我可以请求管理 TI 网站的人员添加该网站、以便更轻松地查找。

    此致、

    Omer Amir

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

    非常好、这将节省我们两个人的时间。

    谢谢。