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.

[参考译文] MSP430FR6047:脉冲之间的 MTIF 间隔

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1346128/msp430fr6047-mtif-interval-between-pulses

器件型号:MSP430FR6047

您好!

MTIF 模块有问题。 我用它进行了一些测试、发现脉冲传输之间的间隔不是恒定的。

模块的频率设置为128Hz (PGFS_3)、帧持续时间为2秒。

Init 函数

  MTIF_clearPulseGenCounter(MTIF_BASE);
  MTIF_enablePulseGen(MTIF_BASE);

  MTIF_setPulseGenPulseGridFreq(MTIF_BASE, PGFS_3);
  MTIF_clearPulseGridFreqUpdateRequest(MTIF_BASE);

  while(MTIF_isPulseGridFreqUpdated(MTIF_BASE) == MTIF_K_COUNT_IS_NOT_UPDATED);

  MTIF_clearPulseCounter(MTIF_BASE);
  MTIF_enablePulseCounter(MTIF_BASE);

  MTIF_enableTestPortOutput(MTIF_BASE);

 

SENT PULSES 函数  

MTIF_enableTestPortOutput(MTIF_BASE);
MTIF_setPulseGenCountNum(MTIF_BASE, 27);
MTIF_clearPulseKCountUpdateRequest(MTIF_BASE);

while(MTIF_isPulseKCountUpdated(MTIF_BASE) == MTIF_K_COUNT_IS_NOT_UPDATED);

MTIF_enableTestPortOutput(MTIF_BASE);
MTIF_enableTestPortTerminalActivationBySW(MTIF_BASE);
MTIF_clearPulseCounter(MTIF_BASE);
MTIF_enablePulseCounter(MTIF_BASE);

如图所示、一帧持续时间内脉冲之间的偏移量并不一致。

是否可以在一个帧持续时间内实现脉冲之间的恒定间隔

谢谢!

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

    您好、Adam、

    Unknown 说:
    发送脉冲函数 

    对于此函数、您是否知道它所在的文件? 我在 FR6047_USSSWLib_TEMPLATE_Example 代码中没有找到它。  

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

    您好、Gary、  

    Im 是 Adam 的一位同事、  

    sendPulses 函数的基本作用是:

    void sendPulses(pulseDriver, amountOfPulsesToSend)
    {
    	MTIF_enableTestPortOutput(MTIF_BASE);
        MTIF_setPulseGenCountNum(MTIF_BASE, pulseDriver->m_amountOfPulsesToSend);
        MTIF_clearPulseKCountUpdateRequest(MTIF_BASE);
        while(MTIF_isPulseKCountUpdated(MTIF_BASE) == MTIF_K_COUNT_IS_NOT_UPDATED);
    
        MTIF_isPulseKCountUpdated(MTIF_BASE);
    
        MTIF_enableTestPortOutput(MTIF_BASE);
        MTIF_enableTestPortTerminalActivationBySW(MTIF_BASE);
        MTIF_clearPulseCounter(MTIF_BASE);
        MTIF_enablePulseCounter(MTIF_BASE);
    }

    将 mtif 的帧设置为2s 间隔。 在这一帧中、我们预计脉冲之间不会有任何间隙。

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

    有什么关于这个 Gary 的消息吗?

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

    您好!

    我找到了另外一件事。 MTIF 模块仅以恒定的间隔发送2、4、8、...、64个脉冲、这意味着脉冲数必须是128的除数。 对于其他组合,模块发送频率不均的脉冲。 您是否知道它是如何工作的以及如何实现 脉冲之间的恒定间隔

    示例:

    下图 显示了 MTIF 模块的信号、该模块在2秒帧持续时间内发送32个脉冲。

    一帧持续时间内的脉冲间间隔是 恒定的。

    下图 显示了 MTIF 模块的信号、该模块在2秒帧持续时间内发送36个脉冲。

    一帧持续时间内的脉冲间间隔是一个常数。

    谢谢!

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

    您好!

    MTIF 模块没有可配置的时钟分频器。 因此、它只能 以恒定的间隔发送2、4、8、...、64个持续时间为2s 的脉冲。 没有其他方法可以在其他脉冲数处获得恒定间隔。  

    此致、

    卡什豪酒店