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.

[参考译文] MSP430F67791:有关该库的问题是 EmSwLib.h (将能量分为导出和导入)

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1054953/msp430f67791-the-question-about-the-library-is-emswlib-h-dividing-energy-into-exports-and-imports

器件型号:MSP430F67791
主题中讨论的其他器件: MSP430F67641

我们将 MSP430F67791微控制器用于电量计。 在我们的执行中,必须将能源分为出口和进口。 emswlib.h 库的实现中没有此类除法。 库本身已关闭。


之前使用的是 MSP430F67641微控制器、因此支持将能量分配到导入和导出中。

请告诉我、我们如何有机会将有功和无功电能划分为进出口?

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

    尊敬的 Dennis:

    您能告诉我什么是导入和导出吗? 导入至何处并导出至何处?

    您能告诉我有关您的应用的方法吗、那么我可以帮助您思考如何为您提供帮助?

    为什么 F67641可以工作? 您是否在 其中使用旧的电表 driverlib?

    伊斯天

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

    你好。

    通过导入和导出、我的意思是将能量存储分为四个寄存器(Active+、Active-、Reactive +、Reactive -)
    因此、有功和无功电能不是根据绝对值而是根据符号值累加的。
    如果有功功率有+号、则累加有功电能+;如果有功功率有-号、则有功电能通过单独寄存器中的-号累加、 对于无功电能、它是相同的、因此电感能量和电容能量分别是累积的。
    下面是一张图片。
    是的、对于 F67641、我们使用了下面的旧驱动程序、也是旧驱动程序代码的一部分、在这里、您可以看到如何根据不同寄存器中的方向对累加的能量进行分频。

    #if defined(ACTIVE_ENERGY_SUPPORT)  ||  defined(TOTAL_ACTIVE_ENERGY_SUPPORT)
        APP_ACTIVE_ENERGY_IMPORTED,
        APP_ACTIVE_ENERGY_EXPORTED,
    #endif
    
    #if defined(REACTIVE_ENERGY_SUPPORT)  ||  defined(TOTAL_REACTIVE_ENERGY_SUPPORT)
        APP_REACTIVE_ENERGY_QUADRANT_I,
        APP_REACTIVE_ENERGY_QUADRANT_II,
        APP_REACTIVE_ENERGY_QUADRANT_III,
        APP_REACTIVE_ENERGY_QUADRANT_IV,
    #endif
    
    #if defined(ACTIVE_ENERGY_SUPPORT)
        *((uint64_t *) &tx16[1]) = energy_consumed[phx][APP_ACTIVE_ENERGY_IMPORTED];
        *((uint64_t *) &tx16[5]) = energy_consumed[phx][APP_ACTIVE_ENERGY_EXPORTED];
    #else
    
    #if defined(REACTIVE_ENERGY_SUPPORT)
        *((uint64_t *) &tx16[9]) = energy_consumed[phx][APP_REACTIVE_ENERGY_QUADRANT_I];
        *((uint64_t *) &tx16[13]) = energy_consumed[phx][APP_REACTIVE_ENERGY_QUADRANT_II];
        *((uint64_t *) &tx16[17]) = energy_consumed[phx][APP_REACTIVE_ENERGY_QUADRANT_III];
        *((uint64_t *) &tx16[21]) = energy_consumed[phx][APP_REACTIVE_ENERGY_QUADRANT_IV];
    #else

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

    尊敬的 Dennis:

    我明白了。 因此、您需要累加正能量和负能量 spready。

    随附的文件将告诉您 EMlib 如何计算结果。 或许可以提供一些帮助。

    e2e.ti.com/.../Energy-Library-Specifications-KV.docx-V5.pdf  

    由于 driverlib 对客户来说不是开源的、我认为您可以 在函数在 ADC ISR 中运行后对能耗结果进行一些比较。 然后 、您可以手动扩展正负结果。

    伊斯天

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

    你好。

    感谢您的回复。

    据我了解、在旧驱动程序中、数学和计算是通过硬件乘法器、累加器和汇编器插件执行的。 在 EMlib 库中、不清楚计算是如何进行的?

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

    它使用 IQmathlib。 对于 IQmathlib、它将自动使用硬件乘法器来执行计算。 此外、对于数学函数、它还使用汇编代码。  

    总之、很抱歉、我们没有计划向客户打开此版本的 EMlib。 我建议您根据高级参数处理该问题。 如果您遇到任何问题、请告诉我。