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.

[参考译文] MSP430I2041:TIDM-SERVER-PWRMON:计量软件问题

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/783320/msp430i2041-tidm-server-pwrmon-metrology-sw-questions

器件型号:MSP430I2041
主题中讨论的其他器件: TIDM-TWOPHASEMETER-I2040TIDM-SERVER-PWR-MON

支持、

我正在使用 TIDM-SERVER-PWRMON 套件和软件。

1.验证读数是否每4个交流周期更新一次?  此设置在代码中的什么位置?  可以更改吗?  bq/FG 处理所需的最短时间是多少?

2.验证是否对特定基准(电流、电压等)的读数取平均值?  即、如果电流瞬间从5A 跃升至20A、读数将发生什么变化?

3.验证 UART GET_READ CMD 是否发送小于4个交流周期、数据将相同。  频繁的 UART 请求是否会影响处理?  即暂停新的计算数据。

4.当系统启动时,从复位开始,即使没有负载,初始电流读数也很高。  不应该为零?

在设计文档 SLAA638中、"host_CMD_GET_Consumpt_PHASE_1"不详细?

6.我找不到函数: energy_consumed[PHX][app_active_energy_exported];

7.没有"写入能耗数据"的命令。  这将用于主机在 MSP 断电并从零开始时更新电能数据。  我的目的是编写一个新的 CMD 来执行此函数。

此致、

