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.

[参考译文] TMS470MF03107:关于 TMS470MF03107捕捉功能的咨询

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1015009/tms470mf03107-consultation-on-capture-function-of-tms470mf03107

器件型号:TMS470MF03107
我使用的芯片是 TMS470MF03107。 在阅读了大量论坛帖子后、PCNT 配置并不是很困难、但我自己仍然没有使用捕获功能。 配置过程如下:
1.使用默认时钟配置;
2、;Pwm0-7、选择 HET[2]作为 PWM 输出、周期10000us、占空比50%、使能、PIN2 μ s
3、PWM 中断、Edge0-7、边缘中断默认;
4. CAP0-7、捕捉使用 HET6并使用默认的 CAP 3;
5、引脚0-7、HET2被配置为输出、而 HET6被配置为输入;
配置生成的代码后、根据论坛中的 TMS570 HR 共享函数修改代码
    /* PCNT: Capture Duty 3
    *         - Instruction                  = 31
    *         - Next instruction             = 32
    *         - Conditional next instruction = na
    *         - Interrupt                    = na
    *         - Pin                          = 6
    */
    {
        /* Program */
        0x00020700U | (1U << 5U)  | (6U),
        /* Control */
        0x00000000U,
        /* Data */
        0x00000000U,
		/* Reserved */
		0x00000000U
    },
    /* PCNT: Capture Period 3
    *         - Instruction                  = 32
    *         - Next instruction             = 33
    *         - Conditional next instruction = na
    *         - Interrupt                    = na
    *         - Pin                          = 6  + 1
    */
    {
        /* Program */
        /*原代码0x00021700U | (1U << 5U)  | ((6U) + 1U),*/
        0x00021700U | (3U << 5U)  | ((6U) + 0U),
        /* Control */
        0x00000000U,
        /* Data */
        0x00000000U,
		/* Reserved */
		0x00000000U
    },
7.主要零件代码;
#include "system.h"
#include "het.h"
/* USER CODE BEGIN (0) */
hetSIGNAL_t pluse10;
hetSIGNAL_t pluse_pwm;
/* USER CODE END */

/* USER CODE BEGIN (1) */
/* USER CODE END */

int main(void)
{
/* USER CODE BEGIN (2) */
    hetInit();

    pwmStart(pwm0);

    while (1)
    {
        pwmSetDuty(pwm0, 30);

        pluse_pwm = pwmGetSignal(pwm0);

        pluse10 = capGetSignal(cap3);
    }

/* USER CODE END */

    return 0;
}
使用示波器测得的 PWM 波形如下:

9.按如下方式读取变量值;
电路板已将 HET2和 HET6连接在一起,并且 pluse10变量的值始终为0? ? ?

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

    e2e.ti.com/.../20210525_2D00_TMS470_2D00_08_5F00_HET_2D00_Capture.rar

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

    您好!

     请参阅 pwmGetSignal 和 capGetSignal API。 这些 API 采用三个参数、您只能传递一个参数。 您可以在 HalcogGen->Help->Help topics->Modules->HET 中找到 API 详细信息。

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

    感谢您的回复、但 TMS470两个函数的 API 如下: hetSIGNAL_t capGetSignal (uint32cap)和 hetSIGNAL_t pwmGetSignal (uint32pwm)。 此外、已读取 PWM 波形的周期和占空比的使用、有关详细信息、请参阅上一个图中的变量 pluse_PWM。

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

    您好!

     很抱歉、我不是很熟悉 TMS470MF03107。 您能不能读取 HETRAM 中与 CAP3指令相对应的指令。 您是否看到 CAP3指令的数据字段 捕获任何内容? 另请注意、今天是美国假日。 响应将延迟。  

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

    好的、谢谢! 我将再次进行学习。