ZHCACO0A august   2014  – may 2023 MSP430I2040 , MSP430I2041

 

  1.   1
  2.   使用 MSP430I2040 的单相和直流嵌入式计量(功率监视器)
  3.   商标
  4. 引言
    1. 1.1 安全性和预防措施
    2. 1.2 特性
  5. 设计详情
    1. 2.1 方框图
    2. 2.2 硬件设计
      1. 2.2.1 接口电路
      2. 2.2.2 11
      3. 2.2.3 分流电阻器
      4. 2.2.4 分压器电路
      5. 2.2.5 布局注意事项
      6. 2.2.6 分流传感器焊盘设计
    3. 2.3 软件设计
      1. 2.3.1 工具套件包
      2. 2.3.2 计量计算引擎
      3. 2.3.3 后台进程
      4. 2.3.4 相位校正
      5. 2.3.5 频率测量和周期跟踪
      6. 2.3.6 周期跟踪和前台进程触发
      7. 2.3.7 前台进程
  6. 校准技术
    1. 3.1 引言
    2. 3.2 校准技术
      1. 3.2.1 校准设置
        1. 3.2.1.1 仪器
        2. 3.2.1.2 设置
    3. 3.3 校准过程
      1. 3.3.1 交流和直流参数校准
      2. 3.3.2 补偿电阻和电容校准
      3. 3.3.3 电流交流偏移校准
      4. 3.3.4 电压交流偏移校准
      5. 3.3.5 相位校正校准
      6. 3.3.6 直流参数校准
  7. 硬件设置
    1. 4.1 EVM 的顶视图
    2. 4.2 EVM 的底视图
    3. 4.3 硬件设置过程
      1. 4.3.1 设置 EVM 的电源
      2. 4.3.2 设置串行通信接口
      3. 4.3.3 设置线路输入和负载输出
      4. 4.3.4 设置调试接口
  8. 校准器软件
    1. 5.1 软件包内容
    2. 5.2 设置 PC 软件工具
      1. 5.2.1 最低系统要求
      2. 5.2.2 安装软件
      3. 5.2.3 配置软件
    3. 5.3 仪器
  9. 操作 PC 软件工具
    1. 6.1 引言
    2. 6.2 开始使用 EVM
    3. 6.3 已知问题
  10. 串行通信命令
    1. 7.1 引言
    2. 7.2 通信协议
      1. 7.2.1 轮询模式
        1. 7.2.1.1 命令和响应帧
    3. 7.3 命令
      1. 7.3.1  HOST_CMD_GET_METER_NAME
        1. 7.3.1.1 命令格式
      2. 7.3.2  HOST_CMD_GET_METER_VER
        1. 7.3.2.1 命令格式
      3. 7.3.3  HOST_CMD_GET_METER_CONFIGURATION
        1. 7.3.3.1 命令格式
        2. 7.3.3.2 参数定义
      4. 7.3.4  HOST_CMD_GET_RTC
        1. 7.3.4.1 命令格式
      5. 7.3.5  HOST_CMD_ALIGN_WITH_CALIBRATION_FACTORS
        1. 7.3.5.1 命令格式
      6. 7.3.6  HOST_CMD_SET_PASSWORD
        1. 7.3.6.1 命令格式
      7. 7.3.7  HOST_CMD_GET_READINGS_PHASE_N
        1. 7.3.7.1 命令格式
      8. 7.3.8  HOST_CMD_GET_EXTRA_READINGS_PHASE_N
        1. 7.3.8.1 命令格式
      9. 7.3.9  HOST_CMD_SUMCHECK_MEMORY
        1. 7.3.9.1 命令格式
      10. 7.3.10 HOST_CMD_CLEAR_CALIBRATION_DATA
        1. 7.3.10.1 命令格式
      11. 7.3.11 HOST_CMD_SET_CALIBRATION_PHASE_N
        1. 7.3.11.1 命令格式
      12. 7.3.12 HOST_CMD_GET_CALIBRATION_PHASE_N
        1. 7.3.12.1 命令格式
      13. 7.3.13 HOST_CMD_SET_CALIBRATION_EXTRAS
        1. 7.3.13.1 命令格式
      14. 7.3.14 HOST_CMD_GET_CALIBRATION_EXTRAS
        1. 7.3.14.1 命令格式
  11. 固件和嵌入式计量库 API
    1. 8.1 引言
    2. 8.2 嵌入式计量库 API
      1. 8.2.1 嵌入式计量库函数调用
        1. 8.2.1.1 用于计量引擎控制的函数
          1. 8.2.1.1.1 用于计量引擎控制的函数
          2.        int metrology_init (void)
          3.        int metrology_init_from_nv_data (void)
          4.        void align_metrology_with_calibration_data (void)
          5.        void metrology_switch_to_normal_mode (void)
          6.        void metrology_init_analog_front_end_normal_mode (void)
          7.        void metrology_disable_analog_front_end (void)
        2. 8.2.1.2 计量引擎初始化过程
        3. 8.2.1.3 用于计算和读取读数的函数
          1. 8.2.1.3.1 用于计算和读取读数的函数
          2.        power_t calculate_phase_readings (void)
          3.        power_t active_power (int ph)
          4.        power_t reactive_power (int ph)
          5.        power_t apparent_power (int ph)
          6.        power_t fundamental_active_power(int ph)
          7.        power_t fundamental_reactive_power(int ph)
          8.        power_factor_t power_factor (int ph)
          9.        rms_voltage_t rms_voltage (int ph)
          10.        rms_voltage_t fundamental_rms_voltage(int ph)
          11.        thd_t voltage_thd(int ph)
          12.        rms_current_t rms_current (int ph)
          13.        rms_current_t fundamental_rms_current(int ph)
          14.        thd_t current_thd(int ph)
          15.        int16_t mains_frequency (int ph)
          16.        uint16_t phase_status (int ph)
      2. 8.2.2 嵌入式计量库回调
      3. 8.2.3 应用程序级校准函数
        1. 8.2.3.1 用于读取和写入校准参数的函数
          1. 8.2.3.1.1 用于读取和写入校准参数的函数
          2.        int get_calibration_status (void)
          3.        void set_calibration_status (int value)
          4.        int clear_calibration_data (void)
          5.        int16_t get_temperature_intercept (void)
          6.        int16_t get_temperature_slope (void)
          7.        void set_temperature_parameters (int16_t temperature_at_calibration, int16_t temperature_sensor_intercept, int16_t temperature_sensor_slope)
          8.        calibration_scaling_factor_t get_P_scaling (int phx)
          9.        void set_P_scaling (int phx, calibration_scaling_factor_t value)
          10.        calibration_scaling_factor_t get_V_rms_scaling (int phx)
          11.        void set_V_rms_scaling (int phx, calibration_scaling_factor_t value)
          12.        int16_t get_v_dc_estimate (int phx)
          13.        int16_t get_initial_v_dc_estimate (int phx)
          14.        void set_v_dc_estimate (int phx, int16_t value)
          15.        int32_t get_v_ac_offset (int phx)
          16.        void set_v_ac_offset (int phx, int32_t value)
          17.        calibration_scaling_factor_t get_I_rms_scaling(int phx);
          18.        void set_I_rms_scaling(int phx, calibration_scaling_factor_t value);
          19.        int32_t get_i_dc_estimate(int phx);
          20.        int32_t get_initial_i_dc_estimate(int phx)
          21.        void set_i_dc_estimate(int phx, int32_t value);
          22.        int32_t get_i_ac_estimate(int phx);
          23.        void set_i_ac_offset (int phx, int32_t value)
          24.        uint16_t get_compensate_capacitor_value (int phx)
          25.        void set_compensate_capacitor_value (int phx, uint16_t value)
          26.        uint16_t get_compensate_resistance (int phx)
          27.        void set_compensate_resistance (int phx, uint16_t value)
          28.        int16_t get_phase_corr (int phx)
          29.        void set_phase_corr (int phx, int16_t value)
      4. 8.2.4 设置默认校准参数
  12. 示例应用程序代码
    1. 9.1 引言
    2. 9.2 准备要运行的应用程序代码
    3. 9.3 在没有 IAR 许可证的情况下下载
  13. 10硬件设计文件
    1. 10.1 封装
    2. 10.2 原理图
  14. 11EVM 规格和性能
    1. 11.1 EVM 规格
  15. 12在 MSP430i2040 和 MSP430i2041 上运行
    1. 12.1 164
  16. 13修订历史记录

