覆铜板手写笔

相关内容

纸张计数显示装置

题目概述

这个是2013年的赛题,手写绘图板。基本任务是要求在覆铜板上能识别出金属表笔的接触位置,接触轨迹。题目为了统一难度和公平性,设定了几个限制

  1. 覆铜板必须是普通覆铜电路板,不得进行改变电阻率的涂层

  2. 只能在4个角进行电路连接

  3. 不能用传感器来检测金属表笔位置

  4. 单电源12V供电

  5. 功耗不大于1.5W

对题目进行一下分析。要求必须是覆铜板不能用额外传感器,就是指电路的负载必须是很小的电阻,要检测电流流过这个很小电阻时产生的电压。如果通过涂层增加了电阻率,则电阻增加,电流流过这个负载产生的电压也就增大,题目难度下降。

单电源12V供电,这就对检测电路中的放大器和供电方式提出了要求,增加了难度。一种方法是采用轨到轨的放大器,放大器使用单电源供电。另一种方法是将12V在电路中通过变换得到负电压,放大器使用正负电源供电,这样对放大器的轨到轨特性不用太高要求。芯片的选择范围大。

低功耗,不大于1.5W。覆铜板是很小的电阻,要能检测到相邻两点之间的电压差,需要一个较大的电流通过覆铜板。这样就不能简单的使用线性稳压器来进行电压变化,因为线性稳压器的输出电流等于输入电流。使用开关电源才可以达到低功耗要求。

总结:根据题目的要求可以简单设想出一个方案。设计一个开关电源从12V变化出一个低电压大电流的输出给覆铜板。设计放大电路检测覆铜板上各点的微小电压差。均衡选择放大器的轨到轨性能和供电电压。单片机采样放大器的输出,编程用拟合或者查表法显示表笔的位置。由于电路中有开关电源,所以开关脉冲干扰很大,微弱电压的检测需要做抗干扰。

img

第一部分,开关电源设计

开关电源有个引脚是电压反馈点,手册里一般称为FB或者Vsense,这个管脚电流很小,可以近似认为不对电阻分流。不管开关电源的拓扑是升压还是降压,根据它的反馈方式可以搭建为恒压输出或者恒流输出。电路稳定时 FB电压等于内部的参考电压VREF。所以对于恒压Vout= VREF/R2 * (R1+R2)。对于恒流 Iout= VREF / R4。

恒压输出
img
恒流输出
img

对于覆铜板,电阻很小,毫欧级别。所以选择恒流输出方式。再分析一下功率消耗。恒流输出时的功耗,一部分是开关电源自身消耗的,一部分是负载和检流电阻消耗的。先看看跟负载和检流电阻有关的功耗。RLoad上的功耗= I²*RLoad。例如I=1A,RLoad=0.005欧。功耗为 5毫瓦,非常小。检流电阻R4上的功耗= Vref ² / R4。例如对于1.2V内部参考电压的开关电源,对于1A电流,R4要选择1.2欧。功耗为 1.2 ²/1.2 = 1.2 瓦。可以看到,负载和检流电阻上的功耗,主要体现在检流电阻功耗上。

所以,要降低功耗,要优先选择内部参考电压低的开关电源,这样在电流不变的情况下,R4阻值选小。还有一种方法是将检流电阻上的电压经过放大后接FB。这样也可以降低检流电阻R4上的电压,代价是电路复杂一些。

img

开关电源选择TPS54332,FB是0.8V,比1.2V的FB可以节省55%的R4上的功耗。开关电源的功率损耗主要由这几部分:电感的直流电阻,续流二极管的功耗,芯片内部开关的功耗。开关电源的功耗计算很复杂,这里不展开分析。给出一个选择元件的方向。相同感值的电感选择线径粗的,这样直流电阻小。二极管选择肖特基的,导通电压低。芯片选择内部开关内阻低的。

第二部分,放大器及其供电

仪表放大器常用的例如 INA128和AD620,题目的电路特点是覆铜板上的共模电压相对于GND不高,在0.8V左右。查看INA128和AD620的手册,两者的输入电压范围都在电源供电内一点几伏。如果采用单电源供电,则要求最小电压比GND要高一点几伏。不能满足要求。如果换更接近轨道轨的仪表放大器,芯片不好拿到,也很贵。

img

img

所以在芯片供电上加以改进。看看如何从12V得到正负供电电压。从12V变换出正负电压有几种方法,例如使用成品电源模块12V转±5V,或者使用电荷泵开关电源转负电压出来。还可以使用带双路正负电压输出的开关电源芯片。这些方法都需要添加芯片和很多外围元件,不经济。

给覆铜板提供电流的就有一个开关电源,看看能否从它里面得到负电压。芯片第8管脚PH是开关节点,有正脉冲。利用这个脉冲,配上二极管和电容组成电荷泵,就可以得到负电压。

开关节点高脉冲时

img

开关节点低电平时

img img

