ZHCUB46 june   2023 ADS131M08 , MSPM0G1507

 

  1.   1
  2.   说明
  3.   资源
  4.   特性
  5.   应用
  6.   6
  7. 1系统说明
    1. 1.1 终端设备
    2. 1.2 电表
    3. 1.3 电能质量监测仪,电能质量分析仪
    4. 1.4 关键系统规格
  8. 2系统概述
    1. 2.1 方框图
    2. 2.2 设计注意事项
      1. 2.2.1 外部采用 TPS3840 电源电压监控器 (SVS)
      2. 2.2.2 使用 TMAG5273 线性 3D 霍尔效应传感器进行磁篡改检测
      3. 2.2.3 模拟输入
        1. 2.2.3.1 电压测量模拟前端
        2. 2.2.3.2 电流测量模拟前端
    3. 2.3 重点米6体育平台手机版_好二三四
      1. 2.3.1  ADS131M08
      2. 2.3.2  MSPM0G3507
      3. 2.3.3  用于驱动分段式 LCD 显示屏的 MSP430FR4131
      4. 2.3.4  TPS3840
      5. 2.3.5  THVD1400
      6. 2.3.6  ISO6731
      7. 2.3.7  ISO6720
      8. 2.3.8  TRS3232E
      9. 2.3.9  TPS709
      10. 2.3.10 TMAG5273
  9. 3系统设计原理
    1. 3.1  如何实现计量测试软件
    2. 3.2  计时系统
    3. 3.3  用于 GUI 通信的 UART 设置
    4. 3.4  实时时钟 (RTC)
    5. 3.5  MSP430FR4131 中的 LCD 控制器
    6. 3.6  直接存储器访问 (DMA)
    7. 3.7  ADC 设置
    8. 3.8  前台进程
      1. 3.8.1 公式
    9. 3.9  后台进程
    10. 3.10 软件函数 per_sample_dsp()
      1. 3.10.1 电压和电流信号
      2. 3.10.2 频率测量和周期跟踪
    11. 3.11 LED 脉冲生成
    12. 3.12 相位补偿
  10. 4硬件、软件、测试要求和测试结果
    1. 4.1 所需的硬件和软件
      1. 4.1.1 硬件
      2. 4.1.2 注意事项和警告
    2. 4.2 测试设置
      1. 4.2.1  将 TIDA-010243 连接到计量测试设备
      2. 4.2.2  电源选项和跳线设置
      3. 4.2.3  电表计量精度测试
      4. 4.2.4  查看计量读数和校准
        1. 4.2.4.1 从 LCD 中查看结果
        2. 4.2.4.2 从 PC 校准和查看结果
      5. 4.2.5  MSPM0+ MCU 的校准和闪存设置
      6. 4.2.6  增益校准
      7. 4.2.7  电压和电流增益校准
      8. 4.2.8  有源功率增益校准
      9. 4.2.9  偏移校准
      10. 4.2.10 相位校准
      11. 4.2.11 软件代码示例
    3. 4.3 测试结果
      1. 4.3.1 SVS 功能测试
      2. 4.3.2 电表计量精度结果
  11. 5设计和文档支持
    1. 5.1 设计文件
      1. 5.1.1 原理图
      2. 5.1.2 BOM
      3. 5.1.3 PCB 布局建议
      4. 5.1.4 布局图
      5. 5.1.5 Gerber文件
    2. 5.2 工具与软件
    3. 5.3 文档支持
    4. 5.4 支持资源
    5. 5.5 商标
  12. 6关于作者

后台进程

图 3-3 显示了进行电压和电流采样时发生的不同事件,其中用灰色标出的项目在硬件设置(而不是测试软件)中完成。

GUID-20230518-SS0I-XDT3-CRNH-JVB85P6HLDL1-low.svg图 3-3 电压和电流采样事件

回顾图 3-3 中提到的过程,每个相位的新电流样本在每 OSR(此设计中为 512)个调制时钟周期准备就绪,从而在连接到 MSPM0+ MCU 的 SPI 总线上每秒产生 8000 个样本。每个样本包含 30 个字节,每个 ADC 通道包含 3 个字节的数据。假设 ADS131M08 器件最近一次就绪的相电流和电压样本对应于第 Nth - 1 个电流和电压样本,即 Iphx[N - 1] 和 Vphx[N - 1]。一旦新样本准备就绪,ADS131M08 就会将 DRDY 引脚置位为低电平。ADS131M08 DRDY 引脚的下降沿会导致 MSPM0+ MCU 上的 GPIO 端口中断,从而触发端口 ISR,让后台进程在端口 ISR 运行。图 3-4 显示了后台进程,该进程主要处理测试软件中有严格时序要求的事件。

GUID-20230518-SS0I-MMXM-CRZ8-RMKT1MB2PBWN-low.svg图 3-4 后台进程

在后台进程中,先前获得的电压样本 (Vphx[N - 2]) 和先前获得的电流样本 (Iphx[N - 2]) 会存储起来,以便稍后供 per_sample_dsp 函数使用,该函数负责更新用于计算计量参数的中间点积数量。

