构建4~20mA环路供电型温度监控器
R1和R2的结点电压可表示为:
VR12 = (VRLOOP + VREF) × R2/(R1 + R2) - VRLOOP
环路建立后:
VIN = VR12
由于R1 = R2:
VIN = (VRLOOP + VREF)/2 - VRLOOP = VREF/2 - VRLOOP /2
VRLOOP = VREF - 2VIN
当VIN = 0时流过满量程电流,此时VRLOOP = VREF。因此,满量程电流为VREF/RLOOP,或者≈24 mA。当VIN = VREF/2时,无电流流过。
VIN处的OP193放大器阻抗非常高,并且不会加载PWM滤波输出。放大器输出仅发生少许变化,约为0.7 V。
范围边界处(0 mA至4 mA以及20 mA至24 mA)的性能不重要,因此供电轨处的运算放大器性能要求不高。
R1和R2的绝对值不重要。但是,R1和R2的匹配很重要。
ADC1用于温度测量,因此本电路笔记直接适用于只有一个ADC的ADuCM361。EVAL-CN0319-EB1Z评估板包括标记为VR12点的电压测量选项,测量时使用ADuCM360上的ADC0输入通道。该ADC测量可用于PWM控制软件的反馈,调节4 mA至20 mA电流设置。
编程、调试和测试
● UART用作与PC主机的通信接口。这用于对片内闪存进行编程。它还可作为调试端口,用于校准滤波PWM输出。
● 两个外部开关用来强制该器件进入闪存引导模式。使SD处于低电平,同时切换RESET按钮,ADuCM360将进入引导模式,而不是正常的用户模式。在引导模式下,通过UART接口可以对内部闪存重新编程。
代码说明
用于测试本电路的源代码可从ADuCM360和ADuCM361产品页面下载(zip压缩文件)。源代码使用示例代码随附的函数库。
图2显示了利用Keil μVision4工具查看时项目中所用的源文件列表。
图2. Keil μVision4中查看的源文件 11386-002
温度监控器
ADC1用于热电偶和RTD上的温度测量。本节代码拷贝自电路笔记CN-0300。详情请参见该电路笔记。
通信部分
需调节PWM滤波输出,以便确保最小温度时的4 mA输出以及最大温度时的20 mA输出。提供校准程序,使用#define CalibratePWM参数可轻松包含或移除该程序。
若需校准PWM,接口板(USB-SWD/UART)必须连接至J1和PC上的USB端口。可使用“超级终端”等COM端口查看程序来查看校准菜单并逐步执行校准程序。
校准PWM时,应将VLOOP+和VLOOP–输出端连接至精确的电流表。PWM校准程序的第一部分调整DAC以设置20 mA输出,第二部分则调整PWM以设置20 mA输出。用于设置4 mA和20 mA输出的PWM代码会存储到闪存中。
UART配置为波特率19200、8数据位、无极性、无流量控制。如果本电路直接与PC相连,则可以使用HyperTerminal或CoolTerm等通信端口查看程序来查看该程序发送给UART的结果,如图3所示。
要输入校准程序所需的字符,请在查看终端中键入所需字符,然后ADuCM360 UART端口就会收到该字符。
图3. 校准PWM时的“超级终端”输出
校准后,演示代码关断UART时钟,进一步节省功耗。
校准系数保存在闪存内,因此不必每次在电路板上电时运行校准程序,除非VLOOP电平发生改变。
代码流程图见图4。
图4. 代码流程图
常见变化
该电路包括HART通信尺寸以及外部基准电压源尺寸。
电路评估与测试
本文档不含温度检测部分,因为这部分内容已在CN-0300中涉及。本文档重点关注温度-电流输出的性能。
PWM差分非线性(DNL)
首先测量滤波PWM输出的DNL。图5中的DNL曲线显示,在关键的4 mA至20 mA范围内具有优于0.3 LSB的典型性能。在PWM输出端利用二阶滤波器执行这些测试。使用两个47 kΩ电阻和两个100 nF电容,如图1所示。
评论