Answers:
是的,多路复用和字符复用都有其优势,并且都最适合于不同的任务。
charlieplexing的主要优点是它可以在中等大小的微控制器上完成,用更少的I / O引脚驱动更多的LED,并且除了LED之外,可能不需要任何外部硬件。
现在,“无需外部硬件”的优势仅适用于相对少量的LED,直到达到微控制器的电流极限为止,并且它强加了多路复用阵列所没有的亮度极限。如果您选择不使用任何外部硬件,则通常仅限于在任何给定时刻仅驱动矩阵中的一个LED,这与多路复用阵列中一次驱动一整行不同。
一旦添加了外部硬件以驱动更高亮度的LED以匹配多路复用阵列的亮度,字符复合就失去了光泽。
首先,严格按照行和列寻址多路复用阵列;这很简单。打开第1行,打开第1行的所有列,关闭第2行,打开第2行的所有列,依此类推。相比之下,字符复合数组则不那么简单。总是有一个对角线行是无用的,我个人使用查找表来关联我的数组和存储数据的矩形数组之间的关系。
其次,一个杀手er是,字符复合通常需要三态驱动器。但是,多路复用是通过严格的开关二进制逻辑执行的。如果您有一个低引脚数的微控制器,并且想驱动大量的LED,则可以直接使用外部逻辑芯片(例如,移位寄存器和/或LED驱动器)来控制X和Y轴。大多数移位寄存器类型的芯片不支持在charlieplexed数组中执行相同操作所需的三态。可以使用专用的字符复合驱动程序,但通用性却差强人意。
第三,在字符复合阵列中,每个无效的引脚仍通过弱(“高阻抗”)连接与LED连接。虽然连接较弱,但非零。假设您有25个I / O引脚连接到LED网格。如果您点亮一个LED-取高25条线之一和低25条线之一,则剩下23条高阻抗线。高I / O线穿过LED到中性线的每个位置,都有泄漏电流的可能性。不多。也许在这里或那里的微安。但是,使用现代高效的LED,通常足以产生可见的重影。
第四,很难控制字符复合阵列中的LED亮度。在多路复用阵列中,通过将电流调节与PWM驱动器结合使用,可以使用任意数量的常用电流调节“下沉” LED驱动器芯片来分别调节每列的亮度。在某种程度上,字符复合矩阵的位置可以单独寻址,并且每行或每列仅使用一个电阻,要在字符复合阵列中执行点亮度校正和全灰度/彩色动画要困难得多。
“ Charlieplexing”灯最显着的缺点是,它将“ n”路复用可以驱动的LED数量限制为n(n-1)。我认为三态驱动器要求并不是整个技术的主要问题。当然,必须使用两个传统的驱动器而不是三态驱动器会减少CharliePlexing的好处,但是在某些情况下,优势仍然存在(例如,它可以减少带驱动器的面板和带驱动器的面板之间的互连线数量。灯或开关)。
至于Charlieplexing开关,Wikipedia文章没有提到最大的缺点:Charlieplexing不允许控制器被动地等待按钮按下。另一方面,它对组件要求过于悲观。1997年,我生产了一种设备,该设备使用PIC12C508上的三个I / O引脚和一个仅输入引脚来扫描八个按钮,不需要任何外部二极管或其他组件,除了IIRC以外,还不需要PIC引脚的上拉电阻有一个内置的 该方法本来可以处理十个按钮,但要增加另一个上拉电阻(对于另一个没有一个的I / O引脚),但是客户只需要八个按钮,因此就不需要了。