开始使用 EVM

当 EVM 通电后,七个 LED 中的一些 LED 会闪烁或亮起,来指示其运行状态。一些 LED 未使用;可以根据需要更改提供的源代码以使用所有 LED。表 6-1 展示了 LED 指示状态列表。

表 6-1 LED 指示状态
LED状态指示
LED1打开后台操作正在运行
LED1OFF后台操作已完成
LED2打开电压负半周期
LED2OFF电压正半周期
LED3打开未使用
LED3OFF未使用
LED4打开前台操作正在运行
LED4OFF前台操作已完成
LED5打开EVM 处于交流模式测量
LED5OFFEVM 未处于交流模式测量
LED6打开EVM 处于直流模式测量
LED6OFFEVM 未处于直流模式测量
LED7打开有功电能脉冲正在输出
LED7OFF有功电能脉冲空闲

EVM 现在已为运行做好准备,启动文件夹“calibration-runtime”中的软件“calibrator-20121120.exe”,开始与 EVM 通信。此时会显示如图 6-1 所示的窗口。按照 XML 文件“calibration-config.xml”中的定义,为仪表位置 1 分配了与 EVM 进行通信的串行端口,如果建立了从 PC 到 EVM 的通信,[Comms] 指示器会变为绿色,并且在通信发生时在红色和绿色之间闪烁。

