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.

[参考译文] MSP430F6779A:EMDC 允许的最大禁用中断时间。

Guru**** 2393725 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1245419/msp430f6779a-maximum-disable-interrupt-time-allowed-by-the-emdc

器件型号:MSP430F6779A

您好!

我想确认 EMDC 允许的最大禁用中断时间。

EMDC 版本: 电能测量设计中心版本1_30_00_00

采样频率(Hz):4096
过采样率(OSR):256
SMCLK 频率(Hz):25165824
交流主频率(Hz):60
电压传感器数量:1
电流传感器数量:2

我的假设:

EMDC 允许的最大禁用中断时间将为

=(1/4096Hz)-在 SD24BISR 上的总处理时间。

= 139.14微秒(实验值)

是否正确?

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

    尊敬的 Tink:

    您试图通过此实现的目的是什么?

    可以按照自己的时间长度来禁用中断、但是缺少中断可能会导致数据传输出现问题。 如果你只从 ADC 端禁用中断、那么你可能会错过随附 GUI 中的 UART 请求。 否则、如果你的时序与 ADC 中断关闭、你将丢失转换完成时的触发信号。 但是、如果您只关注 ADC、那么您可以执行采样+转换时间、我建议启用比 ADC 过程总时间更短的中断。

    此致、

    卢克

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

    Luke、您好!

    感谢您的信息。

    在我们的应用中、有时需要禁用主循环程序中的中断、以防止主循环和中断之间共享数据问题以及当更改关键寄存器的配置时。

    因此、我们想知道 EMDC 仍然正常运行的禁用中断的最大值。

    时序低于正确值(在主循环禁用中断中、不应超过139.14us、以便及时发生 ADC 的下一个中断)。

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

    尊敬的 Tink:

    基于 使用 MSP430F677x 实施三相电子电表 、ADC 中断将 基于采样频率(4096)触发。 后台进程是我建议不要调整的部分、并会尝试避免打乱时间安排。  

    最好用布尔值来锁定这些更改、而不是禁用中断? 看起来您不希望在后台进程会更改/使用寄存器的竞态条件下运行。 在更改这些关键寄存器之前、我会检查一个标志、以便知道我是否正在工作。 例如、就在 ADC 开始转换调用后、您可以将布尔值设置为 True、然后在转换完成后、您可以将相同的布尔值设置为 false。 然后、当您想要更改关键寄存器/变量时、可以提前检查标志以查看变量是否在使用中。  

    本质上而言、信号量用于锁定寄存器/变量以防止更改。

    此致、

    卢克

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

    Luke、您好!

    感谢您的建议。

    但是、我们仍然禁用中断以进行预防(现在无法更改方法)。

    因此、我们必须确保当主循环禁用中断<= 139.14us 时、EMDC 能够正确操作。 对吧?

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

    尊敬的 Tink:

    139.14us 小于4096次中断/秒、因此如果在 ADC 开始转换后禁用中断、并在139.14us 后重新启用中断、那么它不应对 ADC 采样造成任何干扰。 但我不能保证库能充分工作、因为它超出了我们所做测试的范围。 我建议对此实现进行全面测试、以了解它是否满足您的应用要求。

    此致、

    卢克

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

    Luke、您好!

    谢谢你。

    这意味着我们可以在高达244.14us (1/4096Hz)的频率下禁用中断、对吧?

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

    尊敬的 Tink:

    这将是 ADC 不会错过触发的最长时间、我应为任何变化提供几个时钟周期。 当然、这没有考虑像 UART 这样的其他中断。 同样、我建议测试 禁用时间、以确保其符合您的目标流程。

    此致、

    卢克