回焊炉之单芯片温度量测记录器
扫描二维码
随时随地手机看文章
电路板零件自动组装(SMD)的过程,需要事先研究出最佳的回焊炉(reflow oven)温度分布曲线,然后在量产时再将回焊炉温度控制在最佳的分布状况。
为了确定温度是控制在事先预期的分布范围之内,必须对电路板上数点做经过回焊炉的温度曲线量测与纪录,这正是回焊炉温度量测纪录器(reflow oven data-logger)的功用。这篇文章将利用松翰科技公司的微控器 SN8P1708 来实际制作一个简单的温度记录器。
1. 系统架构
<图1>系统架构
温度记量测录器主要使用热电偶来量测温度,因为热电偶允许长距离的量测点。整个硬件架构如图1 所示。由于K 型热电偶每度C 的输出电压差约为40μV,所以必须接上一个放大器才能被微控器的ADC 精确量得。热电偶温度计的使用必须将一个参考接合点置于已知的固定温度(如冰浴)之下,这即是热电偶的温度补偿,但这样的方法对于一般工业应用并不可行,所以为了方便使用热电偶必须使用热电偶补偿芯片。这里使用Analog Devices 公司的AD595 来提供补偿电压和同时作线性放大,所以不需要额外配置放大电路,就可以用一般的电表或是微处理器测读电压。
微控器SN8P1708 利用ADC 的一个通道来读取AD595 输出的电压,然后再将其利用SPI 串行传输储存于一颗EEPROM 的内存中。整个量测的温度曲线值依时间间隔储存于内存中;量测结束后,拔除热电偶接头,再利用RS232(或者是一颗低速USB 芯片,例如CY7C63742)来和个人计算机联机,将量测结果下载到计算机中。实作的电路图如图3 所示,本文暂时忽略与个人计算机联机下载资料的实作部份。电路图中,请特别注意AD595C(K 型热电偶专用的放大补偿芯片)和AT25128(16 KB 的EEPROM 芯片)的接线方式。
<图2>系统电路图。
2. AD595C 芯片
假设K 型热电偶量测接合点与参考接合点的温度分别为TM 和TR,则热电偶的输出电压为:
E = EK(TM) - EK(TR)
其中,EK(TM)表示K 型热电偶在参考接合点温度为0°C 时的输出电压。
如果TR已知,则可以求得EK(TR),进而利用热电偶参考函数的反函数求出量测接合点的温度:
TM = Ek-1[EK(TM) - EK(TR)]
当参考接合点的温度为0°C 时,K 型热电偶的量测接合点在25°C 的输出电压为1.000mV,电位差与温度间函数关系的Seebeck 系数约为40μV/°C。Analog Devices 公司的AD595 是专为K 型热电偶仪器设计使用的放大器,是经雷射精调(laser trimmed)的产品,放大倍率为247.3V/V,经过参考点温度补偿电路后,使得输出电压直接为量测点温度的倍数,即经过放大器后输出电压与量测点温度间关系为10mV/°C。更详细的内容可以在Analog 网站http://www.analog.com 中取得AD595 的资料册。
AD595C 的输出电压与热电偶输入电压关系式如下:
注意,
为实际的热电偶输出电压,而0.04 × TR为冰点补偿电压,电压单位皆为mV,温度单位为°C。如果是以线性的关系来近似,直接把AD595C的输出电压除以10 来转成温度值(即10mV/°C),将有如图3 所示,有不可避免的误差,不过若已知待测温度在0~300°C 之间,则其误差尚可以接受。
(a)
(b)
<图3>AD595C 之输出与线性化温度的误差。
3. SPI 串行型的EEPROM
AT25128 为Atmel 公司的EEPROM,具有SPI 传列传输接口。除了Vcc和GND脚外,SPI 传输所需的四支接脚为SO(即MISO)、SI(即MOSI)、SCK、和/CS(即/SS),其接线法请参考图2。其余二支脚位:/HOLD 脚用以暂停串行传输;/WP脚为0 时,用以防止数据写入状态缓存器。两脚位未用到时,都需要接到Vcc。
此芯片具有一个状态缓存器(Status Register),定义如下(本实作只用到位WEN 和RDY):
状态缓存器(0xxx 0000)
而控制EEPROM 的六个指令如下:
以下仅列举应用要点:
1. 容量为16KB(128kb),内存地址为0000h~3FFFh(共4000h 个地址),因此指定地址时需要2 个bytes。
2. 可兼容两种SPI 频率模式: CPOL="0" CPHA="0" ; CPOL="1" CPHA="1"。
3. 传输时最高位先传送。
4. 接收写入指令到写入内存中的写入周期约为2ms,因此主装置写入周期不可过短。
5. 写入EEPROM 步骤如下 ,直到RDY=0 时才完成一笔数据的写入。
6. 写入的地址为起始地址,写入数据从此地址开始往后写入。
7. 脚位/CS 的作用主要是讯框同步化(frame synchronization)的作用。一个完整的指令构成一个讯框,闲置时/CS 为高电位,传递讯框前要先把/CS 变成低电位,直到讯框结束后才再恢复成高电位,当/CS 为高电位时,脚位SO 会切换成高阻抗。
8. 当EEPROM 收到无意义的非定义指令时,会忽略之,并将SO 设为高阻抗脚,等待/CS 的下降缘,才会把脚位SO 设为输出脚。
4. 微控器SN8P1708 的SPI 界面
SN8P1708 微控器提供了一个串行传输的引擎,用以达成平行处理(不占用CPU 资源)串行输出入的目的。此通讯接口(SIO)与SPI(Serial Peripheral Interface)兼容,但是为三线式,只有SCK,SI,SO 三脚位;SCK 为频率脚,SI 为数据输入脚接到EEPROM 的SO 脚,SO 为输出脚接到EEPROM 的SI 脚,由于微控器担任主装置的角色,另外需要一个脚位来控制仆装置EEPROM 的/CS,所以设P1.5 为致能EEPROM 脚。SN8P1708 使用一个系统缓存器SIOM 来作SIO 的模式控制,另外有一个数据缓冲缓存器SIOB,和一个供频率定时器用的自动加载缓存器SIOR。串行式通讯接口内部有一个独立的8 位频率定时器SIOC,其无法由程序读写,但是每次溢位时,都会将缓存器SIOR 中所存之值载入来作为计时初始值。这个定时器的频率源为中央处理器的频率,经过除频后才送至定时器。
SN8P1708 中SIO 相关的缓存器共有一个模式缓存器SIOM、数据缓冲器SIOB、频率定时器SIOC、自动加载缓存器SIOR。模式缓存器SIOM 的定义如下:
TXRX: 0 表示仅作接收资料
1 表示全双工功能,可传送和接收数据
SEDGE: 0 表在频率的下降缘触发(falling edge)
1 表在频率的上升缘触发(rising edge)
Strate1,Strate0: 为串行串输频率定时器预除值dsck
START: 0 表传输结束
1 表立即开始传输,传输结束则自动清为0,并触发SIO 中断要求
SENB: 0 表禁能串行传输接口。脚位P5.0~P5.2 为一般输出入脚
1 表致能串行传输接口。脚位P5.0~P5.2 为串行传输脚
数据缓冲器SIOB 用来暂存输出与输入数据缓存器,每当开始全双工串行传输前先将欲送出的资料放到SIOB。当传完后SIOB 会接收到另一端传来的数据。每传完一个字符,SIOB 更新一次,因此每传完一个字符需将接收到的数据自SIOB 取出。
最后看频率产生模块SIOC 和SIOR。SIOC 是一个独立的8 位定时器,无法由程序读写,会自动加载SIOR 的值当作计时的初值,开始自动往上数值到溢位时,再重载初值,定时器的频率源fCTS 是CPU 的频率fCPU 经过除频器后才送至定时器,除频器的预除值dSCK 是由模式缓存器SIOM 的Strate1、Strate0来调整,因此串行频率周期
与频率
分别是:
注意,
为SIOR 的值,即频率定时器的初值。
5. 测试实验
测试的电路板依照图2 的电路图制作,其中AD595C 和AT25128 二颗芯片的照片如图4 所示。程序的撰写依照前述的方法,只有模拟转数字ADC 未介绍,这部分请参考e 科技杂志vol. 28, April 2003, p. 18~21 中林锡宽所著的『电动滑板车速度控制器』。
(a) (b)
<图4> (a) AD595C;(b)AT25128。
程序启动后,四颗四段显示器显示EEEE,表示待机中。按下『C』键,立即进行从AIN0 脚位读入电压的值,并且储存到EEPROM;如此反复直到预设的次数满为止,这时四颗四段显示器会显示AAAA。再读取电压值时,允许按下『C』键,来暂停读取;暂停中再按下『C』键来恢复读取。显示器会显示AAAA,则可以开始按『F』键来显示下一笔储存在EEPROM 的资料,或按下『F』键来显示上一笔数据。
.
实际测试是将热电偶置于热水中来进行(见图5),当按下『C』键后,可以看到四颗四段显示器显示653 的数值,即表示目前输入电压为5 × (653 / 4096)= 0.798 V,因为ADC 参考电源为5 V,而分辨率为12 位。整个过程结束后,则显示AAAA。同样的,以市售的热电偶温度计量测,得到80°C。如果以AD595的电压温度关系,直接成上100 就是温度,也可以得0.798 x 100 =79.8°C。二者的结果非常吻合。
<图9>实作结果
6. 结论
本文蒙国科会的大学生参与专题研究计划的完全补助(补助编号:92-2815-C-009 -021 -E)。最后,希望此文能激发工业界的人士尝试研发相关产品。制作实际产品时,需要在ADC 的参考电压脚位上再加上精密稳压器,才可以获得更精确的量测结果。