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

后台进程

在后台执行基于样本的时间关键型进程。后台处理的流程很简单,该进程通过采样完成中断的触发以采样率开始。然后,后台进程:

  • 从电压和电流 ADC 通道捕获数据
  • 执行电压样本处理
  • 电流样本处理
  • 功率处理
  • 线路频率处理
  • 触发前台进程

图 2-5 展示了系统功能图,两个 SD24 ADC 通过(校准和编程的)分数延迟从电压和电流通道中采样。然后,样本通过直流去除滤波器。每个直流去除滤波器通过分析每个样本来动态跟踪 ADC 和信号的直流偏移,并在将样本传递到进一步处理之前去除直流(来自信号和 ADC 直流偏移)。如果工作模式为直流模式,则直流去除滤波器仅去除 ADC 的直流偏移。

然后,电流样本和电压样本进行平方和累加得到均方根电流 (Irms) 和电压 (Vrms)。电流样本还与具有适当额外相位延迟(如果需要)的电压样本相乘并累加,来获得有功功率 (Pactive);并与具有相应的 90° 相移的电压样本相乘并累加,来获得无功功率 (Preactive)。

内部生成的与交流电压输入同步的纯正弦波振幅和相位连同 90° 相移版本用于与电流样本相乘并累加,来获得基波有功和基波无功功率。

周期检测机制通过检查预定义时间内的过零数来检测是否存在交流信号。如果过零数小于预期过零数减 1,则确定其处于直流模式,否则处于交流模式。当预定义的确定间隔设置为 80ms 时,这对于 25Hz 以上的频率非常适用。

在 4 个交流周期(或直流模式下为 80ms)之后,系统会设置一个标志,表明有需要处理的结果。然后,该标志触发系统执行缩放,并将这些累加值转换为具有适当单位(V、A、W 等)的值。

GUID-3620A820-4430-4511-9780-D20F4B3F034B-low.gif图 2-5 系统功能图