本文为版权内容,文章内容(包括但不限于文字、图片、声音、录像、图表、软件、程序)未经版权人书面许可,任何人不得引用、复制、转载、摘编或以其他任何方式非法使用。
Copyright material!
All material on this page is copyright of ZhangFeng(zjjszhangf@gmail.com) unless otherwise acknowledged. Duplication or sale of all or any part of it is not permitted.
作者:张锋 (zjjszhangf@gmail.com)
本制作的特点
1、 使用全新易购的VFD显示屏,显示效果好。屏幕包含8位米字结构,可显示英文字母、数字及标点,通用性强;
2、 使用了新型的驱动电路,单5V供电,实现交流驱动灯丝与负高压驱动阳极与栅极,符合VFD屏驱动规范,显示效果好,使用寿命长;
3、 尽可能采用小型全贴片零件制作,整机小巧,做到了超薄型;
4、 充分利用单片机内的资源,使用最少的外围硬件驱动,且全部使用现成零件,无需绕制变压器,制作容易,成本低;
5、 单片机独立完成扫描工作,可表现出同屏中的不同字段显示不同亮度字符的特殊显示效果;
6、 整体设计成一个VFD通用显示模块,且单片机空余I/O脚全部引出,利于后期扩展应用范围;
AOTOM米字荧光屏简介
本制作采用的VFD屏幕的型号为:AOTOM20070-1A04,此屏的主要优点有:全新屏、价格低廉、容易购买。从笔段结构上看,此屏内部没有特殊的标记,仅包含字符笔段与冒号及点号,属通用屏,全屏为单一绿光显示,亮度高,可以应用到很多不同的应用中。如果仔细搜索网络,可以从“上海中荧”网站上发现笔段相同,标号为20065-1A13的库存VFD屏。
从屏幕的字段结构上来看,字符显示为米字型,全屏总共包含8个米字显示位、3个冒号及上下两个点号位。冒号位与点号位分别布置在两个连续米字的间隙处,中间位置处仅有冒号无点号。这种字段布置的屏幕很适合制作成电子钟应用,其中的冒号位可用来作为秒点显示,主时间显示结构可以设计成“AM/PM+小时2位+分钟2位+秒2位”的12小时制显示结构或者设置为“日期的两位英文缩写+小时2位+分钟2位+秒2位”的24小时制显示结构。
从屏幕内部布线情况来看,此屏属于动态扫描屏。整屏分成8个扫描字段,分别代表了8个米字位字符及部分字符位附带的冒号与点号。全屏包括4引脚灯丝脚在内总共有效引出脚数量为28脚,灯丝与其他引脚间存在2根无引出脚的空位作为间隔,总共占据了30个2mm间距的脚位,所有引出脚全部位于屏幕上方一端,属单端引脚屏,此结构引脚的优点是便于在屏幕下方布置零件,可充分利用PCB的面积,在维修时,可通过掀起屏幕的一端露出屏幕下方零件进行维修,无需焊下VFD屏。当然,考虑到屏幕引脚多次弯折后容易折断,所以应当尽量避免进行此类操作。屏管脚连接如下表所示:
序号 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
连接 |
F1 |
F1 |
NP |
P1 |
P2 |
P3 |
P4 |
P5 |
P6 |
P7 |
P8 |
P9 |
P10 |
P11 |
P12 |
序号 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
连接 |
P13 |
P14 |
P15 |
P16 |
8G |
7G |
6G |
5G |
4G |
3G |
2G |
1G |
NP |
F2 |
F2 |
AOTOM20070-1A04 管脚连接表
备注:表中NP代表无引出的空脚;G为栅极引脚;P为阳极引脚;F为灯丝引脚;
字段组成及驱动要点
AOTOM20070-1A04屏字段为米字结构,此处的米字结构与通用的14段米字基本类似,但又不完全一样,个别地方存在微小的区别,与标准的14段米字不同,此屏的米字中间增加了一个独立的点笔端(s笔段),在设计字符笔段组成时需要特别注意不要遗漏这一笔段。其次,米字符号中的j和p笔段电路是连接在一起的,两笔段无法单独点亮。
驱动AOTOM20070-1A04 VFD屏的规格参数为:灯丝为交流驱动,电压范围为2.2Vac~2.6Vac,推荐驱动电压为2.4Vac,灯丝典型电流80mA;阳极与栅极电压相同,推荐电压值为+22.0V,最大值为+28.0V;典型阳极电流9.8mA,典型栅极电流10mA;阳极与栅极截止电压也相同,都为-3.0V;扫描占空系数Du为1/9;脉冲宽度Tp为100μS。
VFD屏驱动方案选择
上面已经谈到,AOTOM20070-1A04米字荧光屏属动态扫描屏,动态驱动的VFD屏是将每个独立字段进行分离,不同字段的相同笔段串联在一起,而各字段的栅极则独立引出。通过控制栅极上施加的电压来控制某字段段的亮灭,通过高速的动态扫描即可实现整个屏幕内容的显示。由于动态扫描结构的VFD屏串联了各字段公共阳极的方式进行连线,大大减少了VFD屏的引出脚,适合制造字段组成比较多的VFD屏。动态扫描屏的缺点是驱动电路比较复杂,与同规格的静态屏相比需要更加高的阳极、栅极电压才能驱动,如果扫描周期掌握不好,屏幕可能出现闪烁感,影响实际显示效果。
下面列出了驱动动态扫描屏可选的两种常见方案:
方案一:专用动态扫描电路驱动VFD
驱动VFD动态屏通常使用的是专用的动态驱动芯片进行驱动。使用这一方案的优点是外围电路简洁、硬件成本低、代码编写简单。通常的VFD动态扫描芯片内包含有串并转换、RAM、动态扫描等电路,可独立完成动态VFD屏的扫描显示,程序仅需将所需要显示的内容发送给显示芯片,动态扫描等工作由芯片独立完成,简单易用。这一方案的缺点是专用芯片价格稍高,且无法实现特殊的显示效果。
驱动动态VFD屏可视实际情况选择使用合适的专用芯片,下表列出了常见的动态屏驱动芯片的名称及规格,其中端口数量中的“G”代表笔段数量(Grid),“S”代表笔段位数(Segment)。
商标 |
型号 |
输出电压 |
驱动类型 |
端口数量 |
NEC |
μPD16311 |
-35V |
负压型 |
8G ×20S~ 16G ×12S |
μPD16312 |
-35V |
负压型 |
4G ×16S~ 11G ×11S |
|
μPD16315 |
-35V |
负压型 |
4G ×24S~ 12G ×16S |
|
PTC |
PT6311 |
-35V |
负压型 |
8G ×20S~ 16G ×12S |
PT6312 |
-35V |
负压型 |
6G ×16S~ 11G ×11S |
|
PT6315 |
-35V |
负压型 |
4G ×24S~ 12G ×16S |
|
JRC |
JU3426 |
-45V |
负压型 |
14G ×16S |
NJU3427 |
-45V |
负压型 |
4G ×28S~ 16G ×20S |
|
HOLTEK |
HT16511 |
-35V |
负压型 |
8G ×20S~ 16G ×12S |
HT16512 |
-35V |
负压型 |
4G ×16S~ 11G ×11S |
|
HT16515 |
-35V |
负压型 |
4G ×24S~ 12G ×16S |
从表中可以看出,常见的动态VFD驱动芯片基本都是负压驱动型。不同公司生产的芯片很多在管脚位、封装上是完全一致的,可代换使用,实际应用电路上仅存有微小区别,比如震荡电阻的阻值不相同。这些芯片的典型电压一般为5.0V,部分芯片是可以低于5.0V的电压下工作。VFD专用动态驱动芯片一般还同时提供有多个开关量输入、矩阵键盘扫描、LED驱动输出等一些附加资源,方便实际开发应用,以降低硬件成本与节约单片机资源。更加详细的说明请阅读厂家提供的规格说明书。
如果对制作的稳定性要求较高,可选用NEC的μPD系列,如果综合考虑价格及可购性等因素,则建议选择PTC公司的产品,其中PT6311、PT6312、PT6315的典型逻辑驱动电压为5.0V(也可工作在3.3V电压下)。
方案二:单片机自主完成扫描工作
驱动VFD动态扫描屏的另外一种方法是不使用专用电路,由单片机独立完成扫描工作。由于普通单片机的I/O口无法直接驱动高压VFD,所以通常使用三极管或者高压驱动IC间接驱动VFD引脚,而扫描显示部分则由单片机来完成。这一方案的优点是成本低,缺点是对代码编写的要求比较高,而且由于使用单片机来完成扫描工作,占用单片机内部资源与运行时间,可能降低单片机运行时的实时性能。
在本制作初期试制过程中,分别制作了以上两种方案的测试板。
对于专用动态芯片驱动方案,由于需要驱动米字的所有笔段及冒号与点号的显示,则动态驱动芯片需要至少能够驱动16个笔段与8个栅极的显示,从表中选择PT6315进行驱动则满足需要。但是在具体应用中,所有笔段是否需要全部利用起来,应根据实际需要来确定,例如仅使用其中的‘8’字位部分用于数字显示,则可以减少笔段连接,或者也可以考虑将其中的一些笔端连接起来,在不影响显示含义的前提下,也可减少笔段连接,这样就可以采用PT6311等芯片来驱动。PT6315芯片采用四线串口驱动,驱动程序比较简单,请参考网上相关的资料,这里就不再详细说明。在实际实验过程中,也尝试使用了HT16511芯片进行驱动,但是发现在显示过程中会偶发部分显示笔画消失的现象,原因不明,所以一般建议使用PT系列的芯片。
对于单片机自驱动方案,考虑到使用三极管搭接电平转换电路焊接工作量大,且PCB布线困难,所以直接选用STF16360作为驱动芯片,它总共提供了36个高压输出端口,实际驱动此屏只需要使用到其中的16个笔段加8个栅极总共24个输出端口。STF16360相关规格参数如下表所示:
商标 |
型号 |
输出电压 |
驱动类型 |
端口数量 |
STF |
STF16360 |
-30V |
负压型 |
36 |
通过实际测试,以上两个方案都可以完成此屏的驱动,但是考虑到本制作的目标是尽量做到小巧化,QFP-52封装的PT6315动态扫描芯片无法实现完全藏到宽度只有2cm的VFD屏下方,而QFP-44封装的STF16360尺寸稍小,可以完全被屏幕遮盖。同时电路中的STF16360实际只使用了部分驱动脚,其下方一侧的11只引脚中只使用到了1只引脚,更利于在小面积PCB中完成布线工作。而PT6311虽然提供了如驱动LED指灯、按键等附加功能,但是这些功能都可以使用单片机富余的I/O引脚来完成。综合以上因素,决定最后的采用STF16360配合单片机主动扫描的制作方案完成本制作。
单片机依旧选择了常用的AT mega8芯片,主要还是考虑到了这一单片机内部资源丰富、价格低廉,上手容易,且使用人数量众多,开发资料丰富的优点。在本制作中,为节约成本,降低外围元件,如灯丝驱动方波信号的生成、高压PWM信号的生成、动态扫描、时钟计时等大部分工作都需要依赖Atmega 8芯片来完成。当然,只要资源满足本制作的需要,读者也可以选择自己熟悉的不同类型的单片机进行开发。
电路设计
灯丝驱动部分采用L9110S电机驱动作为芯片H桥变换,将直流换成交流方波,H桥输出的交流方波通过两个小容量的电解电容进行耦合,在灯丝两端获得平均电压约为2.6V的交流斜方波,作为灯丝AC驱动电压。
全桥电路中的输入脚所需的驱动信号由AT mega8的两个I/O引脚提供,两个I/O引脚输出互补的方波信号,在方波信号的切换过程中增加了一定时长的死区时间,防止出现H桥臂短路,对电路产生干扰。由于是动态显示的VFD屏,灯丝的驱动频率以较高为好,过低的扫描频率会导致屏幕出现闪烁现象,影响显示效果。由于AT mega8的片内定时器是共用的,所以综合考虑后,本制作设定的灯丝驱动频率为5kHz。在实际软件编写过程中,由于受到单片机硬件资源的限制,实际输出的交流灯丝驱动电压的频率有轻微的动态变化,但通过测试的情况来看,对屏幕的实际显示效果无影响。
负高压部分采用的是电感式Buck-Boost变换电路,利用AT mega8中的定时器的快速PWM模式产生80kHz的占空比可调方波,驱动以8550为驱动三极管、1mH电感为能量传递介质的负电压变换电路,通过调节驱动方波的占空比来调整输出的电压值的高低。原考虑在负高压输出中使用采样电阻分压采样输出给AT mega8mega8L的内部AD转换器进行电压采样,通过软件动态调节驱动信号的占空比以实现稳压。但是通过试验发现,此屏对高压的波动有一定的宽容程度,通过试验确定一个最优的固定占空比的PWM信号驱动升压电路,外围虽然没有稳压电路,但显示依旧稳定。实际软件中,通过调整参数进行试验,最后输出电压大约为-20V~-21V左右的负高压,屏幕亮度适中,Buck-Boost电路工作稳定。
“截止偏压”部分通过在栅极和阳极电压供电电路中增加一个3.0V的稳压二极管串联限流电阻后中间搭接到灯丝中心电位来实现,灯丝中心电位则使用两个3kΩ的电阻串联,取中间位置的简单电路来实现,稳压管上可选择并联一个电解电容来增加电压的稳定性。
显示驱动部分的电路则比较简单,STF16360负责所有笔段与栅极的驱动,单片机通过简单的串行数据通路与STF16360连接,将所需要显示的数据逐位输送给STF16360,送完后发送锁存信号完成串并转换并进行显示。由于此VFD屏的笔段数量为16,栅极数量为8,则所有数据使用3个字节即可完整描述,且16和8又正好都是8的倍数,送出的前一个字节为栅极驱动信号,后两个字节为笔段驱动信号,软件层上相当容易处理。
按键部分采用的是简单三按键结构,完成调节日期、时间、闹铃等各项设置功能,按键连接到了ISP中的三个引脚上,复用此资源,方便利用板上的ISP插针引出按键到外部。
最后,考虑到此制作使用的是通用显示屏幕,制成品不一定局限在电子钟应用,还可以开发成为各种其他类型的应用,所以在设计上尽量将其设计成通用模块。所以一些在增加传统电子钟DIY中常见的如CDS、红外接收模块、温度传感器等相关零件没有出现在本电路中,但是电路中使用2.0mm间距的排针引出了单片机未使用的所有I/O引脚,以方便后期连接外接电路,扩展开发出更多的应用。
元件表
数量 |
元件值 |
元件名称 |
元件标号 |
3 |
|
SWITCH2-SMD-1101NE贴片按键 |
S1,S2,S3 |
4 |
0u1 |
C-EUC0603 |
C1,C5,C6,C11 |
1 |
1MH |
INDUCTORCR75电感 |
L1 |
2 |
1R0 |
R-EU_R0603 |
R7,R8 |
1 |
1k5 |
R-EU_R0603 |
R6 |
1 |
3V/0.5W |
ZENER-DIODESOD80C稳压管 |
D2 |
2 |
3k0 |
R-EU_R0603 |
R10,R11 |
2 |
4u7 |
CPOL-EUSANYO_SMD_A5 |
C7,C8 |
2 |
10k |
R-EU_R0603 |
R2,R5 |
2 |
12p5 |
C-EUC0603 |
C3,C4 |
2 |
20k |
R-EU_R0603 |
R3,R4 |
1 |
22-23-2021 |
22-23-2021 |
X1 |
1 |
22p |
C-EUC0603 |
C10 |
1 |
22uf/50v |
CPOL-EUSANYO_SMD_C6 |
C9 |
1 |
32.768K |
CRYSTAL32-SMD手表晶振 |
Y1 |
2 |
100k |
R-EU_R0603 |
R9,R12 |
1 |
100uf/10v |
CPOL-EUSANYO_SMD_C6 |
C2 |
1 |
8550 |
PNP |
Q1 |
1 |
87758-0216 |
87758-0216 |
X3 |
1 |
87758-1816 |
87758-1816 |
X2 |
1 |
AOTOM20070-1A04 |
VFD屏 |
|
1 |
AVR-MEGA8-AI |
AVR-MEGA8-AI单片机 |
IC2 |
1 |
L9110SSO08 |
L9110SSO08 H桥驱动 |
IC1 |
1 |
SS14 |
DIODE SMA肖特基二极管 |
D1 |
1 |
STF16360 |
STF16360 |
IC3 |
1 |
VARISTORCN1812 |
VARISTORCN1812自恢复保险丝 |
R1 |
安装调试
在焊接元件之前,建议先使用耐高温的聚酰亚胺胶带将排针孔、屏幕焊接插孔这两部分先贴起来,两面都要贴,以防止在焊接过程中粘到焊锡,发生堵孔的现象。在焊接IC等元件时,也可以使用聚酰亚胺胶带对零件进行临时固定,防止在焊接起始阶段中发生IC移位等问题。
焊接制作时建议先焊接正面的AT mega8单片机与STF16360芯片及时钟晶震元件部分,这一部分的IC元件引脚多,初学者容易出现焊接错误,建议仔细进行。焊接完成正面零件后,先清洗一下松香等残余物,然后用放大镜仔细检查是否有焊接错误,如果正面零件焊接没有问题,再进行反面零件的焊接。PCB反面主要为电阻、电容、插针等分立式元件,焊接起来会比较容易。虽然,由于尺寸限制,本制作中使用的电阻、电容元件很多是0603封装的,尺寸比较小,但是如果稍加练习再加上小心焊接,其实还是很容易完成的。
焊接完成所有表贴零件后,接着焊接2.0mm排针与XH2.54mm 2P的电源座,VFD屏幕则先不要焊接。这里建议先进行PCB清洗,在焊接过程中推荐只使用松香作为助焊剂,在最后清洁时只需要使用无水酒精配合一次性牙刷清洗几次即可,安全环保。清洗完成后的PCB板应在晾干后使用放大镜进行仔细检查,看一下元件是否焊接正确,有无短路或虚焊的现象。如果没有明显的问题,则可以进行初步上电测试过程。
在初次上电前,建议先用万用表的电阻档测量一下供电引脚的电阻值,由于电源线路中并联有电容,需稍等一段时间,待读数稳定后方为正确值。如果存在电阻读数过小,应该先检查焊接是否正确,是否存在短路等问题。正常电阻大约在20MΩ级。
如果上电未有明显问题,则可以准备将程序通过USBISP写入AT mega8内,由于这里的ISP口是通过2.0mm排阵引出的(双排针最下面3行6只引脚),无法与USBISP直接连接,所以建议读者自己制作一个6-pin的2.0mm排母转2.54mm排针的转接板,也可以从2.0mm的排插中拆出6个插头,使用热缩膜热缩绝缘,作为简单的转接插线,插线的另外一头通过2.54mm的杜邦线与USBISP连接。连接完成,如果没有错误,应该可以使用ProgISP等软件读出或者写入AT mega8中的代码与数据,如果无法读取或者写入数据,则应该检查AT mega8焊接是否可靠,ISP连线是否正确。
正确写入程序后,应该接着检查各主要电路部分是否工作正常,先检查两个屏幕灯丝驱动电压是否正常,可以使用万用表连接PCB屏幕安装排孔左右两端的灯丝电压,由于灯丝驱动电压是高频交流电,使用万用表测量读数可能不准确,Fluke 17B万用表实际测量中显示读数为1.9Vac。有条件的读者可以使用示波器观看输出波形是否为正确的斜方波。高压部分通过测量HV输出电容两端的电压即可,正常读数应该在20V左右。
如果两组电压都没有问题,则可以将VFD屏的管脚塞入焊接排孔内,接通电源,向侧上方轻按VFD屏,使屏幕的管脚与焊接孔紧密接触,如果PCB工作正常,屏幕此时应该正常显示出时钟,如果屏幕亮度正常,笔段显示正确,则可以断开电源后将屏幕焊接上PCB。如果可以正常显示,但部分笔段缺失,可通过向屏幕其他方向施加按压力,确保接触正常,如果未有改善,则需要仔细检查STF16360的焊接情况。
在PCB正面焊接上VFD屏幕后,屏幕与正面下方的零件之间存在一定程度的空隙,也就是说屏幕基本还是处于悬空的状态,对玻璃结构的VFD屏幕的保护起见,建议在屏幕下增加一层缓冲层。一般可在屏幕下方左右各贴一小片泡棉双面胶将屏幕与PCB板粘在一起即可。
全部制作完成后,建议测量一下工作电流,正常工作电流大约为110mA~120mA,如果测量到的电流过高,需要仔细检查线路及所使用的零件质量。
软件设计
软件方面的设计主要还是集中在显示部分与时钟部分,时钟部分与传统的时钟代码没有什么本质的区别,这里重点谈一下显示部分的软件结构。
由于是由单片机完成扫描显示功能,所以程序中使用全局数组uchar8 Vdata[8]代表屏幕上从左到右的每个字符位显示的字符所代表的ASCII码值,由于米字字符自身结构上的限制,所能够表达的字符有限,内部字库设置的内容为数字0~9、大写字母A~Z、部分小写字母以及如“<>*[]+-”等简单符号,代码中通过vdata[]中的ASCII码从字库中查找到对应的米字笔段数据,作为显示数据。以上工作在一个定时器中断中调用,检索出的数据与冒号及点号的笔段数据进行组合,与当前字符对应的栅极驱动数据一起形成3字节的显示数据,串行送入STF16360中进行锁存显示。对于屏幕中存在的冒号及点号,则在扫描到对应字符时,在输出字段阳极数据前根据冒号及点号的情况进行数据合成后再同步显示。
在动态扫描显示的代码中,存在一个确定显示时间片的全局数组uchar8 Bright[8],其中的每个数字都对应一个字符位,数字值代表在一个栅位的扫描周期中,实际的显示周期占据的扫描时间片数量,数字越高,则显示保持的时间越长,相对应的字符显示出的亮度也就越高。由于每个字符的亮度值都是独立的,则通过修改这一全局数组总的值即可实现同屏每个字段以不同的亮度显示。
考虑到本模块被设计为通用模块,所以在附录文件中给出了基础的源代码,此源代码完成如时钟、I/O口的配置,生成灯丝驱动信、高频PWM驱动信号,以及与Stf16360进行数据传输的代码,实现了驱动VFD屏幕并在其上显示0~7数字的功能,进一步的应用功能,读者可以根据实际需要自己编写对应的代码。
注意事项
本电路中使用L9110S作为H桥驱动芯片主要是考虑到其价格低廉,易购买,但是L9110S自身压降偏大、效率不高,在实际使用过程中,会出现一定程度的芯片发热现象,同时两个4u7 35V隔离电解电容也会出现轻微发热,属正常现象。如果需要改进电路,提高效率,可以考虑换成如LM9022之类的VFD灯丝专用驱动芯片。
在环境温度较低的情况下,初次加电时,部分屏幕两端的字符可能出现亮度稍暗的现象,这一现象只需稍等几十秒待灯丝达到稳定温度后,即自行消失。在个别情况下,屏幕内的灯丝可能会发出轻微的高频声,在很安静的夜间比较明显,这一现象产生的问题主要原因是驱动灯丝的交流频率值不当,由于受到AT mega8L单片机本身性能的限制,定时器资源是复用的,频率无法提高到超过音频频率,这一问题可通过在屏幕前安装一块透明压克力滤光板或者将制作增加一个外壳来解决。
考虑到作为通用模块及PCB面积的限制,所以喇叭部分并未设计安装在PCB上,仅使用2.0mm的2-pin针脚引出,请根据需要连接上普通5V无源蜂鸣器以实现闹铃及提示音发声功能。
电路板制作调试完成后,为了确保良好的显示效果,建议在屏幕前面放置尺寸适配的彩色半透明滤色片,可以获得更优异的显示效果。如果专用滤色片不容易购买到,最简单的方法是使用半透明色纸,也可选择市场上常见的半透明压克力板作为滤色板使用。通过对市场上常见的16种颜色的半透明压克力板进行了测试,对于本制作中使用的绿色VFD显示屏,最适合配置的蓝色的半透明压克力作为面板,表现效果最好,显示亮度最高,通常2.6mm厚度的板材也能够显示出明亮的蓝色高亮文字效果;其次,茶黑色半透明压克力的外观效果最好,但对屏幕亮度衰减很高,如果使用这种类型的压克力面板,建议使用厚度小于1.5mm的板材。
根据实际使用的情况来看,制作出的电子钟已连续稳定工作半个多月。实际上,只要选择优质的时钟晶体,并确保电源供电,作为电子钟还是有实用价值的。
Write a comment