前阵子整理实验台翻出一套广州威彩那边送过来的计数译码驱动显示电路学习板当时又正好在调一块京东方带G0A电路的阵列基板。两块东西看起来八竿子打不着——一边是面包板上几颗TTL芯片驱动几位数码管另一边是几十纳米级TFT工艺直接做进玻璃里的栅极驱动电路。但等我把两块板子的信号拉出来一对比发现底层的驱动逻辑几乎是同一条路子都是先产生时序、再译码选通、最后放大驱动。这篇文章就把这次“小电路配大面板”的对照实验过程、完整驱动方法和几个实测踩坑记录整理出来适合做显示驱动、面板测试的同行参考也适合刚接触数字电路和LCD驱动原理的学生对照着理解。1. 实验背景为什么偏偏把计数译码电路和G0A放在一起1.1 从数码管到液晶屏驱动逻辑是一脉相承的先说个容易被忽略的点计数译码驱动显示电路在实验箱上练了那么多年并不是过时玩意儿。它里面那套“计数器负责时序、译码器负责选通、驱动器负责输出”的架构放到今天任何一块TFT-LCD面板上都通用。拿最低端的数码管举例。外部给一个脉冲74LS90这种计数器就开始做二进制/十进制计数输出的4位BCD码并不是直接能点亮数码管的必须经过74LS47或CD4511这类译码器把“0000~1001”翻译成对应的七个段码。译码器输出再通过三极管或者芯片内部的驱动级给数码管每一段提供足够电流。整个链路就是时钟进来 → 计数 → 译码 → 驱动 → 显示。TFT-LCD面板的栅极驱动也是一模一样的逻辑。一条栅线Gate Line控制一行薄膜晶体管TFT的开关面板从上到下有几万行就得有几万个选通信号。每一行什么时候开、开多久本质就是一组随时间递增的时序。G0A电路做的正是把这一长串时序“翻译”成一行一行的选通脉冲再输出驱动电压去打开对应行的TFT。所以先用计数译码电路把基础打牢再看G0A阵列基板很多疑问会自己解开。1.2 这次实验手里的资源广州威彩Demo板加京东方G0A样片实验用了两套硬件。一套是广州威彩的计数译码驱动显示电路Demo板板子不大上面集成了信号发生器、74LS90计数器、74LS47译码器、共阳数码管和各种测试点方便用示波器直接量信号。另一套是京东方带G0A电路的液晶阵列基板测试样片搭配了对应的时序控制板、源极驱动板和背光模组。G0A样片上没有传统的栅极驱动IC栅极驱动电路全部以TFT形式做在阵列基板边缘和面板本身一体成型。当时定的实验任务很明确第一步把计数译码电路完整跑通把每个节点的波形量出来第二步点亮G0A阵列基板量G1、G2、G3这一串栅极输出波形最后把两者做一次信号链路的对照搞清楚“计数译码驱动显示电路”和“阵列基板上的G0A栅极驱动”到底是怎么对应上的。2. 计数译码驱动显示电路实验元器件选型与搭建细节2.1 为什么选74LS9074LS47这套组合元器件选型这件事实验报告里通常只会写“选用74LS90和74LS47”但实际搭电路时会发现不同的计数器、译码器、数码管组合接法和调试方式差别很大。我这次用的是74LS90做计数器。它是异步计数器内部由四个主从触发器和几个与非门组成通过外部把Q0接到CLK1可以实现8421码的十进制计数。74LS90的优势在于结构简单、引脚少而且自带异步清零和置9功能非常适合做基础时序实验。如果想做更灵活的计数可以用74LS192这种可逆计数器但在基础实验阶段90的引脚逻辑反而更好讲清楚。译码器选了74LS47。这颗芯片是BCD-七段译码器/驱动器输出是低电平有效专门用来驱动共阳数码管。注意74LS47的输出级是灌电流结构内部有上拉电阻理论上可以直接驱动20mA左右的段电流。如果选错成CD4511那就得换共阴数码管因为CD4511输出高电平有效是拉电流输出。两者不能混用这是新手最容易踩的第一步。数码管选用0.5英寸共阳红色数码管工作电压低、段电流10mA就足够亮。共阳的公共端接VCC每一段通过限流电阻接到74LS47对应的输出。限流电阻怎么算电源5V74LS47输出低电平饱和压降大约0.2V红色LED正向压降大约1.8V要限制在10mA左右R(5-0.2-1.8)/0.01≈300Ω取330Ω很稳。2.2 电路连接与关键引脚处理先把电源做好。TTL芯片对电源纹波不算特别敏感但实验板上必须有0.1μF陶瓷电容紧挨着每颗IC的VCC和GND同时整个板子入口再放一个10μF电解电容。这个细节不能省后面踩坑记录里我会专门讲到。74LS90的接法时钟从CLK0输入Q0接到CLK1这样内部两个计数器串联成8421BCD十进制计数。清除端R0(1)、R0(2)要接地或通过1kΩ电阻接地保持低电平才不清零。置9端R9(1)、R9(2)同理接地。输出就是QA、QB、QC、QD四根线QA是最低位。74LS47的接法输入A、B、C、D分别接74LS90的QA、QB、QC、QD。输出a~g通过330Ω电阻接共阳数码管对应段。消隐输入BI/RBO、灯测试LT、灭零输入RBI这些引脚在简单显示实验里通常把LT、RBI接高电平BI/RBO悬空或接高保证正常显示。重点说一下RBO可以做灭零级联但这次不做多位显示没用上。如果要做两位以上计数器位数之间用74LS90的QD作为下一级的时钟因为QD是在计数到9之后回到0时产生下降沿正好满足下一级下降沿触发的条件。2.3 上电后的波形检查接线完成后先别急着看数字把信号发生器输出1kHz方波接到74LS90的CLK0打开电源正常现象是数码管从0到9循环跳动。注意这里“循环跳动”在1kHz下人眼看起来是常亮或快闪如果想让数字变化肉眼可见频率降到1Hz再看。示波器测量顺序有讲究先量CLK0确认幅值在5V左右、频率正确。再量74LS90的QA。正常应该是一个50%占空比方波频率正好是CLK的一半。QB是四分之一QC八分之一QD十六分之一。这里因为74LS90本身是异步计数器各级翻转会有几纳秒的传输延迟差频率不高时波形非常干净。然后把探头移到74LS47输出端比如量a段。a段在显示0、2、3、5、6、7、8、9时是低电平点亮在显示1、4时是高电平熄灭所以波形看起来是一串宽度不等的低脉冲。可以用示波器的余晖模式把几个周期叠加起来能看到完整的段码时序。还有一件事值得做把74LS90的QD接到下一级74LS90的CLK0级联成两位计数器这时候第一级的QD下降沿正好触发第二级计数。这个点在实际面板驱动里也有对应——G0A级联单元之间的传递就非常依赖边沿触发的可靠性。3. G0A电路到底做了什么阵列基板上的栅极驱动3.1 为什么要把栅极驱动IC搬到玻璃上传统TFT-LCD面板行方向的驱动信号一般由一颗颗独立的栅极驱动IC提供这些IC装在COF或COG上再通过异方性导电胶压接到玻璃边缘。这样做的问题很明显一颗IC要占地方、要压接、要成本面板要做窄边框就得尽可能减少外围器件数量。G0AGate on Array的核心思路就是用阵列基板上的TFT晶体管把原来独立栅极驱动IC的功能直接做进玻璃面板里。栅极驱动电路不再需要单独封装而是在制作面板TFT阵列的同一道工艺里一起完成。这样一来面板两侧可以省掉大量驱动IC和对应的压接区域边框可以做得很窄成本也降下来。G0A也不是没有代价。玻璃上的TFT一致性、阈值电压漂移、宽温度范围下的稳定性都比硅基IC要差。尤其是长时间工作后的阈值漂移会导致输出波形变差所以现在的G0A电路普遍加了各种补偿结构。京东方这类面板厂在G0A上的积累很大程度上就是围绕补偿电路和级联时序来做的。3.2 G0A级联移位寄存器的工作方式从功能上看G0A电路就是一个移位寄存器阵列沿着面板左边或者右边排成一列每一级对应面板的一行。每个G0A单元至少要有这样几个信号STV帧起始脉冲每一帧开始时给到第一级相当于整个队伍的“发令枪”。CLK、CLKB两相时钟或者多相时钟用于控制信号逐级传递和输出。OE输出使能控制这一级输出到栅线上的信号是高阻还是有效电平通常用来做行消隐。VGH、VGL栅极高电平和栅极低电平VGH负责打开TFTVGL负责关断TFT。理解G0A可以把它想成接力棒游戏。STV就是一个命令第1行接到命令后在第一个时钟周期把这一行选中同时把命令传给第2行第2行在下一个时钟周期选中自己再把命令传给第3行。这样一行一行传下去整块屏幕从上到下完成一帧扫描。每个单元的输出本质上就是对自己所控制的栅线“喊了一声名字”被喊到的那一行TFT全部导通源极驱动电路把灰阶电压写进像素电容。用计数译码电路的眼光看STV相当于计数器的“计数输入”的启动脉冲CLK相当于时钟级联单元相当于“计数器译码器”的合体——它一边在计数哪一行进行到哪了一边在译码当前就应该选通这一行最后用VGH/VGL做电平转换输出驱动。所以我在实验记录里直接写了一句话G0A级联电路是一个把“计数、译码、驱动”三件事打包在一起的片上电路和74LS90加74LS47的链路高度同构。4. 驱动方法与显示装置整机验证流程4.1 点屏前的平台搭建G0A阵列基板不像Demo板那样插个电源就能亮点屏前要把供电、时序、背光、偏压全部准备好。这次搭建的平台包括阵列基板测试样片京东方G0A下面垫着防静电泡棉。时序控制板负责产生STV、CLK、CLKB、OE等控制信号。源极驱动板提供列方向的数据信号和灰阶电压。背光模组驱动先点亮背光方便观察整屏画面。直流电源至少需要三路VGH、VGL、AVDD/VCOM等。电压参考值按常见G0A方案大概是这个范围VGH在15V到20VVGL在-7V到-12VAVDD在8V到12VVCOM根据面板型号调整。注意每个面板的具体值要以规格书为准我在这里给的是经验参考不是通用值。接错电压轻则显示异常重则击穿栅极绝缘层。信号线连接也要注意STV、CLK、OE这些信号通常由时序控制板输出经过电平转换后才接到G0A输入端。实验时先不接背光只量波形确认输出正常后再合上背光电源。4.2 G1、G2、G3与STV、CLK的时序关系点屏之后最重要的验证动作就是拿示波器量G0A输出端的栅极波形。把示波器通道1接STV通道2接G1通道3接G2通道4接G3触发源选择STV上升沿。正常波形应该是这样STV每帧出现一个高电平脉冲帧周期由你设置的控制板参数决定比如60Hz刷新率就是16.67ms一帧。G1在STV脉冲之后出现一个高电平脉冲宽度大约等于一个行周期或者OE允许的导通时间。G2比G1延迟一个行周期G3比G2再延迟一个行周期依次向后推。从计数译码实验的角度看这里每一行的输出就像74LS90的一个计数状态STV是复位启动CLK是计数时钟OE相当于数码管的消隐控制。唯一区别是74LS90的计数状态是并行同步变化的而G0A是逐级传递的更像一个动态移位寄存器。测量时务必用示波器的10x探头探头的地线尽量短接。G0A输出端的负载是整行栅线的RC网络和所有TFT的栅极电容探头如果夹一根长地线很容易引入振铃测出来的波形会带上莫名其妙的过冲。还有一个细节测量VGH幅度要在G1输出高电平期间看正常应该接近VGH的设定值如果明显偏低说明这一级G0A输出管的导通能力有问题。4.3 与计数译码驱动显示电路的信号链路对照这一步是实验里最有价值的总结。我画了一张对照表写完直接贴在实验记录本上功能层级计数译码驱动显示电路G0A阵列基板驱动时序产生74LS90计数器逐级分频G0A级联单元逐行移位状态选通74LS47译码器选中特定段级联单元选通特定行输出驱动灌电流点亮数码管段VGH/VGL电平驱动TFT栅极消隐/使能74LS47的BI引脚OE输出使能信号启动/复位74LS90清零端STV帧起始脉冲级联扩展QD接下一级CLK0单元输出接下一级输入有这张表在手再回头做其他显示装置的驱动调试思路就清晰了。不管是小尺寸的数码管仪表还是大尺寸液晶面板甚至带图形界面的楼宇显示终端底层永远是“时序对、选通对、驱动对”三件事。只要按这个顺序排查大部分问题都能定位到具体环节。5. 实测踩坑记录从乱码到缺行到闪屏的完整排查链路5.1 案例一数码管乱码真凶是电源去耦和竞争冒险第一次把计数译码电路全部接好上电结果数码管完全没有规律地乱跳数字经常在0、1、8之间乱闪。正常情况应该是从0到9循环哪怕频率快一点也能看出规律。排查过程第一步量VCC。示波器带宽全开探头接到74LS90的VCC引脚看到大约200mV的高频纹波而且纹波和时钟跳变是同步的。这说明板子上IC翻转时产生的瞬态电流没有被去耦电容吸收掉。第二步量时钟输入端。用示波器看CLK0发现在方波边沿处有比较明显的过冲和振铃。TTL芯片在振铃区间可能会多次触发计数器就乱跳了。第三步量清零端。R0(1)、R0(2)虽然已经接地但因为地线上有压差清零端上还是能捕捉到尖峰毛刺。一旦毛刺超过TTL高电平阈值计数器就被清零显示自然就不连续了。处理方案在每颗IC的VCC和GND之间补加0.1μF陶瓷电容VCC入口处加10μF电解电容清零端和置9端用10kΩ电阻上拉到VCC而不是直接接VCC时钟信号经过74LS14施密特整形后再送入计数器。处理后纹波降到30mV以内计数循环恢复正常。另一个乱码原因是竞争冒险。计数器从9回到0时QA、QB、QC、QD不是严格同步翻转的会有几纳秒的中间状态比如短暂变成1010、1011这种非法组合。74LS47在几纳秒内就可能输出错误的段码人眼虽然看不到这么短的毛刺但在示波器余晖模式下能看到段码波形上有异常尖峰。高频计数时要避免这个问题一种办法是在译码器前加一级74LS75四锁存器让计数器稳定后再锁存数据给译码器。这个思路和面板驱动里“锁存器行缓冲”的设计是一回事。5.2 案例二G0A输出缺行级联中断不一定是芯片坏了G0A样片点亮后画面中间偏下的位置有几行始终不显示。单看这几行不亮像极了序列里缺了信号。排查链路先量STV和CLK确认时序控制板输出正常。这两路信号在连接器入口处测波形都是完整的。再量缺行位置前后的栅极输出。假设G120之前都正常G121没有波形。这时候基本可以确定G120这颗级联单元把信号传到G121的路径断了。测VGH和VGL电压。缺行出现时VGH掉到12V左右明显低于15V设定值。如果供电本身不稳级联单元的输出幅度也会跟着崩。用万用表检查FPC连接器到阵列基板的每一根线。最后发现连接器一端有轻微的接触不良重新压接后波形恢复。之所以强调“不一定是芯片坏了”是因为G0A电路做在玻璃基板上本身没有可替换部件。遇到缺行优先排查供电和连接器最后才怀疑G0A单元本体。还有一个常见诱因是静电损伤人体带着静电直接触碰阵列基板边缘走线区域极容易打坏G0A单元里的TFT栅氧化层导致某一级永久失效。处理这类样片防静电手环和接地桌垫不是可选项是必选项。我一共碰到过三片样片出现缺行一片是连接器问题两片是静电损伤。5.3 案例三整机闪屏VGH幅度和OE占空比一起调整整屏画面能出来但亮度反复跳动像荧光灯频闪的感觉。这个现象第一反应是背光问题但把背光电源换成直流稳压源后依旧闪问题就锁定在面板驱动侧。用示波器同时量VGH和OE发现VGH在画面切换时会掉4~5V而OE的占空比被控制板配置得过大导致栅极导通时间太长、像素写入后又被反复充放电。G0A的输出级不是硅IC那样的大电流驱动管它的上拉管做在玻璃上导通能力有限VGH被负载拉垮就直接表现为画面闪。处理办法分两步先把VGH输出能力加大换了一台带载电流更大的电源再把OE占空比从80%调整到60%让每一行充电时间适中既不欠充也不过充。调完后再看波形VGH在整个帧周期里基本稳定在15V画面也不再闪了。这次踩坑让我养成一个习惯所有G0A类样片上电前先把电源电压和负载能力表格列好上电后第一件事不是看画面而是用示波器盯住VGH和VGL确认它们不塌陷再去调时序和数据显示。6. 实验结论和我在这个项目里的心得体会6.1 显示驱动的三层理解框架整套实验做完我把显示驱动总结成三个层次第一层是时序层负责产生“什么时候该做什么”的信号对应74LS90的计数也对应G0A的级联移位第二层是译码选通层负责把时序信号翻译成具体对象的选通指令对应74LS47的段码翻译也对应G0A单元的逐行输出第三层是驱动放大层负责把选通指令变成真正能驱动显示介质的电流或电压对应数码管的灌电流也对应G0A输出级背后的VGH/VGL。这个框架帮我解决了很多看起来完全无关的显示问题。有一次在帮朋友调试一台楼宇用图形显示终端的显示屏故障表现是局部区域花屏。我没有去改应用程序而是按这个顺序查了供电、时序、选通信号最后发现是一条连接排线氧化导致某几列数据没进来。问题表现差了十万八千里但排查思路是一样的。6.2 给后来者的一些实际建议写这篇内容的时候我把实验台上留的那套广州威彩Demo板又翻了出来。如果你也想自己验证一遍这套逻辑我的建议是先把数码管的计数译码电路做通用示波器把每一级信号量明白再去找一块带G0A的液晶面板或者模组按同样的方法量STV、CLK和栅极输出。别嫌基础电路简单很多大屏上的怪问题最后都要回到最底层这个“时序-译码-驱动”模型上去找答案。调试方面示波器的余晖模式、10x探头、短地线是标配电源去耦、ESD防护、连接器压接质量是最容易出问题也最容易被忽略的地方遇到异常永远先量电源再量时钟最后才怀疑芯片或G0A单元本体。最后说一句我个人感触最深的话数码管上的数字乱跳和液晶屏上的画面缺失很多时候是同一个原因在不同尺度上的表现。把基础实验做扎实比追着每个新方案看瓜皮有用得多。