ZHCAAS3A July   2020  – September 2021 ADS131M04 , ADS131M06 , ADS131M08

 

  1.   1
  2.   修订历史记录

特性 说明
相位数 单相(分相测量两个电压)
电表精度 0.1 级
电流传感器 罗氏线圈
电流范围 0.05A – 100A
系统标称频率 50Hz
测量的参数 - 交流电压输入
- 交流电流输入(使用电压输出,di/dt 传感器)

设计说明

本电路文档介绍了使用 ADS131M04 的 0.1 类分相电能测量前端。该 ADC 对罗氏线圈和分压器的输出进行取样,以分别测量交流电源各分支的电流和电压。该设计在宽输入电流范围 (0.05A–100A) 内能达到很高的精度,在必要时还支持高采样频率,以实现独立谐波分析等高级电能质量功能。

由于罗氏线圈的输出与瞬时初级电流的导数成正比,因此需要积分器来检索原始电流信号,该电路会假设罗氏积分器是在数字域中实现的。

GUID-A4612BEE-8032-4C19-9CF6-7D3FBCFAA282-low.gif

设计注意事项

  1. 为模拟和数字电源使用电源去耦电容器。必须使用连接到 AGND 的至少为 100μF 的电容器对 AVDD 和 DVDD 进行去耦。有关电源相关建议的详细信息,请参阅 ADS131M04 四通道同步采样 24 位 Δ-Σ ADC 数据表
  2. 1.8V 的核心数字电压是从 DVDD 的内部 LDO 产生的。CAP 引脚会输出由 DVDD 电源产生的 LDO 电压,需要一个外部旁路电容器。当由大于 2.7V 的 DVDD 供电时,在 CAP 引脚上放置一个 220nF 电容器,并将其连接到 DGND。如果 DVDD ≤ 2V,则将 CAP 引脚直接连接到 DVDD 引脚,并使用 100nF 电容器将星形连接引脚去耦至 DGND。
  3. 如果可能,使用 C0G (NPO) 陶瓷电容器进行输入滤波。这些电容器中使用的电介质可在电压、频率和温度变化时提供更稳定的电气特性。
  4. 使用标准电容器值和 1% 电阻器值选择 ADC 输入和基准输入的输入滤波。《使用 ADS1148 和 ADS1248 系列器件进行 RTD 比例测量和滤波》 中提供了这些滤波器的设计示例和分析。
  5. 某些信号链错误可以通过单次室温校准来纠正。ADS131M04 器件能够存储校准值并使用这些值实时校正结果。可以使用 ADS131M04 实时纠正的误差包括失调电压误差、增益误差和相位误差。

元件选型

电压测量前端

市电的标称电压为 100V–240V,因此必须按比例缩小该电压,才能被 ADC 检测到。电压测量前端 展示了用于此电压调节的模拟前端。

电压测量前端

GUID-41A44CBA-20C2-422A-A583-811710FB2EDD-low.gif
  1. 电压模拟前端由尖峰保护压敏电阻 (RV)、分压器网络(RHI 和 RLO)以及 RC 低通滤波器(RFILT 和 CFILT)组成。在较低电流下,如果不执行功率失调电压校准,电压至电流串扰对有功电能精度的影响要远大于电压精度。为了尽可能提高这些较低电流下的精度,该设计并未将整个 ADC 范围用于电压通道。由于 ADS131M04 的 ADC 是高精度 ADC,因此即使在该设计中对电压通道使用减小的 ADC 范围,仍可为测量电压提供足够的精度。在该设计中,选择将电压测量的 PGA 增益值设为 1。
  2. 以下公式显示了如何针对给定市电电压和选定分压器电阻值计算馈入电压 ADC 通道的差分电压范围。
    GUID-7A9A7B40-8CAD-4C69-9A19-9251D61B2A3F-low.gif
  3. 在该设计中,RHI 为 330kΩ,RLO 为 750Ω。对于 120V 的市电电压(在线路和零线之间测量),电压 ADC 的输入信号的电压摆幅为 VADC = ±128mV (91mVRMS),这完全在 ±1.2V 输入电压范围内(对于所选的 PGA 增益值 1,ADS131M04 可以检测到该范围)。

电流测量前端

在该设计中,罗氏线圈或 di/dt 传感器用于电流检测输入。罗氏线圈是通过用空芯(非磁性)环形盘绕线环绕初级导体来创建的。由初级导体 (IP) 中的电流产生的交变磁场在线圈中产生电压 (VS)。由于它是非磁芯,因此线圈的输出不会因大初级电流而饱和。

