登录  注册 退出 English
鼎恩光彩{www.deanled.cn}
400-886-2386
  1. 首页 > 服务支持 > 分享交流

单片机驱动LED全彩单元板,HUB75接口与HUB75E接口的定义及原理参考

作者:小编 日期:2021-04-28 11:52:38 点击数:


一、HUB75(E) 接口定义

001.jpg

针脚定义参考:https://www.deanled.cn/index.php?m=home&c=View&a=index&aid=549


上图中有 A/B/C/D 4根地址线,所以是16扫( 2^4=162 )

上图所示HUB75接口,有两个RGB通道,共占用6个IO(R1/R2/G1/G2/B1/B2)。

剩下的 A/B/C/D/E 为地址通道,LAT为行数据锁存通道,CLK为数据时钟,OE为低电平使能LED显示。

图片这里没有E,证明它是16扫的,有E就会把B上面的地改为E,如下图所示:

002.jpg

上图中有 A/B/C/D/E 5根地址线,所以成32扫(2^5=32))

16扫控制16行显示(16行中显示一行),共2个RGB通道所以16扫可以控制 16*2=32行 显示(32行同时显示2行,比如第1行和第16行…第15行和第31行,所以是2/32扫,即1/16扫)。

(1)单元板的显示为单位时间内显示一行数据,然后短时间内切换到另一行显示,16扫,即一个显示周期为切换16次。

(2)两个RGB通道分别控制上下两部分的RGB灯。举例 32*16 的LED灯屏,需要4个地址ABCD,假设ABCD,4个IO为高电平意味着选定第15行跟第31行,R1/G1/B1通道数据被写到第15行,R2/G2/B2数据被写到第31行。

(3)OE使能:失能LED显示,写入一行数据,选定行,锁存,使能LED显示。(有高电平显示,有低电平显示)

(4)全彩显示:颜色渐变。方法是同一行扫描32次,假设R1只显示一次,那它占空比就是1/32,显示次数越多越来亮。


二、一款 8x8 LED 单元板介绍(2R1G)

单元板外观:

003.jpg


注:LED单元板上通常没有存储,所以需要FPGA快速刷新以显示图像!

单元板HUB75接口:

004.jpg


单元板点亮顺序:

单片机驱动LED全彩单元板,HUB75接口与HUB75E接口的定义及原理参考(图5)


单个单元板,一共8行,可同时点亮2行,故为1/4扫。


三、一款 64x64 LED 单元板介绍(RGB)

单元板外观:https://www.deanled.cn/index.php?m=home&c=View&a=index&aid=163

单片机驱动LED全彩单元板,HUB75接口与HUB75E接口的定义及原理参考(图6)

单片机驱动LED全彩单元板,HUB75接口与HUB75E接口的定义及原理参考(图7)

单元板HUB75接口:

006.jpg


它具有2个R/G/B数据输入引脚,5个地址引脚和3个控制引脚(时钟,锁存器和使能)。

故仍然还是32扫,通过同时控制两行的方式实现64行控制,即2/64=1/32扫。


控制时序:(以上半部分32行为例,下半部分自动匹配上半部分选中的行)

008.png

1.使用5个地址字节选择要显示的行,从32行中选择1行。

2.通过将Blank管脚设为高电平来关闭显示器,这可以防止故障。【或者说消隐!】

3.使用Clock引脚和RGB引脚进行选中的行数据输入。

4.将锁存器引脚切换为高->低以将数据加载到选中的行。

5.通过将Blank引脚拉低来打开显示器。

注:其中的Blank,代表输出使能 OE 引脚!


链接>>各款单元板规格参数请参考产品页!

链接>>模组单元板使用IC规格书文档请参考网站IC参考页搜索下载!


有2个R,G和B引脚。如果选择地址0,则R0/G0/B0将数据写入第0行,而R1/G1/B1将数据写入第32行;选择地址1,则R0/G0/B0将数据写入第1行,而R1/G1/B1将数据写入第33行。要显示图像,你需要写一行,稍等一下才能显示它,再写下一行,依此类推。为了获得图像,需要以60Hz的频率写入和显示64行,或者为了获得不错的帧速率,可以更快提高频率。但遗憾的是,以这种方式写线时,LED会熄灭或亮起。使用RGB,仅可以显示8种不同的颜色,而不完全是漂亮的图像。

