ZHCAAS3A July 2020 – September 2021 ADS131M04 , ADS131M06 , ADS131M08
特性 | 说明 |
---|---|
相位数 | 单相(分相测量两个电压) |
电表精度 | 0.1 级 |
电流传感器 | 罗氏线圈 |
电流范围 | 0.05A – 100A |
系统标称频率 | 50Hz |
测量的参数 | - 交流电压输入 - 交流电流输入(使用电压输出,di/dt 传感器) |
设计说明
本电路文档介绍了使用 ADS131M04 的 0.1 类分相电能测量前端。该 ADC 对罗氏线圈和分压器的输出进行取样,以分别测量交流电源各分支的电流和电压。该设计在宽输入电流范围 (0.05A–100A) 内能达到很高的精度,在必要时还支持高采样频率,以实现独立谐波分析等高级电能质量功能。
由于罗氏线圈的输出与瞬时初级电流的导数成正比,因此需要积分器来检索原始电流信号,该电路会假设罗氏积分器是在数字域中实现的。
设计注意事项
元件选型
电压测量前端
市电的标称电压为 100V–240V,因此必须按比例缩小该电压,才能被 ADC 检测到。电压测量前端 展示了用于此电压调节的模拟前端。
电压测量前端
电流测量前端
在该设计中,罗氏线圈或 di/dt 传感器用于电流检测输入。罗氏线圈是通过用空芯(非磁性)环形盘绕线环绕初级导体来创建的。由初级导体 (IP) 中的电流产生的交变磁场在线圈中产生电压 (VS)。由于它是非磁芯,因此线圈的输出不会因大初级电流而饱和。
对于给定频率,罗氏线圈具有以 μV/A 为单位测量的相关灵敏度 (k),这些是选择罗氏线圈时需要考虑的一些关键参数:
罗氏线圈的输出电压与初级导体中的电流变化率成正比,并且不受直流电流的影响。
对于给定频率,罗氏线圈的输出电压 VOUT 可以简化为:
其中
本电路文档假设罗氏线圈的灵敏度 (k) 在 50Hz 下为 1.2mV/A。以下公式显示了如何针对给定最大电流、CT 匝数比和负载电阻值计算馈入电流 ADC 通道的差分电压范围。
基于 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 频率提供足够的衰减。
推荐的抗混叠滤波器
数字集成
罗氏线圈的输出电压是初级电流的微分。要获得初级电流的实际波形,需要在模拟域或数字域中对输出电压进行集成。与分立式模拟组件相比,由于幅度和相位响应具有可配置性和可重复性,因此在数字域中进行集成较为简单,且优于模拟。
可以使用简单的一阶 IIR 函数实现在数字域中的集成,例如:
ADS131M04 使用 Δ-Σ 调制器将模拟输入电压转换为一个密度调制的数字比特流,然后将之馈入数字滤波器。数字滤波器是线性相位、有限脉冲响应 (FIR)、低通正弦型滤波器,可衰减 Δ-Σ 调制器的带外量化噪声。
通过滤波器的数据被抽取和下采样,以将数据从调制器 (fMOD) 出来的速率降低到输出数据速率 (fDATA)。抽取因子被定义为 fMOD 和 fDATA 的比率,且被称为“过采样率”(OSR) - OSR 决定数字滤波器中调制器输出的平均量,因此也称为滤波器带宽。
ADS131M04 提供以下集成的数字滤波器选项:
后处理数字滤波器可用作替代 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 );
其中:
以下资源可用作在罗氏线圈应用中实现数字滤波器的参考:
校准选项
校准允许根据预编程值自动计算校准后的 ADC 转换结果。在将纠错项编程到相应的器件寄存器中后,主机可以依靠器件自动纠正系统增益和失调电压。测量的校准系数必须存储在外部非易失性存储器中,并在每次 ADS131M04 通电时编程到寄存器中。ADS131M04 提供以下类型的校准选项:
寄存器设置
在此设计中,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 社区: