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

准备要运行的应用程序代码

  1. 启动 IAR5.5 Embedded Workbench IDE,然后点击“File”→“Open”→“Workspace”。
  2. 当提示打开工作区时,选择“emeters.eww”。
    GUID-711646EF-C78C-48E7-A9CE-8BCE495D4325-low.gif图 9-1 打开工作区
  3. 选择“Workspace”窗口底部的“emeter-app-i2041”工程选项卡。
  4. 通过右键点击工程名称并从弹出菜单中选择“Options…”来检查工程选项,如图 9-2 所示。
    GUID-4134801B-4A0A-47BB-995E-D6067E044A39-low.gif图 9-2 工程选项卡
  5. 显示选项后,选择左侧列中的“C/C++ Compiler”,然后选择右侧的“Optimizations”选项卡,检查优化设置是否如图 9-3 所示。
    GUID-410124B2-F9E1-4573-84AF-22B8DDF6F6B8-low.gif图 9-3 优化选项
  6. 在“Setup”选项卡的左侧列中选择“FET Debugger”。EVM 使用 Spy-Bi-Wire 进行代码下载和调试。检查以确保选项如图 9-4 所示。
    GUID-06EE47F3-403D-4872-B819-743F262BEA0E-low.gif图 9-4 调试器选项
  7. 选择“Download”选项卡。在“Flash erase”下,请勿选择“Erase main and Information memory”;该选项会擦除两组数据,无法恢复。相反,请选择“Erase main memory”作为下载选项以保留以下出厂设置参数:系统时钟校准、ADC 校准和内部基准校准(图 9-5)。但是,存储在主存储器中的计量校准(例如 VGAIN、IGAIN、PGAIN 等)始终会在下载后被擦除。选择“Erase main memory”作为下载选项以保留出厂设置参数。
    GUID-179EB650-D035-4132-A16F-CBBEF472F116-low.gif图 9-5 下载选项
  8. 完成所有更改后,点击“OK”。
  9. 通过右键点击工程并从弹出菜单中选择“Rebuild All”来重新编译工程(请参阅图 9-6)。在重新编译过程中会报告三条警告(请参阅图 9-6),可以放心地忽略这三条警告。要打开工程工作区,修改代码,编译和下载代码,必须使用有效的许可证安装 IAR Embedded Workbench® 5.5。如果没有可用的有效许可证,仍然可以下载目标代码。有关下载过程,请参阅节 9.3
    GUID-58115C1A-C623-4E59-9799-F00F9B8D7418-low.gif图 9-6 编译应用程序
    GUID-9090B7A0-C030-4CB5-804E-25BE3DE84025-low.gif图 9-7 警告
  10. 确保 J8 上的跳线正确短接。通过一条扁平电缆将 14 引脚连接器 P1 连接到 MSP-FET430UIF,如图 9-8 所示。
    警告:

    调试接口未隔离;请确保在连接交流或直流高电压时在 EVM 和用于调试的 PC 之间实现适当的隔离。

    对于 EVM 运行,连接调试接口是可选的。EVM 可以在不连接调试器的情况下独立运行。

    GUID-6B7DC1F3-F6D6-4D81-9914-5EB07510E1B7-low.gif图 9-8 连接 EVM 和 FET
  11. 点击“Download and Debug”按钮开始下载和调试,如图 9-9 所示。
    GUID-5162FFE1-85EE-4D5B-BA9A-24943ACBAC99-low.gif图 9-9 代码下载
  12. 下载完成并成功之后,将显示如图 9-10 所示的屏幕。点击“Go”开始运行应用程序。
    GUID-9F9EE0EA-89F0-444A-87B5-E6D90F2FED99-low.gif图 9-10 调试器屏幕
    GUID-7F89B40F-B241-4ED5-A2BE-5D92CCEAB424-low.png图 9-11 EVM 运行