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修订历史记录

计量计算引擎

本设计使用 MCU 上的三个 Σ-Δ ADC:一个用于电压测量,一个用于电流测量,另一个连接到内置温度传感器进行温度测量。Σ-Δ ADC 在硬件固定的大约 1.024MHz 调制器频率下运行,采样频率是通过将调制器频率除以 128 等于 8kHz 得出的,这为我们提供了 4kHz 的奈奎斯特带宽。该带宽足以覆盖 60Hz 交流的 66 次谐波和 50Hz 交流频率的 80 次谐波,因为由于被监控的开关电源的性质,服务器电源监控通常需要更宽的带宽。

后台处理在一个时间关键型循环中执行其操作,该循环由 ADC 以采样率触发。它在 ADC 的中断服务例程中运行并自动处理。它根据从电压和电流 ADC 通道收集的信息执行实际的样本计算。将时间要求不高的进程移交给前台处理。

前台处理是通过以报告和更新速率完成后台处理来触发的。后台进程在变量 phase_state 中设置标志 PHASE_STATUS_NEW_LOG 以指示有数据准备好由前台进程处理。然后,应用程序需要通过调用 calculate_phase_readings () 来监视该标志以触发前台进程。

在实际计算中,计量计算采用以下公式:

方程式 2. GUID-517E81C9-EE1A-42EB-965C-09799A5C75C4-low.gif
方程式 3. GUID-730481A0-CD62-40C1-9BBA-40329B72F155-low.gif
方程式 4. GUID-07CA057A-66E5-40FF-96EB-CF21A6C6A94F-low.gif
方程式 5. GUID-22C46E71-FCA0-4FC3-AAFD-19423AA41049-low.gif
方程式 6. GUID-AB40C732-6EC2-40EE-A57A-19D6344859FD-low.gif
方程式 7. GUID-68B3CA8D-0BAB-425D-A3E4-8A1196DFFABD-low.gif
方程式 8. GUID-B1C4DAF1-4B9D-4BA7-ABF0-E63CD17ECDE9-low.gif
方程式 9. GUID-BD58817E-5541-4893-B4CB-931798E6B608-low.gif
方程式 10. GUID-1C7A6B8B-CF15-4E52-B424-5C73823DCB8C-low.gif
方程式 11. GUID-0F4F9397-EA3E-44E4-84F4-A1045DDB0034-low.gif
方程式 12. GUID-976DD859-2E8F-45ED-9FD2-521E8681CD9D-low.gif
方程式 13. GUID-5A20E94B-1F59-4FEE-BF37-FBA2C4E71760-low.gif