Marc

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

    我将与我们的电子计量专家联系、并将与您联系。 感谢您的耐心等待!

    此致、

    Matt
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我犯了一个错误。 HOST_CMD_GET_Consumpt_PHASE_1已在代码中。 它不在设计文档中。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Marc:

    再次感谢您将这些问题发布到 E2E。 我将把这些问题拆分、并尝试用块来解决它们。

    [引用用户="PathFinder ]1. 验证读数是否每4个交流周期更新一次?[/报价]

    过零在一段指定的时间内被计数。 如果未检测到预期的周期数、则会触发直流模式、并且每80ms 更新一次读数。

    Pathfinder 说:
    代码中的位置是此集

    交流周期数在'mode-template.h'文件中设置。 搜索#define REPORT_CYCLE。 在这里它等于4。

    #define OSR 128
    #define AVERAGE 3
    #define IEC_THD_SUPPTA///#UNDEF
    IEC_THD_SUPPT*
    
    ! 这将选择相位数。 //
    #define NUM_Phases 1
    #define REPORT_CYCLE 4
    #define capacitor_Compensate_on
    //#undef capacitor_Compensate_on 

    [报价用户="Pathfinder "]进行 bq/FG 处理所需的最短时间是多少?

    我不确定。 这可能取决于采样频率、但您可以始终在 ISR 和后台/前台进程中切换 GPIO。

    [引用用户="PathFinder ]2. 验证是否对特定基准(电流、电压等)的读数取平均值?  即、如果电流瞬间从5A 跃升至20A、读数将发生变化的速率是多少?[/引述]

    这主要受采样频率的限制。 显然、如果报告频率大约为1秒、这也会限制结果的显示速度、但不一定是测量的速度。

    [引用用户="PathFinder ]3. 验证是否发送 UART GET_REING_CMD 小于4个交流周期、数据将相同。  频繁的 UART 请求是否会影响处理?  即暂停新的计算数据。

    4个交流周期后、结果由后台进程计算。 如果您尝试每80ms 或4个周期读取一次结果、则不会计算任何结果、只是从 ADC 中捕获。 最好了解背景结果准备好根据查询频率的频率。

    我将在以后的答复中回答其他问题。

    此致、

    James

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

    James、

    我必须错过一些东西。  我在 metal量 模板.h 中没有这些#defines?  我没有 OSR、REPORT_CYCLE、capacitor_Compensate_on 或 AVERAGE?

    每秒进行 UART 轮询时、从 MSP 更新值需要~3秒。   

    此致、

    Marc

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

    您是否在 Submeter i2040 8k_DC_THD_AUTO_OSR_IAR5.5_TID\emeter-metro量\emeter-metro量-i2041\metro量-template.h 下查看"改进型模板.h"? 这就是我要提到的那个、因为这个项目是针对 MSP430i2041的。

    此致、

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

    James、

    是的。  metrology-template.h

    e2e.ti.com/.../metrology_2D00_template.h

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

    尊敬的 Marc:

    我在从 Web 下载的 TIDM-SERVER-PWRMON 文件中找不到该文件。 您能告诉我您在哪里找到了此文件吗? 是否确定您未使用 TIDM-TWOPHASEMETER-I2040代码或已更改的版本? 这是 TIDM-SERVER-PWRMON 软件中提供的'mode-template.h'文件。

    /*********
    * metrology-template.h - MSP430AFE253发布版本
    *
    *版权所有(C) 2011德州仪器(TI)公司- http://www.ti.com/
    *
    
    只要
    满足以下条件*,就允许以源代码和二进制形式重新分发和使用*无论是否进行修改:
    *
    *源代码的重新分发必须保留上述版权
    声明*、此条件列表和以下免责声明。
    *
    *二进制形式的再发行必须在
    
    *
    发行版随附的*文档和/或其他材料中复制上述版权声明、本条件列表和以下免责声明。
    *
    *未经
    
    事先书面许可、不得使用德州仪器公司的名称或*其贡献者的名称认可或推广从本软件派生的产品*。
    *
    *本软件由版权所有者和贡献者
    *按原样"提供、
    
    且不承认任何明示或暗示的保证、包括但不限于*特定用途*的适销性和适用性的暗示保证。 在任何情况下、版权
    *所有者或贡献者都不对任何直接、间接、偶然、
    *特殊、模范、 或相应的损害(包括但不
    限于*采购替代产品或服务;丧失使用、
    *数据或利润; 或业务中断)、但出于
    任何*责任理论、无论是合同、严格责任还是侵权
    行为*(包括疏忽或其他原因)、即使
    被告知可能会造成此类损坏、也是出于此类责任理论。
    *
    * /
    #define OSR 128
    #define Average 3
    #define IEC_THD_support
    //#undef IEC_THD_support
    
    /*! 这将选择相位数。 //
    #define NUM_Phases 1
    #define REPORT_CYCLE 4
    #define capacitor_Compensate_on
    //#undef capacitor_Compensate_on
    
    #define Wire_resistance 补偿
    //#undef wire_resistence_Compensate"
    
    //*! 此开关可监控中性导线以实现反欺诈目的、如所示
    单相或三相仪表。 //
    //#define nutal_monitor_support
    #undef nutal_monitor_support
    //! 此开关为电流信号选择使用24位值、其中为
    ADC 支持这一点。 如果未定义此符号、则使用16位值。
    对于该电压、使用超过16位的电位即可获得任何增益
    信号、那么我们不会。 */
    #define 二十四位
    
    /*! ADC 通道分配*/
    #define PHASE_1_VOLTGE_ADC_CHANNEL 0
    #define PHASE_1_CURRENT_ADC_CHANNEL 1
    //#define NEL_CURRENT_ADC_CHANNEL 2
    #define TEMP_ADC_CHANNEL 2
    
    星! 对于使用的器件、SD16电压通道的增益设置
    SD16 Σ-Δ ADC。 这通常是 GAIN_1 (即 x1增益)。 */
    #define SD_VOLTGE_GAIN SD24GAIN_1
    
    /*! SD16的第一个电流通道通道的增益设置、
    SD16 Σ-Δ ADC 的器件的参考设计。
    必须将其设置为适合使用的分流器或 CT。 A 的典型值
    分流器为 GAIN_16 (x16增益)或 GAIN_32 (x32增益)。 A 的典型值
    CT 为 GAIN_1 (x1增益)或 GAIN_2 (x2增益)。 */
    #define SD_LIVE_CURRENT_GAIN SD24GAIN_16
    
    /*! SD16第二个电流通道通道的增益设置、
    SD16 Σ-Δ ADC 的器件的参考设计。
    必须将其设置为适合使用的分流器或 CT。 A 的典型值
    分流器为 GAIN_16 (x16增益)或 GAIN_32 (x32增益)。 A 的典型值
    CT 为 GAIN_1 (x1增益)或 GAIN_2 (x2增益)。 */
    #define SD_NEW_CURRENT_GAIN SD24GAIN_1
    
    #define SD_CLOCK _Division 16
    
    岁/*! 标称市电频率、以 Hz 为单位。 这用于设定市电频率
    并使其初始值快速稳定。 之后不使用它
    复位。 //
    #define MAIN_NOMINAL_FREQUENCY 50/*
    
    ! 这将选择用于骤降/骤升检测和功率计算的标称电压
    在跛行模式下、以伏特为单位*/
    #define MAIN_NOMINAL_VOLTAGE 220/
    
    *! 这将选择基准电流*/
    #define MAIN_BASE_CURRENT 5
    
    星! 这将选择最大工作电流*/
    #define MAIN_maximum_current 30
    
    //#define TEAGER_Kaiser_TEST_SUPPORTED
    #UNDEF TEAGER_Kaiser_TEST_SUPPORT*
    
    ! 此开关可实现市电频率测量。 这可以用作
    仪表功能。 如果使用非线性 CT 传感器、则可能是一项要求。 //
    #define MAIN_FREQUENCY 支持
    //#undef MAIN_FREQUENCY 支持
    
    /*! 这将选择支持 RMS 电压测量。 //
    #define VRMS_support
    
    #define VOLTGE_THD_SUPPTUNDEF
    VOLTGE_THD_SUPPTUNT#define
    
    
    FRACY_VRMS_SUPPT/
    #UNDEF FACT_VRMS_SUPPT*
    
    ! 这选择了对 RMS 电流测量的支持。 //
    #define IRMS_support
    
    #define CURRENT_THD_support
    //#undef CURRENT_THD_support
    
    #define Fundamental IRMS_support
    //#undef Fundamental _ IRMS_support
    
    #define Fundamental _ ACTIVE_POWER_support
    //#undef Fundamental _ active_power_support
    
    //*! 这选择了对无功功率测量的支持。 */
    #define REACLITY_POWER_SUPPIN支持
    //#undef REACLITY_POWER_SUPPINVINVE_SUPPINVINVE_SUPPINVE/#define
    
    FACLITY_REACLITY_POWER_SUPPINVE/*
    
    
    ! 这通过正交处理选择了对无功功率测量的支持。
    这仅在启用了无功功率支持时有效。 //
    #define revolated_power_by_quadory_support
    //#undef reated_power_by_quadory_support
    
    //*! 选择支持视在功率或 VA 功率测量。 */
    #define ANITICAL_POWER_SUPP횧 훺
    //#undef INITICE_POWER_SUPPLINVE_SUPPINVING_SUPPLUNT#define
    
    POWER_FACT_SUPPLITE///#undef
    POWER_FACT_SUPPLITE/*
    
    ! 微小的功率级别根本不应记录能量、因为它们可能只是四舍五入
    误差、噪声或仪表本身的功耗。 该值是截止水平、
    以毫瓦为单位。 */
    #define 残余功耗截止频率 2、500
    
    /*! 此开关选择对测量有功能耗的支持。 */
    #define ACTIVE_ENERGY _SUPPTON//#UNDEF
    ACTIVE_ENERGY _SUPPTE/*
    
    ! 这将设置仪表在每千瓦时产生的脉冲数
    其有源能量脉冲 LED/光耦合器/LCD 段。 它不会影响
    能量积累过程。 */
    #define ACTIVE_ENERGY _Pulses_PER_KW_HOUR 1000
    //#undef active_energy_pulses_per_KW_HOUR
    
    //*! 此开关选择对测量无功耗的支持。 //
    //#define revolated_energy_support
    #undef reated_energy_support
    //*! 能量脉冲 LED 导通时间的持续时间。 这是在中测量的
    ADC 采样(即增量1/3276.8 s)。 允许的最大值为255、给出了
    大约78ms 的脉冲。 163给出了50ms 的脉冲。 */
    #define energy_pulse_duration_Figure 163
    //#undef energy_pulse_duration 数字
    
    /*! 此开关允许使用 MSP430的内部温度二极管到
    测量仪表的温度。 //
    #define temature_support
    //#undef temature_support
    
    //*! 通常、仪表软件仅计算正确缩放的值
    电压、电流等、因为需要这些值。 定义
    启用定期更新的其他全局参数
    仪表收集的所有指标。 这通常效率较低、
    因为这意味着计算事情的频率比必要时要高。 不过、有些
    这可能更易于使用、因此可作为仪表的选择
    设计人员。 */
    #define recalculed_parameter_support
    
    /*! 这可以监控带电和中性点电流之间的平衡
    用于篡改检测。 //
    //#define PHASE_INDUAL_DETECHNOT_SUPPLUNDEF
    PHASE_INDETECHNOT_SUPPLUNTING//
    
    *! 这是一个漂移值、用于在查找时比较电流或功率
    生活与中立之间的不平衡。 3给出12.5%。 4给出6.25%。 这些是
    要使用的两个最常用的值。 宽松版本用于低功率级别、
    如果值不准确、并且严格的不平衡检查可能会导致错误
    结果。 */
    #define PHASE_INVITH_LEVEND_FRACASE 4
    
    星! 这是允许的不平衡比例的宽松版本、用于低电平
    功率/电流、其中功率(因此不平衡)测量值可能较小
    精确。 较严格的不平衡测量在高电平下可能会产生错误结果
    EMI 条件。 */
    #define PHASE_INALITH_RELAXD_FRA分数 2
    
    星! 这是必须同意的连续测量块的数量
    不平衡状态在我们接受它之前发生了变化。 */
    #define PHASE_INGAL_persistence_check 5
    
    星! 这是最小电流电平(跛行模式)和最小功率电平(正常)
    模式)、在该模式下、我们将检查相位不平衡(接地)情况。
    读数非常小、缺少有意义所需的精度和分辨率
    实时和中性之间的比较。 */
    #define PHASE_INALE_LDOPACT_THRESHOLD_CURRENT 50
    #define PHASE_INAIN_INDEAL_THRESHOLD_CURRENT 500
    #define PHASE_INALE_INDEV_CEST_THRESHOLD_POWER 20
    #define PHASE_INGON_Tight 阈值_POWER 2000
    
    年/*! 这将选择反向电源条件的检测。 //
    //#define PHASE_REGLEVE_DETECT_SUPPLIN支持
    #undef PHASE_REGREVE_DETECT_SUPPLIC支持
    
    //*! 这将选择将反向电源条件视为篡改。 //
    //#define PHASE_REGLEVE_ICS_MOVINVING_UNDEF
    PHASE_REGAL_IS /*
    
    ! 这是必须同意的连续测量块的数量
    反转的当前状态在我们接受它之前发生了变化。 */
    #define PHASE_REGAL_persistence_check 5
    
    星! 这是我们将检查反向的最小功率级别
    条件。 由于噪声、读数非常小并不是一个可靠的指标。 */
    #define PHASE_REGAL_THRESHOLD_POWER 2000
    
    年/*! 当只有一个导联时、这将从仅电流中选择操作
    正常工作、仪表由连接到的寄生 CT 电源供电
    导联。 这是为了反欺诈。 能量在中累积
    最高可能速率、假设为单位功率因数、并且标称电压*/
    //#define LIMP_MODE_support
    #undef LIMP_MODE_support
    
    /*! 如果支持跛行模式、这些将设置开关的电压阈值
    正常模式和跛行模式。 */
    #define LIMP_MODE_VOLTGE_THRESHOLD 50
    #define NORMAL MODE_VOLTGE_THRESHOLD 80
    
    /*! 如果支持跛行模式、这将设置阈值电流、以 mA 为单位、低于该值
    否不工作。 */
    #define LIMP_MODE_MINIMAL_CURRENT 800/*
    
    ! 在主 DSP 工作完成后、每个 ADC 中断都会调用此函数。
    它可用于自定义键盘操作等操作。 很重要
    这是一个非常短的例程、因为它是从主 ADC 中断调用的。 */
    #define custom_adc_interrupt () /**/ 

    此致、

    James

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    James、
    我使用 TIDM-SERVER-PWR-MON 作为基础。

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

    当系统启动时、从复位状态开始、即使没有负载、初始电流读数也会很高。 不应该为零?
    这可以通过校准器工具和未连接交流电的 TIDM-SERVER-POWER-MON 板实现。

    代码中是否有可以确保该值为零的位置?

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

    James、

    是否有关于如何在复位后处理高电流值的建议?

    谢谢、

    Marc

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

    如离线讨论的那样、这种行为很可能是由于滤波器在代码开始运行后趋稳所致。 请随时向我们发布。 谢谢。

    此致、

    James