全彩显示

获得更多颜色意味着对显示进行PWM。进行此显示的PWM的唯一方法是在转到下一行之前多次写一行:

1、将数据移至如上所述的选中行

2、等待一位的时间

3、在同一行中移动下一个值

4、等待一位的时间

5、重复此N次,对于4位PWM为16次,对于8位PWM为256次。

6、移至下一行

一种简化方法是将二进制编码调制(BCM)与BCM一起使用,过程如下:

1、将数据移至选中行

2、等待x时间

3、在同一行中移动下一个值

4、等待x * 2时间

3、在同一行中移动下一个值

5、等待x * 4次。

6、重复N次,对于4位PWM重复4次,对于8位PWM重复8次。

7、移至下一行

驱动矩阵

FPGA代码可能非常简单,从帧缓冲区读取数据并传输到RGB矩阵。

007.jpg

为了简化显示,以发送格式来组织帧缓冲存储器。

我没有将数据存储为RGB值,而是将它们拆分为64位行数据。这样,数据发送器块只需要读取数据,将其移出时钟并等待所需的时间即可。

011.png

这是用于4位的BCM,但是用于8位的图像会有点大。这样,FPGA代码的传输就是一个简单的状态机。

首先,它获取数据。其次,它发送它并等待正确的时间,然后才能发送下一行。

012.png

LED单元板驱动原理

LED 单元板就是大量单色或三色 LED 的点阵,扫描式驱动,一般是行线共阴、单列单色 LED 共阳,采用专用芯片进行恒流驱动。所谓扫描式驱动,就是每一列的数据线共享、单元板的同一时刻只有一行被选中并点亮,通过快速的扫描加上人眼视觉暂留来实现整屏显示。有些做的比较好的单元板提供内置的余晖、消隐功能,在扫描其他行时之前点亮的行仍会继续点亮、重新扫描当前行时会强制熄灭不应点亮的像素,以降低屏幕的闪烁、提升画面的显示效果。

所以不难理解,单元板的驱动过程就基本是两个阶段:

1、选择当前扫描的行

2、点亮当前行的数据

什么是32 扫?行选择阶段

如果学过计算机组成原理之类的课程,应该听说过存储器的地址线。

HUB75 的行选择信号与存储器的地址线运作方式相同,使用多条地址线,用高低电平组合出二进制的各位数字,然后通过译码器将 n 条地址线的组合信号变为 2^n 选 1 的行选择信号。HUB75 接口的多种变体基本上就是从这里派生。

一般情况 HUB75 的插座使用 16P 简易牛角座,下面是接口示意图:

008.jpg

注意 9、10、11 三个引脚,名称分别为 A、B、C,这三根线就是 3 位地址线的 A0、A1、A2 三位,单元板的内部实现中,会使用一个 3-8 译码器将这 3 根输入地址线高低电平的二进制组合转化为 8 根输出片选线中其中一根的选中状态。

例如当这四位的电平值分别为 H、L、L 时,代表了当前行地址为 001b,所以 1 号地址线(即代表第二行)为选中状态,其他为非选中状态。

由于各厂商具体内部设计的差异,行选择激活状态可能为高电平,也可能为低电平,所以这里不能确定具体电平的高低,只能确定哪条线处于激活状态。(一般低有效,高消隐)

由于同一时刻 8 条行选择中只有一条被激活,即同一时刻有 1/8 的行正在被点亮,所以这种扫描方式被称作 1/8 扫描,行业简称8 扫。

变体由此产生。有些单元板的行数不足 8 行,不需要如此多的地址线,所以会把不需要的地址线空置或接地,比如 1/4 扫描的单元板会将 11 号 C 引脚空置,仅使用 2 条地址线。1/32 扫描的单元板会将 12 号、6 号引脚作为 D、E 信号即行地址二进制的第四、五位,使用 5-32 译码器来提供 32 条行地址线来进行更大范围的扫描,此时形成了 HUB75 最常用的变体>HUB75E。

