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.

[参考译文] AM2634:如何配置 RTI 模块

Guru**** 2042910 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/1361392/am2634-how-to-configure-rti-module

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

如何配置 RTI 模块?   

2634的 RTI 模块混淆了我。

首先、我修改了 RTI_LED_BLINK 示例、以确保 LED 一直闪烁。

 

Fullscreen
1
2
3
4
5
6
7
8
9
10
System_init();
Board_init();
rti_led_blink(NULL);
while(1);
// Board_deinit();
// System_deinit();
return 0;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
DebugP_log("[RTI LED Blink Test] Timer Started...\r\n");
// /* Wait until the LED is blinked specified number of times */
// while(gBlinkCount < LED_BLINK_COUNT);
//
// /* Stop the RTI counter */
// (void)RTI_counterDisable(CONFIG_RTI0_BASE_ADDR, RTI_TMR_CNT_BLK_INDEX_0);
//
// DebugP_log("[RTI LED Blink Test] Timer Stopped...\r\n");
//
// DebugP_log("All tests have passed!!\r\n");
//
// Board_driversClose();
// Drivers_close();
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

然后、我配置 syscfg:

       将时钟源设置为 SYS_CLK、将输入时钟频率设置为200m

       将 RTI 输入时钟源设置为 SYS_CLK、将 输入时钟频率设置为200m

       )计数器块0所需输出频率为100m、实际输出频率为100m。(与步骤1类似、将除法设置为2k Ω

       将比较事件0节拍周期(usecs)设置为1M、实际节拍周期为1M。  

我运行代码、LED 每1s 切换一次、当我看到寄存器时、FRC0不断增加、UC0在0-199999、 CPU0 = 199999、CMP0 不断增加、 几乎等于 FRC0

当 I 设置计数器块0所需的输出频率为2M 时、实际输出频率为2M、比较事件0节拍周期(usecs) 保持为1M

I 运行代码、LED 每1s 切换一次、 FRC0不断增加、UC0在0-199999、 CPU0 = 199999、CMP0  不断增加、 几乎等于 FRC0

当 我将比较事件0节拍周期(usecs)设置 为2M 时、其他参数不变

I 运行代码、LED 每2s 切换一次、 FRC0不断增大、UC0在0-199999之间范围、 CPU0 = 199999、CMP0  不断增大、 几乎等于 FRC0

那么、寄存器 FRC0 CMP0 UC0 CPU0的方法是什么、 如何将这些寄存器与 syscfg 所需的输出频率和节拍周期(usesc)相关联?

此外、如何将 C2000等 RTI 寄存器配置为定时代码运行时间? (CCS 只设置时钟分频、PRD、读取 CNT)

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

    我 参考了手册、里面的介绍非常模糊。 您能否提供一个与设置与实际现象相匹配的示例或代码

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

    周先生、您好!

    很抱歉,我今天无法调查这件事,明天我会这样做。 感谢您对设置的详细描述、我将能够尝试复制您的观察结果。

    此致、

    拉尔夫·雅各比

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

    周先生、您好!

    抱歉,我花了一段时间才回到你的这个帖子,但我在努力重新创建你的观察初始. 但现在我明白发生了什么。 此处的根本原因可能并不是缺少文档、而是 SysConfig 的系统设计不佳。

    您正在查看的 RTI 寄存器会产生以下值:

    FRC0在不断增加,UC0在0-199999之间,CPU0=199999 ,CMP0在  不断增加, 几乎等于 FRC0[/报价]

    是 RTI0实例的寄存器、该实例是分配给驱动程序移植层的时钟的 RTI。 此时钟默认为 RTI0 。 此时钟为   您要更改 SysConfig RTI 选项卡上的值的 RTI 计时器。 假设您的示例使用默认计时器、您应查看  RTI1 寄存器来观察寄存器的变化。

    RTI1:

    RTI0:

    当您将节拍周期从1M 移动到2M 时、您将看到 RTI1 (或在计时器实例中为 RTI 分配的 RTI)中的寄存器发生变化。  

    至于对糟糕系统设计的评论... 我希望 RTI 实例的命名与分配是您需要的:

    此致、

    拉尔夫·雅各比

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

    您好,Ralph

          谢谢你。 我已经再次查看了 syscfg 的内容、似乎只有1/2/3个 RTI 实例、并且我的 RTI1寄存器具有正确的值、这与 C2000中的计时器类似。

    此致

    周南一