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.

[参考译文] MSP430F5438A:关于脉冲周期捕捉和边沿计数

Guru**** 2538950 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1200495/msp430f5438a-about-pulse-cycle-capture-and-edge-counting

器件型号:MSP430F5438A

大家好、

我需要收集 15个脉冲信号的周期、并计算每个脉冲的上升沿数量。

我在430产品线中选择了5438A。

捕获结果刚好是15次。

以 timerA0为例、它可以捕获5个脉冲信号。

但是、CCR0有一个独立的中断、从 CCR1到 CCR4、它们共享一个中断信号。

timerA1的情况与之类似、CCR0具有独立中断、并且从 CCR1到 CCR2、它们共享中断信号。

timerB 也是如此、CCR0具有独立中断、并且从 CCR1到 CCR6、它们共享中断信号。

每个定时器的时钟通过 XT2高速时钟的频率分频(通过32分频)来获得。 目前、XT2配备了16MHz 晶体。

 我要收集的信号的最小周期约为5ms。 测试过程中、我 同时将周期为5ms 的 PWM 波连接到15个捕捉输入引脚、并且没有让430进入低功耗模式。 这是我的测试结果。

可以看到、脉冲计数通道之间存在一些差异。

当然、我的测试有点极端。 一个5ms PWM 同时连接到15个捕捉输入引脚。 实际信号源边沿是顺序的。

问题1. 由于有一个常见的中断信号、并且三个定时器的中断优先级也不同、 是否会出现脉冲边沿丢失的情况?

问题2. 如果 XT2的主频率增加至24MHz、并且使用了高精度、低温漂有源晶体振荡器、 主时钟和子时钟都使用该24MHz 时钟、每个计时器的计数时钟通过子时钟的频分获得、脉冲边沿在检测期间丢失的情况是否会改善?

提高主频率的目的是缩短处理器中断函数的处理时间。 将当前晶体替换为有源晶体振荡器是为了提高时钟精度。

问题3. 数据通过串行端口进行传输。 如果 引入串行端口以发送中断、在检测期间丢失脉冲边沿的可能性是否会增加?

此致、

Katherine

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

    捕获的值会保留在 CCR 中、直到下一次捕获、因此这里的危险是溢出。 如果 ISR 执行时间总数(包括 UART 中断)超过脉冲周期(本例中为2492个定时器周期)、您将丢失捕捉。 这种症状类似于 您看到的 TA1CCR0的2倍时间差。

    令人有点好奇的是、即使在单个计时器内、实际捕获值也会有所不同。 尤其是在 Δ 时间不发生变化的情况下。 您的电线使用多长时间? 您是否能够看到传播延迟?

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

    您好!

     

    Bruce 已经谈到了您的第一个问题、但要重申的是、保持 ISR 短路将减少丢失的脉冲边沿数量。

    对于问题2、增大主时钟的频率将有助于进行检测。 提高时钟精度可提高计时精度。

    对于问题3、使用串行端口传输您的数据以发送中断可能会导致您丢失脉冲边沿。 这可以通过使您的 ISR 保持较短来减少。 我还建议使用优先级低于计时器优先级的 UART 中断。 如果确实缺少了几个脉冲边沿、请考虑对 UART 中断使用轮询方法。

     

    谢谢!

    苏珊

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

    您好、 Susan:

    感谢你的帮助。

    我还建议使用优先级低于计时器优先级的 UART 中断。 如果确实缺少了几个脉冲边沿、请考虑对 UART 中断使用轮询方法。

    这是一个很好的建议。 我以前没想到这一点。 幸运的是、我现在正在使用 USCI_A3中断、其优先级低于每个计时器中断的优先级。

    电路调整完毕后、我会将测试结果更新到这篇文章中。

    此致、

    Katherine