在存储先前获得的电压和电流样本后,通过将片选信号置位为低电平来启用与 ADS131M08 的通信。然后,将 DMA 配置为针对 ADS131M08 器件最新电流和电压样本(Iphx[N – 1] 和 Vphx[N – 1])发送请求,并接收来自 ADS131M08 的数据包响应。当前样本的请求和接收由 DMA 模块自动完成。

图 3-5 显示了由 MSPM0+ MCU 的 DMA 发送的数据包,以及同样由 DMA 接收和组装的来自 ADS131M08 的响应数据包。发送和接收数据包包含 10 个字,其中每个字的长度为 3 个字节,从而在 SPI 总线上产生 30 字节的 DMA 事务。

GUID-20230518-SS0I-T22Q-RQSH-DCGJ2CK0BDSB-low.svg图 3-5 ADS131M08 ADC 采样请求数据包

从 ADS131M08 器件请求 ADC 数据时,必须发送到 ADS131M08 的第一个字是命令字。测试软件不需要在典型的 ADC 样本读出期间更改 ADS131M08 的设置或读取任何寄存器,因此会向 ADS131M08 发送 NULL 命令,这使设计人员能够无需更改器件状态即可从 ADS131M08 获取 ADC 样本。null 命令的实际大小是 16 位;但是,由于使用的是 24 位字,16 位命令必须在命令末尾填充一个额外的值 0x00。因此发送的 NULL 命令字的值为 0x00 00 00。当 MSPM0+ MCU 移出命令字时,MCU 同时将响应字移入前一个数据包的命令字。NULL 命令的响应字是 STATUS 寄存器的内容。此设计中不使用 STATUS 寄存器的内容,因此从 ADS131M08 接收到的第一个字将被忽略(未在软件代码中处理)。

写入命令字后,需要对每个要读取的字节执行一次虚拟写入。若要启用 SPI 时钟,便需要写入虚拟字节,这是从 ADS131M08 器件读取一个字节所必需的。每次写入虚拟字节时,都会将值 0x00 写入 SPI 发送寄存器。通过在写入命令字节后立即写入三个虚拟字节,MSPM0+ MCU 可以从 ADS131M08 的通道 0 接收 3 字节的 ADC 值。写入后续 21 个虚拟字节将分别获取通道 1、通道 2 直至通道 7 的 ADC 数据。最后,写入接下来的三个虚拟字节将得到 CRC 字。CRC 字为 24 位;但是,请注意实际的 CRC 只有 16 位,这些位对应于 24 位字的最高有效位。因此,在解析 CRC 字时,不需要最后一个字节(但请注意,为了使 ADS131M08 正确运行,仍必须发送虚拟写入的这个零填充字节)。

图 3-3 显示了每当 DMA 接收到整个 Iphx[N - 1] 数据包时,便会自动调用 DMA ISR。在 ISR 内,CRC 基于九个命令和 ADC 字计算(共计 9 x 3 = 27 字节)此 CRC 计算可在两种模式下完成:使用 MSPM0G3507 MCU 的 CRC 模块或使用 memcpy() 函数,将 27 字节 ADC 数据移动到自动计算 CRC16 的特殊存储器区域。

这两种方法都在测试软件中成功实现,请参阅 verify_add_crc() 例程。其中,memcpy() 实现的计算速度比使用带字节馈送的 CRC16 寄存器快近 5 倍,并且在默认情况下使用。可以向 CRC 模块馈送 8 位或 16 位数据,并且由于共有 27 个字节,因此 CRC 模块正在逐字节更新。计算出数据包的 CRC 后,会将校验结果与从 ADS131M08 发送的数据包中获得的 CRC 进行比较。发送的 CRC 从字节 28 和 29 进行解析(字节 30 是 CRC16 的零填充,因此会忽略该字节值)。

如果计算出的 CRC 和解析的 CRC 相等,则 CRC 校验通过,并解析 ADC 数据以获取时间 N - 1 处的电压和电流样本值。解析的电压和电流样本被置于临时缓冲器中,以便在下一次中断调用 per_sample_dsp 函数时使用此信息。当 DMA 上的 SPI 传输结束时,CS(芯片选择)线路再次从 MSPM0+ MCU 自动上拉回高电平,以便在下次电流样本读出准备就绪之前正确复位 ADS131M08 通信。

在使用 DMA 通道将最新电流和电压样本 Iphx[N - 1] 和 Vphx[N - 1] 传输到 MSPM0+ MCU 的同时,ADS131M08 已对下一个电压 (Vphx[N]) 和电流样本 (Iphx[N]) 进行采样,而测试软件对从 ADS131M08 获取的早期电压 (Vphx[N - 2]) 和电流样本 (Iphx[N - 2]) 执行逐样本处理。可使用这种逐样本处理方法来更新用于计算计量参数的中间点积。处理样本后,后台进程使用“per_sample_energy_pulse_processing”执行电能比例脉冲的计算和输出。一旦 per_sample_energy_pulse_processing 完成,测试软件便会从端口 ISR 退出。