×
嵌入式 > 嵌入式开发 > 详情

多路复用方法带来引脚数量更少的LED显示器

发布时间:2020-07-09 发布时间:
|

Charlieplexing作为一种LED显示器多路复用方法,最近吸引了很多注意,这是因为它使人们能用N条I/O线路来控制N×(N-1)只LED。而标准的多路复用方法控制的LED则少得多。表1列出了用Charlieplexing方法和标准多路复用方法所能控制的LED数量,它把N条I/O线路的可用数量划分成数量适当的行与列。表1还列出了当LED处于接通状态时,流过LED的电流的占空比。

显然,在给定了I/O线路数量时,Charlieplexing使人们能控制的LED数量大得多。但是,该方法的缺点是流过LED的电流的占空比更低。因此为了保持特定亮度,流过LED的峰值电流必须按比例增加,该电流会迅速到达LED的峰值电流极限。尽管如此,Charlieplexing对于多达10条I/O线路而言仍是一种可行方法,使人们能控制多达90只LED。如需利用标准多路复用方法来控制等量的LED,则需要19条I/O线路。

本设计对Charlieplexing方法提出了改进建议,使人们能控制的LED增加了一倍。因此,本文建议的方法GuGaplexing使人们仅用N条I/O线路和几个额外分立元件即可控制2×N×(N-1)只LED(图1)。如需用Charlieplexing方法接通LED D1,需把P1设为逻辑1,P2设为逻辑0。如需接通LED D2,需把P1设为逻辑0,P2设为逻辑1。图2描绘了建议的GuGaplexing方案,用2条I/O线路控制4只LED。GuGaplexing方法利用了每条I/O线路有三种状态这一事实:1、0、高阻抗。因此,利用2条I/O线路,可用8种可能状态中的状态00、01、10、11来控制LED。

表2列出的晶体管对的输出端电压对应于P1和P2这两条I/O线路的各种状态。晶体管对由BC547 NPN和BC557 PNP晶体管组成,推荐使用匹配的晶体管对。对于N条I/O线路,GuGaplexing方法需要N-1个晶体管对。表3列出了I/O线路P1和P2的状态,以及节点PR1的电压,用于控制4只LED。该电路要求LED接通电压应略高于VCC/2。因此,对于接通电压约为1.8V的红光LED,适合的电源电压为2.4V。同样,对于蓝光或白光LED,可使用5V电源电压。现代微控制器,特别是Atmel公司的AVR系列微控制器,工作于1.8V~5.5V的多种电源电压,本设计方案使用Tiny13微控制器实施GuGaplexing方法。

图3描绘的节点PR1的电压对应于多种电源电压值,此时晶体管对的输入处于浮动状态。Spice模拟确保了电路工作适当,以便在PR1节点提供VCC/2,用于实现输入浮动时的多种工作电源电压值。

一种24只LED组成的光柱显示器以实际应用证明了该方案的有效性(图4)。该显示器可编程,并为模拟输入电压使用一种线性显示方案。这种24只LED的显示器以离散步长显示模拟输入电压。24只LED的控制仅需4条I/O线路和3对晶体管。该系统使用透明封装的5 mm白光LED和5 V电源电压。GuGaplexing的实施使用了AVR ATTiny13微控制器。模拟输入电压连至Tiny13微控制器的ADC输入端的7号引脚。

可提供ATTiny13微控制器的控制程序(/zixunimg/eepwimg/a330.g.akamai.net/7/330/2540/20081008181905/www.edn.com/contents/images/4274%20listing.zip),源代码是C语言,用AVRGCC免费软件编译器编译。可以修改源代码来显示仅仅一个输入电压范围(0V ~ 5V)。例如,可以有一个1V ~ 3V的线性显示范围,或为2V ~ 3V输入电压使用对数比例。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
盘点几种主流嵌入式架构的代码压缩技术