对于给定频率,罗氏线圈具有以 μV/A 为单位测量的相关灵敏度 (k),这些是选择罗氏线圈时需要考虑的一些关键参数:

  • 动态范围:应用所需的电流范围(最小值到最大值)
  • 线性度:指定电流范围的线性输出电压
  • 精度:指定电流范围的输出电压精度
  • 次级输出电压:给定频率下线圈的灵敏度,指定为 μV/A(例如:PA3209NL 脉冲罗氏线圈会指定 50Hz 下为 463μV/A,60Hz 下为 556μV/A)
  • 相移误差:指定输出电压和输入电流之间的相位差
  • 初级与次级隔离:指定罗氏线圈可以处理的隔离栅电位
  • 内径:以毫米为单位,具体取决于电流

罗氏线圈的输出电压与初级导体中的电流变化率成正比,并且不受直流电流的影响。

GUID-3C498370-0E07-4C0E-9C8A-81C78C4258EC-low.gif

对于给定频率,罗氏线圈的输出电压 VOUT 可以简化为:

GUID-A89A8F69-57D1-4435-94B2-F103F6F040FB-low.gif

其中

  • k = 给定频率下的敏感度常量

本电路文档假设罗氏线圈的灵敏度 (k) 在 50Hz 下为 1.2mV/A。以下公式显示了如何针对给定最大电流、CT 匝数比和负载电阻值计算馈入电流 ADC 通道的差分电压范围。

GUID-D3C86329-D8D5-4017-B813-AE84423D35FD-low.gif

基于 100A 的最大 RMS 电流、50Hz 下 1.2mV/A 的罗氏线圈灵敏度 k 和 8V/V 的 PGA 增益,当应用仪表的最大电流额定值 (100A) 时,电流 ADC 的输入信号具有最大 ±960mV 的电压摆幅 (679mVRMS)。对于用于电流通道的所选 PGA 增益 8,此 ±960mV 最大输入电压完全在器件的 ±1.2V 输入范围内。

抗混叠

每个通道输入前都需要一个模拟低通滤波器,以防止带外噪声和干扰体耦合到相关频带中。由于 ADS131M04 是 Δ-Σ ADC,因此集成数字滤波器为相关频带(直至与 fMOD 相邻的频率)外的频率提供了大量衰减。因此,具有相对较低截止频率的单阶 RC 滤波器(例如推荐的抗混叠滤波器 中推荐的值)应该为介于 1MHz 和 4.1MHz 之间的 fMOD 频率提供足够的衰减。

推荐的抗混叠滤波器

GUID-10179403-7844-438C-87F9-4260BF643F67-low.gif

数字集成

罗氏线圈的输出电压是初级电流的微分。要获得初级电流的实际波形,需要在模拟域或数字域中对输出电压进行集成。与分立式模拟组件相比,由于幅度和相位响应具有可配置性和可重复性,因此在数字域中进行集成较为简单,且优于模拟。

可以使用简单的一阶 IIR 函数实现在数字域中的集成,例如:

  • GUID-29E2FD5A-1DF2-4BB4-90A4-D755282D2119-low.gif

ADS131M04 使用 Δ-Σ 调制器将模拟输入电压转换为一个密度调制的数字比特流,然后将之馈入数字滤波器。数字滤波器是线性相位、有限脉冲响应 (FIR)、低通正弦型滤波器,可衰减 Δ-Σ 调制器的带外量化噪声。

通过滤波器的数据被抽取和下采样,以将数据从调制器 (fMOD) 出来的速率降低到输出数据速率 (fDATA)。抽取因子被定义为 fMOD 和 fDATA 的比率,且被称为“过采样率”(OSR) - OSR 决定数字滤波器中调制器输出的平均量,因此也称为滤波器带宽。

ADS131M04 提供以下集成的数字滤波器选项:

  • 快速趋稳滤波器:允许以更小的延迟生成稳定的输出数据。快速趋稳滤波器具有一阶正弦滤波器 (SINC1) 的特性
  • SINC3 和 SINC3 + SINC1 滤波器:SINC3 滤波器路径,在上电或器件复位后发生两次转换。如果 OSR 设置为 128 到 1024,SINC3 滤波器输出直接馈入全局斩波和校准逻辑。如果 OSR 设置为 2048 及更高,SINC3 滤波器后跟一个 SINC1 滤波器。
  • 直流阻断滤波器:包括一个可选的高通滤波器,以消除任何系统性失调电压或低频噪声。

后处理数字滤波器可用作替代 ADS131M04 集成式数字滤波器的另一种选择,或作为其补充。在后处理滤波器可能被认为是 IIR 巴特沃斯滤波器的情况下,由于通带中具有最大平坦响应,因此可能会支持该滤波器的实现,但它具有非常平滑的较大过渡,且 MIPS 开销极小。在 MATLAB® 等软件中实施的一个示例如下:

