DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1430|回复: 0
打印 上一主题 下一主题

[待整理] 构建4~20mA环路供电型温度监控器

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-27 23:28:00 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
连接/参考器件
          ADuCM360:集成双通道Σ-Δ型ADC和ARM Cortex-M3的精密模拟微控制器
          ADuCM361:集成单通道Σ-Δ型ADC和ARM Cortex-M3的精密模拟微控制器
          ADP1720:50 mA、高压、微功耗线性稳压器
          OP193:精密、微功耗单通道运算放大器
          ADR3412:微功耗、高精度1.2 V基准电压源
          评估和设计支持
         
        电路评估板
         
        CN-0319电路评估板(EVAL-CN0319-EB1Z)
         
        设计和集成文件
         
        原理图、布局文件、物料清单
         
        电路功能与优势
         
        图1所示电路是一款完整的环路供电型热电偶温度测量系统,使用精密模拟微控制器的PWM功能控制4 mA至20 mA输出电流。
         
         
        图1. ADuCM360控制4 mA至20 mA基于环路的温度监控电路(原理示意图:未显示所有连接和去耦)
           
          本电路将绝大部分电路功能都集成在精密模拟微控制器ADuCM360上,包括双通道24位Σ-Δ型ADC、ARM Cortex-M3处理器内核以及用于控制环路电压高达28 V的4 mA至20 mA环路的PWM/DAC特性,提供一种低成本温度监控解决方案。
           
          其中,ADuCM360连接到一个T型热电偶和一个100 Ω铂电阻温度检测器(RTD)。RTD用于冷结补偿。低功耗Cortex-M3内核将ADC读数转换为温度值。支持的T型热电偶温度范围是-200℃至+350℃,而此温度范围所对应的输出电流范围是4 mA至20 mA。
           
          本电路与电路笔记CN-0300中描述的电路相似,但本电路具有以更高分辨率的PWM驱动4 mA至20 mA环路的优势。基于PWM的输出提供14位分辨率。有关温度传感器与ADC的接口,以及RTD测量的线性化技巧详细信息,请参考电路笔记CN-0300和应用笔记AN-0970。
       
        电路描述
          电路采用线性稳压器ADP1720供电,可将环路加电源调节至3.3 V,为ADuCM360、运算放大器OP193和可选基准电压源ADR3412提供电源。
         
        温度监控器
         
        本部分电路与CN-0300(《提供4 mA至20 mA输出的完整闭环精密模拟微控制器热电偶测量系统》)中描述的温度监控器电路相似,使用ADuCM360的下列特性:
          ● 24位Σ-Δ型ADC内置PGA,在软件中为热电偶和RTD设置32的增益。ADC1在热电偶与RTD电压采样之间连续切换。
          ● 可编程激励电流源驱动受控电流流过RTD。双通道电流源可在0 μA至2 mA范围内以一定的阶跃进行配置。本例使用200 μA设置,以便将RTD自热效应引起的误差降至最小。
          ● ADuCM360中的ADC内置了1.2 V基准电压源。内部基准电压源精度高,适合测量热电偶电压。
          ● ADuCM360中ADC的外部基准电压源。测量RTD电阻时,我们采用比率式设置,将一个外部基准电阻(RREF)连接在外部VREF+和VREF-引脚上。由于该电路中的基准电压源为高阻抗,因此需要使能片内基准电压输入缓冲器。片内基准电压缓冲器意味着无需外部缓冲器即可将输入泄漏影响降至最低。
          ● 偏置电压发生器(VBIAS)。VBIAS功能用于将热电偶共模电压设置为AVDD_REG/2 (900 mV)。同样,这样便无需外部电阻,便可以设置热电偶共模电压。
          ● ARM Cortex-M3内核。功能强大的32位ARM内核集成了126 KB闪存和8 KB SRAM存储器,用来运行用户代码,可配置和控制ADC,并利用ADC将热电偶和RTD输入转换为最终的温度值。它还可控制PWM输出,驱动4mA至20 mA环路。出于额外调试目的,它还可以控制UART/USB接口上的通信。
        通信
         
        ● 使用OP193对16位PWM输出进行外部缓冲,并控制外部NPN晶体管BC548。通过控制此晶体管的VBE电压,可将经过47.5 Ω负载电阻的电流设置为所需的值。这样就针对4 mA至20 mA输出提供优于±0.5℃的精度(–200℃至+350℃,参考测试结果)。
          ● 使用内部DAC为OP193提供1.2 V基准电压。或者,也可以使用1.2 V精密基准电压源ADR3412,获得温度范围内更高的精度。该外部基准电压源功耗与内部DAC相近(~50 μA)。参见“功耗测量测试”部分。
         
        通过ADuCM360片上16位PWM(脉冲宽度调制)控制4 mA至20 mA环路。通过软件可配置PWM的占空比,以便控制47.5 Ω RLOOP电阻上的电压,进而设置环路电流。请注意,RLOOP的顶端连接ADuCM360地。RLOOP的底端连接环路地。由于这个原因,ADuCM360、ADP1720、ADR3412和OP193的输出电流,加上滤波PWM输出设置的电流,一同流过RLOOP。
           
          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所示。
         
        图5. 电路的典型DNL性能
        温度-电流输出
         
        图6中的设置用来测试电路的通信部分。
         
        PC通过UART将温度值发送到ADuCM360,然后ADuCM360根据该值调节PWM输出。环路电流经测量并记录。
           
          1℃的温度提升相当于:
          (20 mA – 4 mA)/550 = 0.029029 mA
         
         
        图6. 测量设置
           
          表1. 温度和预期电流
         
           
          CN-0300(DAC控制)和CN-0319(PWM控制)中的环路电流测量误差见图7。
         
        图7. DAC控制(CN-0300)和PWM控制(CN-0319)两种情形下电流环路误差与温度读数的关系
           
          这些结果显示校准后,无反馈PWM控制环路的精度优于有反馈的DAC控制环路。
           
          若需更高精度,可增加反馈环路。这将需要使用ADuCM360并使能第二个ADC来监控环路。它将增加功耗(ADC0导通),并降低环路的响应速度。
           
          电流环路的更新速率取决于CPU和ADC配置。在示例代码中,CPU速度设为1 MHz,ADC频率为5 Hz。ADC对结果求平均值前,先转换RTD和热电偶上的一部分样本。样本数由参数SAMPLEN0定义。在示例代码中,其默认值设为8。这将使电流环路的更新速率为740 ms。
           
          如需更快的环路响应时间,可减少SAMPLEN0。
         
        功耗测量测试
         
        正常工作时,整个电路的功耗通常为2 mA。保持在复位状态时,整个电路的功耗不到550 μA。
           
          为方便低功耗操作,可编程内部CLKSYSDIV寄存器以降低ADuCM360/ADuCM361内核工作速度,使低功耗系统时钟等于8 MHz。另外,编程CLKCON0寄存器可允许将16 MHz内核频率分频至二进制的2至128倍。本示例代码中,使用8作为时钟分频值,内核速度为1 MHz。
           
          主ADC以增益32使能。还使能PWM和DAC,用于环路通信。
           
          禁用所有未使用的外设,最大程度减少功耗。
           
          表2列出整个电路中的各项IDD功耗。
           
          表2. 温度监控电路元件的IDD典型值
         
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-16 19:05 , 耗时 0.100488 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表