使用基于Windows的功率计进行实际数据采集

描述

本应用笔记介绍了基于PC的14位数据采集系统的设计。它采用系统方法,包括所有必要的构建模块:模拟、数字、硬件和软件。它讨论了每个步骤,在集成系统之前分别测试系统,并详细介绍了在此过程中学到的陷阱。

关于典型数据采集系统中的构建模块的文章很多,但很少有文章涉及从模拟输入到PC显示的整个系统。为了解决设计完整数据采集系统时遇到的所有问题,工程师可能需要收集十篇文章。

以下应用笔记描述了基于PC的14位数据采集系统的设计。它采用系统方法,包括所有必要的构建模块:模拟、数字、硬件和软件。它讨论了每个步骤,在集成系统之前分别测试系统,并详细介绍了在此过程中学到的陷阱。

设计规范

任务:设计基于带片内RAM(MAX14)的125位同步采样ADC的功率计。

对于任何尝试使用传统仪器测量DC-DC转换器的输入和输出特性的人来说,对功率计的需求都是显而易见的。该设计允许用户在被测器件上执行负载测量,而无需连接无穷无尽的意大利面条式测试引线。图 1 显示了个人计算机 (PC) 监视器上完整的功率计显示。

转换器

图1.带有示例读数的视窗电脑输出。

为了满足升压、降压和线性实现的需求,输入和输出的测量范围均选择为30V。大多数高质量的 DC-DC 转换器的工作频率为 100kHz 或更高。因此,系统的频率响应应高于100kHz,但较慢的响应也是可以接受的,因为开关波形具有合理的重复性。

系统的14位分辨率在设计阶段并不是最重要的,因为0.1%(10位)以内的测量对于大多数功率计应用来说已经完全足够了。数字化后,结果通过RS-232接口上传并显示在PC屏幕上,更新速率为每秒一次(与大多数万用表一样)。一旦数据到达RS-232端口,PC的力量就可以释放出来。完整的电路图(图2)将在以下章节中讨论:

转换器

图2.电路图。

模拟前端

精密电阻分压器可实现高达 30V 的精确电压测量。Vishay 薄膜的 ORNA10-1 是一个经过调整的电阻网络,包括两个 1kΩ 值和两个 10kΩ 值。这四个电阻的比例精度为0.05%,因此提供施加电压的精度分数(1/11)。MAX125的故障保护输入具有±5V范围,在故障条件下具有一定程度的安全性,并为输入和输出电压测量提供了充足的裕量。

输入和输出电流使用精密电流放大器MAX471测量。该器件测量内部 30mΩ 电阻两端的电压,并提供幅度等于每安培高端电流 500uA 的输出电流。因此,外部电阻的值缩放输出电压,在这种情况下,通过选择4.7kΩ的值来实现合适的分辨率。

MAX125的宽输入能力和故障保护电路使其输入阻抗低于同等竞争器件,因此在进入ADC之前对四个读数进行缓冲。单位增益缓冲级取自MAX4254四通道精密运算放大器,其输入失调电压(70uV)低于系统分辨率。

MAX125输入经过缓冲主要是为了克服其低输入阻抗,但即使转换器具有高输入阻抗,从低阻抗驱动ADC始终是一种良好做法。由于采样/保持电路通常放置在ADC输入端,缓冲器提供必要的驱动,以便在可接受的时间内为采样/保持电容充电。要了解源阻抗必须有多低,请考虑对RC时间常数进行简单计算。输入电容的充电根据

VCAP = VIN (1−e−t/CR),

其中C为采样电容,R为源极电阻,V为源极电阻在是施加到RC电路的电压。V之间的电压差在和 V帽是:

VIN − VCAP = VIN e−t/CR

因此,给定采样和保持电容器的值(通常为10-30pF)、电容器的充电时间和可容忍的误差电压(1/2 LSB),可以计算出在给定时间内为电容器充电的最大允许信号源电阻。

输入缓冲器还可以用作滤波器,用于删除不需要的信号。由于ADC是一个采样系统,其输出具有以采样频率一半为中心的频谱对称性。因此,大于采样频率一半的信号与小于采样频率一半的信号无法区分。例如,对于10kHz采样频率,ADC无法区分4kHz和6kHz输入,因为两者都是对称的,大约是采样频率(5kHz)的一半。虽然对于本文的范围来说过于详细,但这种效应(混叠)和描述它的定理(奈奎斯特定理)在许多论文和书籍中都有描述。

“抗混叠滤波器”可消除这些不需要的频率。如果您考虑任何非纯正弦信号的频谱,混叠的影响可能会非常微妙。根据定义,非正弦波具有谐波,这些较高的谐波向下转换以在较低频率处引起误差。同样,除非输入信号频率范围明确,否则组合缓冲器和抗混叠滤波器始终是良好的设计实践。

