基于Cortex-M3的微控制器热电偶测量系统
用的EVAL-CN0300-EB1Z板
图3. 连接至USB-SWD/UART板和SEGGER J-Link-Lite板的EVAL-CN0300-EB1Z板
代码的校准部分
图3显示了USB-SWD/UART板。此板用作PC USB端口的接口板。该USB端口可用于通过基于UART的下载器对器件进行编程。它也可用于连接PC上的COM端口(虚拟串行端口)。这是运行校准程序所需要的条件。
J-Link-Lite插入USB-SWD/UART板的20引脚连接器中。J-Link-Lite提供代码调试和编程支持。它通过另一个USB连接器连接至PC.
代码说明
用于测试本电路的源代码可从ADuCM360产品页面下载(zip压缩文件)。源代码使用示例代码随附的函数库。图4显示了利用Keil μVision4工具查看时项目中所用的源文件列表。
图4. μVision4中查看的源文件
可调整编译器#define值(calibrateADC1和calibrateDAC),以使能或禁用ADC和DAC的校准程序。
要校准ADC或DAC,接口板(USB-SWD/UART)必须连接至J1和PC上的USB端口。可使用“超级终端”等COM端口查看程序来查看校准菜单并逐步执行校准程序。
校准ADC时,源代码会提示用户将零电平和满量程电压连接至AIN2和AIN3.注意,AIN2是正输入端。完成校准程序后,ADC1INTGN和ADC1OF寄存器的新校准值就会存储到内部闪存中。
校准DAC时,应通过精确的电流表连接VLOOP+输出端。DAC校准程序的第一部分校准DAC以设置4 mA输出,第二部分则校准DAC以设置20 mA输出。用于设置4 mA和20 mA输出的DAC代码会存储到闪存中。针对最终的4 mA和20 mA设置在AIN9处测得的电压也会记录下来并存储到闪存中。由于在AIN9处的电压与流经RLOOP的电流线性相关,因此这些值会用于计算DAC的调整因子。这种闭环方案意味着,可以使用片内24位Σ-Δ型ADC进行微调而消除DAC和基于晶体管的电路上的所有线性误差。
UART配置为波特率9600、8数据位、无极性、无流量控制。如果本电路直接与PC相连,则可使用“超级终端”等通信端口查看程序来查看该程序发送给UART的结果,如图5所示。
要输入校准程序所需的字符,请在查看终端中键入所需字符,然后ADuCM360 UART端口就会收到该字符。
5. 校准DAC时的“超级终端”输出
代码的温度测量部分
要获得温度读数,应测量热电偶和RTD的温度。RTD温度通过一个查找表转换为其等效热电偶电压(T型热电偶请参见ISE, Inc.的ITS-90表)。将这两个电压相加,便可得到热电偶电压的绝对值。
首先,测量热电偶两条线之间的电压(V1)。测量RTD电压并通过查找表转换为温度,然后再将此温度转换为其等效热电偶电压(V2)。然后,将V1和V2相加,以得出整体热电偶电压,接着将此值转换为最终的温度测量结果。
对热电偶而言,固定数量的电压所对应的温度会存储在一个数组中。其间的温度值利用相邻点的线性插值法计算。
图6显示了使用ADuCM360上的ADC1测量整个热电偶工作范围内的52个热电偶电压时获得的误差。最差情况的总误差小于1°C.
图6. 通过分段线性逼近法利用ADuCM360/ADuCM361所测52个校准点时的误差
RTD温度是运用查找表计算出来的,并且对RTD的运用方式与对热电偶一样。注意,描述RTD温度与电阻关系的多项式与描述热电偶的多项式不同。
有关线性化和实现RTD最佳性能的详细信息,请参考应用笔记AN-0970“利用ADuC706x微控制器实现RTD接口和线性化”.
代码的温度至电流输出部分
测得最终温度后,将DAC输出电压设置为适当的值,以便在RLOOP上产生所需的电流。输入温度范围应该是?200°C至+350°C.代码针对?200°C和+350°C设置的输出电流分别是4 mA和20 mA.代码实施的是闭环方案,如图7所示,其中AIN9上的反馈电压通过ADC0测量,然后此值用于补偿DAC输出设置。FineTuneDAC(void)函数执行此项校正。
为获得最佳结果,应在开始该电路的性能测试前校准DAC.
图7. 闭环控制4 mA至20 mA的DAC输出
出于调试目的,以下字符串会在正常工作期间发送至UART(见图8)。
图8. 用于调试的UART字符串
常见变化
对于标准UART至RS-232接口,可以用ADM3202等器件代替FT232R收发器,前者需采用3 V电源供电。对于更宽的温度范围,可以使用不同的热电偶,例如J型热电偶。为使冷结补偿误差最小,可以让一个热敏电阻与实际的冷结接触,而不是将其放在PCB上。
针对冷结温度测量,可以用一个外部数字温度传感器来代替RTD和外部基准电阻。例如,ADT7410可以通过I2C接口连接到ADuCM360.
有关冷结补偿的更多详情,请参考ADI公司的《传感器信号调理》第7章“温度传感器”.
如果USB连接器与本电路之间需要隔离,则必须增加ADuM3160/
- “节能之星”EFM32应用方案——手持式激光测距仪(06-25)
- 智能电表设计方案、案例及方案对比(04-07)
- 基于Kinetis微控制器的三相电表设计(11-10)
- Cortex-M3的次声波输气管道泄漏检测系统(08-08)
- “节能之星”EFM32应用方案-手持式激光测距仪(07-27)
- Cortex-M3内核浮点型运算的研究与实现(03-11)