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.
尊敬的 E2E 团队:
我有一个关于 MTIF 脉动生成的问题。 我曾尝试使用示例 msp430fr6043_mtif_02.c 了解其功能、但完全不明白。
首先以 每250ms 8个脉冲为例、我试图在10秒后看到脉冲的数量应该为320个、但得到的是316个脉冲、我想知道为什么缺少4个脉冲。
其次 、如果我使用 PGFS_0或 PGFS_7、或者在 msp430fr6043.h 中定义的其他 PGF、我看不到任何差异、因此我没有了解和、选择 PGF 时需要考虑哪些标准。
第三个也是最后一个、我不太明白为什么 MTIFPGKVAL = 4250毫秒内就有8个脉冲了。 例如、假设 PGS_7为 PGFs_7、如果我希望每秒有200个脉冲、MTIFPGKVAL 应该是什么 ?如何获得这个 MTIFPGKVAL?
谢谢!
该模块是钝化的、文档也并非总是100%正确。 实际上、我记得其中一个示例(可能是您提到的示例)实际并不能按 TI 预期工作。 在我的应用中、我为我的输出脉冲实现了一个 Timer_B 实例。 如果您想要一致的输出频率、则尤其需要此功能;MTIF 不输出稳定的频率、帧结束时总会有脉冲缺失。
请务必仔细阅读《用户指南》(SLAU367)第23章、以设置和更新输出。 根据我过去的测试、有些描述不正确、因此需要进行一些试错。 例如、表23.1和 MTIFPGCNF 寄存器说明不一致;一种状态 PGFs_0为16Hz 电网频率、而另一种状态为8Hz 电网频率。
PGF 本质上限制了输出脉冲速率。 例如、PGFS_5使用这种格式 电网 频率设置为256Hz。 这意味着您只能输出128Hz 的脉冲速率。 但是、在每个"帧"中、保留了其中一个时隙、用于更新下一帧、并且不会输出脉冲。 使用 PGFS_5、您可以在一秒内输出从0到多达127个脉冲(帧持续时间)。 您需要从仪表中找出每秒的最大脉冲数、并选择正确的 PGFs 值。
KVAL 是指每个"帧"输出多少个脉冲。 在您的示例中、PGFs_7根据寄存器说明表示1024Hz 的网格频率、理论上指的是250ms 帧持续时间。 如果您希望在一秒内产生200个脉冲、则应将 KVAL 设置为50、因为一秒内有四帧。 选择 PGF 可以获得1秒的帧持续时间、KVAL 将直接是单秒内输出的脉冲数。
尊敬的 Seth:
感谢您提供的信息。 但我仍然有问题。 对于我来说、是使用 PGFS_0或 PGFS_7、还是其他类型、限制始终为每帧127个脉冲。
这是完全令人困惑的东西。 正如您在 msp430fr6043中所说的、它与 SLAU367中的不同。 如果可能、您能否与我分享您的 Timer_B 代码? 可能会有所帮助。
限制始终为每帧127个脉冲
正确、PFGS 值仅限制输出脉冲速率。 正如我在原帖中所提到的、如果您对每秒输出频率/脉冲数有要求、则需要选择正确的 PFGS 值。
在32Hz 脉冲速率下、输出127个脉冲(4秒*每秒32个脉冲=128个脉冲)需要~4秒、而在128Hz 输出速率下、输出时间略小于1秒(1秒*每秒128个脉冲=128个脉冲)。 另一个示例是1024 Hz 输出速率、即125毫秒的帧持续时间、0.125秒* 1024个脉冲/秒=128个脉冲。 但是、MTIF 需要时间来更新下一帧、这就是它仅允许每帧最多127个脉冲而不是128个脉冲的原因。