开关节点高脉冲时,对C14充电,A点正电压,B点GND。开关节点低电平时,A点接GND,由于电容有保存电荷,B点比A点电势低,所以B点相对于GND就是负电压。负电压在周期脉冲的过程中,转移到C8上。NegVout上就得到了负电压。由于仪表放大器消耗的电流很小,C8上充入的电荷大于流出的电荷,C8可以稳定维持负电压。添加了两个电容,两个二极管,就方便的得到了负电压。

由于供电来自于开关电源,正负电压上的脉冲尖峰,纹波都比较大。对仪表放大器检测覆铜板上弱电压造成干扰。所以需要RC低通来滤除干扰。使用RC低通,也正是利用仪表放大器消耗电流小,R上产生的电压下降不影响供电。这里供电不要求很准的电压值,只要求能满足仪表放大器的输入端电压要求,并且稳定。

img

设计完仪表放大器的供电。再来看一下仪表放大器设计。仪表放大器的输出是给单片机ADC,不能有负电压。仪表放大器是差分输入,如果REF接GND,当负相端比正相端高时,就会输出负电压。所以,为了避免这个情况,将仪表放大器的REF接一个0.8V的电压,使输出提高到0.8V。这样当出现负相端比正相端高的时候,输出会在0.8V上减小,不会出现负电压。R16控制放大倍数,计算公式为 50K / R16. 选R16= 50欧,就设计了1000倍放大。

img

需要注意的是,由于使用中表笔的抬起会导致仪表放大器的输入开路,这样仪表放大器的输出会偏到电源轨。这个巨大波动造成的暂态需要恢复的时间较长。所以在两个输入之间接100K电阻,防止开路情况。覆铜板电阻在毫欧级别,这个R1造成的影响可以忽略。

第三部分,单片机采样和程序设计

单片机用于实现AD采样、数据拟合、校准和计算、图形显示这几个部分。

AD采样

使用stm32f429开发板内部自带的12bit的ADC,输入电压范围为0-3.3V,仪表运放输出通过屏蔽线直接连接在ADC输入端口。因为对采集频率要求不高,为了提高精度,采用采集多次取平均值的方式,提高数据精度。

下图是使用到ADC接口:

img

img

数据拟合

这里我们以9个测试点为例,实现简单的数据拟合。当然我们也可以多标记几十个点,然后采集出每个点电压数据,通过matlab进行数据拟合,得出电压和位置函数关系,就能够将采集到的电压,对应到实际pcb位置。我们以9个点为例:分别测出9个测试点的电压值,因为每一次九个点电压值相对GND都有小幅度变化,但9个点之间相对电压值没有变化,我们选择中间点的值为0,就能够算出其他8个点相对中间点的差值。就能够通过采集到的电压值反推出表笔所在位置。

实际单片机采集到仪表运放输出电压值(mv)

1015 987 965
925 903 881
843 818 792

九个点相对中间点电压差值(mv)

112 84 62
22 0 -22
-60 -85 -111

校准和计算

校准比较简单,在校准模式下,将表笔探头放在中间校准点,测试出校准点电压。计算时:当测量其他位置时,测出电压,减去中间校准点值电压,得到相对中间点的电压插值,根据差值就能够找到具体测试版上位置(差值可以通过描点来比较或者函数线性拟合)。

图形显示

图形显示使用开发板自带的LCD,分辨率240*240;用于测试点位置的显示。屏幕使用SPI接口来进行控制显示。

程序流程图

如图所示:在while循环中,完成校准、测量、计算和显示功能。

img

图形显示界面校准时红色圆圈表示校准表头要放置的位置。校准界面入下图所示:

img

运行的时候,没有圆圈的位置表示表头放置的位置。运行界面如下图所示:

img

第四部分,联调测试

恒流电源测试

img

按照原理图在面包板上搭建好电路。示波器通道1测试开关节点 PH管脚信号,示波器通道2测试电源输出。

开启电源给电路供电。点击 power按钮,开启电源界面。设置电压12V,开启正电压供电。

img

img

开启示波器,测试开关电源的两个信号。注意由于是开关电源,所以示波器表笔的接地要用短线缠绕一下,不能用接地夹子。接地夹产生的回路面积大,干扰太多。

img

img

仪表放大器供电测试

通道1测试正电压,通道2测试负电压。使用DC耦合。

img

可以测试到正电压在5.6V,负电压在-7.5V,满足仪表放大器的供电需求。

img

再看一下干扰隔离效果,使用AC耦合,通道1测试隔离前,通道2测试隔离后。分别测试正电压和负电压。

正电压隔离效果
img

负电压隔离效果
img

仪表放大器测试

仪表放大器的输出使用万用表测试。在覆铜板上画上坐标,用表笔点好位置,在表格里填写仪表放大器输出和坐标的对应关系。先测试9个点,看一下放大器是否正常工作。

打开万用表。主界面上的DMM按钮。选择直流电压档。万用表是自动量程。

img

img

将测试电压填入表格

img

联合测试

对单片机进行初步编程,将这个9个点位置显示在屏幕上,表笔接触哪个点,就熄灭屏幕上的点。后续再开发复杂功能。
img
img