那为什么 32 扫的接口可以驱动 64 行的单元板?

这里会有同学疑惑,市场上也有很大一部分单元有 64 行,但却使用的 HUB75E 接口,怎样实现使用 5 条地址线完成 64 行(地址二进制有 6 位)的扫描呢?如果单元板提供了说明,你会发现此时单元板仍然是 1/32 扫描,上面说 32 行同时点亮 1 行,那么如果是 64 行,就是同时点亮 2 行。没错,这就是几乎所有使用 HUB75 接口的单元板,有 n 行像素、使用 n/2 扫方式驱动的原因——单元板被分成了上下两部分,行选择信号会同时选择上下两部分中的各一行,通过两路信号同时点亮两行,这样就实现了更少的地址线以及更高的扫描频率。减少地址线、增加数据线,学过计算机组成原理的同学们想起来了没?

014.gif

行内数据如何传入?行数据传输阶段

简单点说就是,串入并出加锁存。同学们一定听说过赫赫有名的移位寄存器——74595,没错,这东西塞满了整块单元板。观察 HUB75 接口的 13、14、15 三个引脚,分别为串行数据时钟、锁存时钟、输出使能三个引脚,功能上完全对应 74595 的三个对应引脚。而它的串行数据输入有 6 根,即 1、2、3、5、6、7 这 6 个,分别代表上下两半部分的 R、G、B 像素信号。这 6 根数据线共用相同的时钟线,并行传输行内的像素数据。

单片机驱动LED全彩单元板,HUB75接口与HUB75E接口的定义及原理参考(图15)

任意行被选择后,当 14(锁存)引脚拉高,数据开始进行传输,13(数据时钟线)为低电平时 6 根数据线并行输入数据,数据就绪后数据时钟拉高触发寄存器移位,然后数据时钟拉低触发寄存器完成历史数据的输出,同时数据线准备下一位的数据。所有数据移位输入完成后拉高锁存时钟,完成整行数据传输。对于有些提供余晖、消隐功能的单元板,需要根据要求给15(低电平输出使能)一个适当宽度的高电平信号来触发消隐和余晖。这样快速反复的行选择、数据传输过程,就完成了每一行的扫描与显示。

单片机驱动LED全彩单元板,HUB75接口与HUB75E接口的定义及原理参考(图17)

多块单元板如何连接?

每块单元板都提供了两个接口,一个输入一个输出。多块单元板之间就是串联关系,上一块板子的输出对应连接在下一块板的输入即可。这样一连串单元板的时钟信号共用、数据信号串接,调整每行传输的数据长度,即可实现对不同数量单元板的驱动过程。

如何实现全彩?

每个像素的每个单色子像素只有两种状态——点亮和熄灭,那么可以通过 PWM 或 BCM 调制来实现子像素的灰阶。可以通过把一行重复扫描 n 次、点亮 m 次实现 m/n 亮度的灰阶,也可以把每一帧图像重复扫描 n 场,m/n 灰阶的子像素选择其中 m 场点亮来实现。两种方式各有优劣,需要根据单元板的实现原理、程序编写难度等来选择不同的全彩实现方式。

016.gif

能否简化连线?

我们注意到 HUB75 实际是由一组组合逻辑的并行传输行信号和一组 6 路时序逻辑的像素数据信号(可认为是并行 SPI)组成的。通过将 6 路 SPI 数据线输入输出首尾串接,可以将 6 路并行 SPI 变为 1 路串行 SPI,同时再通过一片 74595 可以实现行信号的并行输出。使用一个非门制作一个 1-2 译码器,实现行选择串行数据、行数据串行数据的选择,配合适当的数据信号,就可以实现仅通过 3 根数据线(功能选择、数据、时钟)实现整组单元板的数据传输,节省引脚有利于使用更小型的单片机进行显示。当然这样会大大受制于 SPI 频率而降低单元板的刷新频率,孰轻孰重视具体情况具体选择。


--本文修辑自以下文章,^_^----------------------------------------------

版权声明:本文为CSDN博主「ReCclay」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/ReCclay/article/details/115307011

------------------------------------------------------------



随便看看
18922864126
18922864126
已为您复制好微信号,点击进入微信