% Design an IIR Butterworth DC Block
dcblock = fdesign.highpass('N,F3dB', params.Order, params.F3dB); 
dcButter = design(dcblock, 'IIR', 'butter');
h = fvtool( dcButter );

其中:

  • params.Order”是滤波器的阶数。在本例中,params.Order = 1
  • params.F3dB”是 –3dB 点的频率,表示为采样率/2 的一部分的归一化频率,对于 0.002 × fs 的滤波器 3dB 点,应设置为 0.004。
对于 0.002 × fs,该公式将如下所示:

GUID-488263E4-BEB3-4C86-8E11-113AA91CBE6D-low.gif

以下资源可用作在罗氏线圈应用中实现数字滤波器的参考:

校准选项

校准允许根据预编程值自动计算校准后的 ADC 转换结果。在将纠错项编程到相应的器件寄存器中后,主机可以依靠器件自动纠正系统增益和失调电压。测量的校准系数必须存储在外部非易失性存储器中,并在每次 ADS131M04 通电时编程到寄存器中。ADS131M04 提供以下类型的校准选项:

  1. 失调电压校准:用于校正系统失调电压误差,也被称为零误差。当系统输入为零时,失调电压误差对应于 ADC 输出。
  2. 增益校准:用于校正消除系统增益误差。增益误差对应于系统增益相对于理想增益的偏差。
  3. 通道相位校准:允许通过使用通道相位校准对通道之间的采样相位进行微调,此功能对电能计量应用很有用,电压可以通过分压器测量,而电流则使用电流互感器(展现其输入和输出信号之间的相位差)测量。必须补偿电压和电流测量之间的相位差异,以准确测量功率和相关参数。

寄存器设置

在此设计中,ADS131M04 从 MCU 接收其时钟。ADS131M04 配置为 HR 模式,MCU 提供 8.192MHz 主时钟,该时钟在 HR 模式允许的时钟频率范围内。用于与 ADS131M04 通信的 MCU SPI 端口配置为 CPOL = 0 和 CPHA = 1。SPI 时钟频率配置为 8.192MHz,以便使所有转换数据可以在采样周期内被成功移出器件。上电时,MCU 使用 SPI 寄存器写入将 ADS131M04 寄存器配置为以下设置。

基于两相罗氏线圈的电表模拟前端电路的寄存器配置设置,用于相对中性点测量电压的实际电流
寄存器地址 寄存器名称 设置 说明
04h GAIN1 3030h PGAGAIN1 = PGAGAIN3 = 1(对于电压测量输入)。PGAGAIN0 = PGAGAIN2 = 8(对于电流测量输入)
09h、0Eh、13h、18h CHx_CFG 0000h 寄存器设置(其中,x 是通道编号):所有四个 ADC 通道输入都连接到外部 ADC 引脚,每个通道的通道相位延迟设置为 0。DCBLOCK[3:0] 控制的直流阻断
03h 时钟 0F0Fh 512 OSR,所有通道均已启用,HR 模式
08h THRSHLD_LSB 0008h ADS131M04 包括一个可选的高通滤波器,以消除任何系统性失调电压或低频噪声。此滤波器的转折频率设为 4.99Hz

代码示例

下面显示了一个代码示例以及设置器件和微控制器所需的步骤,该微控制器与 ADC 相连,以便从 ADS131M0x 器件获取后续读数。

numFrameWords = 6; // Number of words in a full ADS131M04 SPI frame
unsigned long spiDummyWord[numFrameWords] =
    {   0x00000000,
        0x00000000,
        0x00000000,
        0x00000000,
        0x00000000,
        0x00000000}; // Dummy word frame to write ADC during ADC data reads