需要最少的滤波,因为有问题的系统只接受点读数。对于更高的采样频率,使用元件C1、C2、C3和C4的简单低通滤波器可在ADC输入之前提供信号滚降。这些元件还用于平均ADC获取的读数,并有效消除输入和输出功率测量中的纹波。

数字化

MAX125为独立的、同步采样、逐次逼近的数据采集系统,具有片内RAM。它使用2x4采样/保持放大器对两组四个信号进行采样,然后由单个ADC模块按顺序数字化。结果存储在RAM中,并在处理器控制下的并行数据总线上按顺序读出。

MAX125还包括一个电压基准,其无杂散动态范围(SFDR)适用于许多高分辨率DSP应用。(内部基准可由外部系统基准覆盖。MAX125还具有良好的INL(实际值与理论ADC输出的最大偏差)、良好的DNL(实际值与理论ADC阶跃幅度的偏差)和13位的单调性(输出代码随着模拟输入的增加而增加或保持不变)。为了高效利用微处理器,MAX125提供推挽中断输出,指示转换何时完成。

内部缓冲器允许使用内部或外部基准。至于模拟输入,基准输入应由低阻抗源驱动。这尤其适用于采用逐次逼近寄存器(SAR)的ADC,因为基准电压直接馈入DAC的R-2R梯形图。随着DAC输入代码的变化,基准输入的输入阻抗也会发生变化,从而调制基准电压。幸运的是,MAX125的内部缓冲器消除了这个问题。

对于此设计,内部基准被外部, 精密、低压差、低漂移的2.5V电压基准(MAX873A)。虽然MAX873A的使用(相对于内部基准)没有明显的结果变化,但具有更好的初始精度和漂移。

了解任何数字化系统所需的漂移规格(以ppm/°C为单位)非常简单。首先,定义系统的工作温度范围。对于此应用,假设正常的实验室温度范围为 30°C。 接下来,确定在温度范围内可以容忍的最大漂移(以伏特为单位)(通常为 1/2 至 1 LSB),从而确定以 V/°C 为单位的漂移。 要将此漂移值归一化为 ppm/°C,请除以基准电压并乘以 106.对于 2 位系统,结果通常约为 14ppm/°C,对于 10 位系统,结果通常约为 12ppm/°C,对于 30 位系统,结果通常约为 10ppm/°C。这些数字根据允许的温度跨度和总基准漂移而变化。

MAX125由Atmel AVR处理器(AT90S4414)驱动,两款处理器的时钟频率(10MHz)来自振荡器模块。该程序是用汇编语言编写的,只需一条指令即可切换每条数据线,以反映MAX125数据资料中的时序图。为了便于理解,该程序被划分为多个子例程,并且出于相同的目的对大多数行进行了注释。

启动或上电复位时,MAX125采用双向数据引脚D3-D0进行配置。将这些引脚设置为0011,并将WR设置为低电平,设置ADC的工作模式,以接收来自MUX A所有四个通道的输入。一旦建立,微处理器端口将重新配置为输入,以从ADC接收数据。

当CONVST脉冲为低电平时,处理器等待来自MAX125的中断信号。然后读出通道1的转换,并将结果(通过MAX3100 UART和MAX202E)发送到PC的RS-232端口。每个转换包括16位数据,因此每个结果需要两个RS-232写入周期。由于ADC存储来自通道2-4的转换,因此传输RS-232数据所需的时间可以相当悠闲。发送来自通道 1 的数据后,将对通道 2-4 重复此过程。

在微处理器总线(只有16条数据线的14位宽总线)的未使用数据引脚上注意到噪声拾取。如果将这些未使用的引脚配置为输入,则噪声会忠实地伪装成间歇性数据。然而,幸运的是,一个简单的软件和功能可以滤除感应噪声,他们说数字滤波很难!或者,您可以将未使用的端口配置为输出。

上述代码运行良好,但建立正确的电路性能可能很困难。来自μC的中断脉冲来得快去得如此之快(在1μs内),以至于只有存储示波器才能检测到它。如果没有合适的示波器,您可以在 CONVST 线路设置为高电平后立即插入延迟例程,以便更悠闲地查看中断信号。

电脑接口

微处理器与PC连接的关键元件是串行寻址UART(MAX3100)。它通过其4线SPI从微处理器获取输入™/Microwire bus³,并将此数据转换为大多数 RS-232 兼容设备使用的格式。采用工业标准的微功耗2TX/2RX收发器(MAX202E)实现电平转换。

该UART具有硬件和软件关断模式,采用微型QSOP封装,非常适合低功耗便携式设备。对于危险环境,其接口还允许通过连接合适的光学设备进行 IrDA 通信。其他特性(本应用中不需要)包括接收缓冲器和中断标志,用于提供有关发送和接收寄存器的状态信息。

实现基于软件的SPI例程,用于将代码导出到缺少内置SPI总线的微处理器。代码表明这是一项微不足道的任务,注释会引导外行完成SPI总线的时钟周期。如果使用专用SPI端口,值得注意的是,当CS置位时,MAX3100的串行时钟线(SCLK)必须以低电平状态启动。如果此要求出现问题,则应在进入 SPI 例程之前循环 SCLK 线路。

请注意RS-232数据传输所需的时间。在 9600 波特时,将 232 位数据连同开始位和停止位一起传输需要一毫秒以上。事后看来,这是显而易见的,但它可以给设计人员带来数小时不应有的享受,不仅想知道为什么数据没有正确到达PC,而且还说明了微处理器和RS-10链路的运行速度差异。在代码中插入的简单 232ms 延迟允许在 PC 端进行数据传输和处理。另请注意,RS-3100规范没有详细说明信号协议(开始和停止位等);仅提供电压电平、压摆率和连接器详细信息。然而,MAX202和MAX232E处理所有标准,使数据符合RS-<>,并且符合PC预期的协议。

窗口界面®

Windows程序是用Visual Basic Version 6编写的。它使用 MSComm 函数从 RS-232 端口获取读数,配置为接受文本,并将此数据转换为 ASCII。它还将每个16位数据模块转换回从ADC输入之前的模拟检测电路获得的电压和电流测量值。根据这些结果,计算输入功率、输出功率和效率,并将其显示在PC屏幕上,四舍五入到小数点后三位。此外,如果需要记录结果,系统可以“冻结”结果。

测得的效率数据远非一致。这是通过注意到电流和电压波形上的纹波来解释的。4.7kΩ电阻用10nF电容旁路以降低电流纹波读数,但电阻分压器网络未旁路。因此,测得的纹波(输入端20mV,输出端100mV)导致效率测量变化±3%。

当结果被读入PC时,丢失的数据会在PC屏幕上产生不正确的读数。因此,测量了到达数据包之间的时间间隔。如果任何间隔超过 0.5 秒,PC 计数器将重置,以预期后续数据包中的第一个字符。

结果

被测器件(DUT)是MAX1705,这是配置为PWM模式的升压DC-DC转换器。对评估板施加负载,通过冻结MAX125 PC程序并从屏幕上读取数值来获取结果。然后使用(现已过时的)数字万用表确认结果,并与数据表中的图表给出的预期效率进行比较:

 

负载/Ω 文/五 Iin/A Vout/V Iout/A 效率/% (有效/%)
16.4 3.384 0.377 4.485 0.262 92.09 95
50 3.451 0.123 4.478 0.086 90.8 92
100 3.498 0.064 4.471 0.042 83.9 83
390 3.545 0.021 4.485 0.009 54.054 56

 

校准、误差和调整

尽管数字纯粹主义者可能会有不同的论点,但模拟板布局必须无可挑剔才能获得最佳电路性能。模拟IC的所有电源轨都应较粗,并使用物理上靠近器件的电容器接地:至少1uF(钽)与100nF(陶瓷)并联。应包括一个良好的接地层,特别是在MAX471周围,因为高频、高幅度电流占据了该区域。MAX4上的7.471kΩ电阻应为低电感的精密类型,因为这些元件的任何容差都会直接影响结果。所有模拟PCB走线应尽可能短,远离数字线。MAX125基准放大器的输入和输出端应去耦,靠近IC。理想情况下,该板应包含单独的模拟和数字接地层,连接在一个点上。

据观察,10MHz时钟出现在意想不到的地方,因此,如果要通过印刷电路板路由该信号,则应在物理上远离模拟输入,尤其是电阻网络,并且中间有接地轨道。为了进一步降低噪声辐射,可以对该信号进行滤波以消除时钟谐波,并使用靠近处理器和ADC的简单数字门进行重构。'74HC00 非常适合此目的。

要获得绝对直流精度,应考虑许多因素。例如,MAX873A基准具有出色的漂移特性,但其初始精度(±1.5mV)在10位系统中误差为±14LSB。该误差可以通过在输出微调引脚和地之间连接微调电位器来调整。建议在输入和输出电阻分压器上切换基准电压,并将输入信号读取至ADC。通过此读数,您可以确定电阻分压器链中的误差并实现软件偏移。

为了精确校准电流检测放大器,必须在向输入和输出施加电流源时获取ADC读数,从而获得电流放大器和输出电阻中的误差。该电流源应设置为最小预期电流读数,因为MAX471在低电流时的主导误差是由内部运算放大器贡献的输入失调电压引起的。

结论

所讨论的系统由一系列电路模块构建而成,每个模块都经过单独测试。该设计程序消除了与系统初始上电相关的许多张力。所得结果与MAX1705数据资料所示的结果一致。有关本设计所用元件的更多详细信息,请访问ADI公司网站。网站上还提供 zip 文件 (A201code.zip) 的完整列表,其中包含 Atmel 微处理器 (MAX125.asm) 的汇编语言代码,以及运行 PC Windows 显示器所需的 Visual Basic 6 程序模块。

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分