GUID-F6AD4313-1D95-479E-BF32-A7EE6DCD4500-low.gif图 6-1 校准器软件启动窗口

点击“Meter status”窗口中的 [Comms] 指示器,如图 6-2 所示。

GUID-9E7C7A43-6EDD-45CA-B8B5-2DB80BCBA34D-low.gif图 6-2 仪表状态窗口

该窗口显示仪表的当前读数。如果 EVM 不支持特定的读数,则读数框的背景为灰色。如果来自 EVM 的读数与该框中的读数之间存在很大的差异,则该框变为红色。如果来自 EVM 的读数具有相当小的差异,则该框变为黄色。如果读数具有很小的差异,则该框变为绿色。请注意,PC 上的软件每秒读取一次 EVM,该软件还会对读取的数据求平均值,因此,更新速率比 EVM 的更新速率慢。

该窗口的底部有四个按钮:

  1. 点击“Meter consumption”按钮,会打开“Meter consumption”窗口,但该 EVM 不支持此功能。“Meter consumption”不提供任何有用的信息。
  2. 点击“Meter calibration factors”按钮,会打开“Meter calibration factors”窗口(请参阅图 6-3)。该窗口中显示当前校准系数值。
    GUID-56384911-287E-4779-A014-92F0905E7015-low.gif图 6-3 “Meter calibration factors”窗口
  3. 点击“Meter features”按钮,会打开“Meter features”窗口(请参阅图 6-4)。“Meter features”窗口中报告 EVM 的支持功能。图 6-4 仅展示了仪表功能窗口的外观,但这并不是 EVM 的确切功能。
    GUID-DD81BDF3-678A-4F19-A0EA-45D47E1F10D8-low.gif图 6-4 “Meter features”窗口
  4. 点击“Manual cal.”按钮,会打开“Meter error”窗口(请参阅图 6-5)。在该窗口中,可以通过输入 EVM 读数相对于参考表读数的百分比误差来调整校准系数值。有关执行校准的技术和过程的更多详细信息,请参阅节 3
    GUID-84B9F1D4-A3CC-464A-8391-8F26E9BB9E18-low.gif图 6-5 “Meter error”窗口

要修改校准系数,需要在百分比误差中输入校正值。方程式 23 展示了百分比误差的计算方法:

方程式 23. GUID-33B00CBE-16CB-4F78-845B-C4F79B18E61C-low.gif

在“Meter error”窗口的相应框中输入百分比误差(请参阅图 6-5)。点击“Update meter”,将计算出更新后的校准值,这些值会被写入 EVM。相应的值将反映在“Meter calibration factor”窗口中。