bool firstRead = true; // Flag to tell us if we are reading ADC data for the
// first time
signed long adcData; // Location where DMA will store ADC data in memory,
// length defined elsewhere
/*
收集数据时,每次DRDY断言,需中断MCU
*/
DRDYinterupt(){
    if(firstRead){ // Clear the ADC's 2-deep FIFO on the first read
        for(i=0; i<numFrameWords; i++){
            SPI.write(spiDummyWord + i);
        }
        for(i=0; i<numFrameWords; i++){
            SPI.read();
        }
        firstRead = false; // Clear the flag
            DMA.enable(); // Let the DMA start sending ADC data to memory
    }
    for (i=0; i<numFrameWords; i++){
        SPI.write(spiDummyWord + i);
    }
}
// Send the dummy data to the ADC to get the ADC data
/*
adcRegisterWrite
一次写入一个 ADC 寄存器的短函数。块返回,直到 SPI 空闲。如果字长错误,则返回 false。
param
addrMask: 16-bit register address mask
data: data to write
adcWordLength: ADC 期望的字长。为 16、24 或 32。
如果
字长有效,则返回true
如果无效,则返回false
*/
bool adcRegisterWrite(unsigned short addrMask, unsigned short data,
    unsigned char adcWordLength){  // Stores the amount of bit shift based on
    unsigned char shiftValue;      // ADC word length
    if(adcWordLength==16){         // If length is 16, no shift
        shiftValue = 0;
    }else if(adcWordLength==24){   // If length is 24, shift left by 8
        shiftValue = 8;
    }else if(adcWordLength==32){   // If length is 32, shift left by 16
        shiftValue = 16;
    }else{
        return false;             // If not, invalid length
}
    SPI.write((WREG_OPCODE |     // Write address and opcode
        addrMask) << shiftValue);// Shift to accommodate ADC word length
    SPI.write(data << shiftValue);// Write register data
    while(SPI.isBusy());
    return true;
}
/*
主程序
*/
main(){
    enableSupplies();
    GPIO.inputEnable('input'); // Enable GPIO connected to DRDY
    clkout.enable(8192000);
    SPI.enable();
    SPI.wordLengthSet(24);
    SPI.configCS(STAY_ASSERTED);
    while(!GPIO.read()){} // Wait for DRDY to go high indicating it is ok
// to talk to ADC
    adcRegisterWrite(CLOCK_ADDR,
        ALL_CH_DISABLE_MASK |
        OSR_1024_MASK | PWR_HR_MASK, 24);
    adcRegisterWrite(MODE_ADDR,
        RESET_MASK | DRDY_FMT_PULSE_MASK |
        WLENGTH_24_MASK |
        SPI_TIMEOUT_MASK, 24);
    adcRegisterWrite(GAIN1_ADDR,
        PGAGAIN3_32_MASK |
        PGAGAIN1_32_MASK, 24);
    adcRegisterWrite(THRSHLD_LSB_ADDR,
    0x09, 24);
    DMA.triggerSet(SPI);         // Configure DMA to trigger when data comes in
                                 // on the MCU SPI port
    DMA.txAddrSet(SPI.rxAddr()); // Set the DMA to take from the incoming SPI
                                 // port
    DMA.rxAddrSet(&adcData);     // Set the DMA to send ADC data to a predefined
    adcRegisterWrite(MODE_ADDR,
        WLENGTH_32_SIGN_EXTEND_MASK |
        DRDY_FMT_PULSE_MASK |
        SPI_TIMEOUT_MASK, 24);
    SPI.wordLengthSet(32);
    adcRegisterWrite(CLOCK_ADDR,
        ALL_CH_ENABLE_MASK |
        OSR_1024_MASK | PWR_HR_MASK, 32);
    GPIO.interuptEnable();
}      

罗氏线圈和基于 CT 的电流测量系统之间的比较

电路拓扑 优势 劣势
使用罗氏线圈的单相(分相测量两个电压和两个电流)

• 提供与初级电路的电隔离

• 不饱和(宽动态范围)且无磁化电流误差,因为是非磁芯

• 线性且不受直流影响

• 打开时电气安全

• 主负担非常低

• 成本可能更低

• 与 CT 相比体积更小,重量更轻

• 灵敏度更低

• 温度稳定性更低

• 需要集成器(硬件或软件)

• 低频噪音被放大

• 对初级载流导体的位置

敏感

• 外部磁场抗扰度有限

• 制造容差高

使用 CT 的单相(分相测量两个电压和两个电流)

• 提供与初级电路的电隔离

• 精确在规定的电流输入范围内

• 低损耗

• 不受共模噪声输入影响

• 往往很笨重且昂贵(取决于

精度和电流电平要求)

• 需要更大电路板面积

• 外部磁场和频繁过载会影响 CT 的性能并缩短其使用寿命

设计中采用的器件

器件 关键特性 链接 其他可能的器件
ADS131M04 24 位 32kSPS 4 通道同步采样 Δ-Σ ADC ti.com/product/ADS131M04 指向类似器件的链接
ADS131M06 24 位 32kSPS 6 通道同步采样 Δ-Σ ADC ti.com/product/ADS131M06 指向类似器件的链接
ADS131M08 24 位 32kSPS 8 通道同步采样 Δ-Σ ADC ti.com/product/ADS131M08 指向类似器件的链接

设计参考资料

请参阅《模拟工程师电路设计指导手册》,了解有关 TI 综合电路库的信息。

其他资源

如需 TI 工程师的直接支持,请登陆 E2E 社区:

e2e.ti.com