led屏幕参数:
P10-16*16RGB-4S-G
CW1.538-1212-52S-5958
这种参数是没有有分辨率的,我们根据板子的尺寸,和led的间距就可以大致计算出分辨率。再根据板子的扫数比如为52扫,但是行数计算出来时101那末行数基本上可以确定是104行,是扫数的整数倍。行数是恒流驱动16的整数倍
5958是行管类型
1.538mm间距
lcd屏幕显示原理
led:
通过采用PWM控制每个等通过的电流改变其色彩,发光而激光导通后,电压升高二极管两端电压基本不变,电流迅速变大。
采用矩阵扫描的方式:
通用驱动方式:传输的数据还需要自己设定好参数
PWM驱动方式:传输数据自动生成PWM驱动LED
led屏幕接口一般为
问:一个256*128分辨率的led屏幕,32扫,问要驱动这个屏幕的所有红灯,需要16通道驱动芯片多少颗?
128/32 = 4,总共一次扫四行,一个接口一次扫2行
一个接口一次扫256*2个像素点
一次驱动256*2个红色像素点需要 256*2/16 = 32个
问题2:分辨率为208*104,4组数据,52扫,最少恒流驱动芯片做,红色的恒流驱动芯片总共需要多少?
52扫一定要满足,因此将208*104分成两个112*104和96*104。
因此需要(112*2+96*2)/16=26
点亮一颗led
led被称为发光二极管,它只有两种状态,亮灭。如果我们以100HZ进行开关led会发生什么呢?这时候我们的人眼将无法分辨出led的亮灭,只能感觉的led没有之前亮了。如果我们想让led出现呼吸的节奏进行。这时候我们就需要PWM脉宽调制技术。
点亮一块屏幕
如果用单片机点亮8*8的led矩阵,那麽我们就需要2*8=16个引脚,如果需要点亮10000*10000颗灯呢?这时候我们就需要涉及到一些显示技术。
一块led屏幕由led、恒流驱动芯片,行管芯片,HUB75接口。接下来我们就一一讲解。
行管芯片
我们一次性想控制一块屏幕的所有行是很困难的,但是我们一次可以控制一块屏幕的多个行,多个行快速的刷新,这样就能将我们的眼睛骗过去。一般为译码器,比如MCU有5个引脚控制行,那么我们就可以控制2^5行也叫(32扫)。
恒流驱动芯片
行我们知道如何控制了,我们再来看列,列控制我们使用的是恒流驱动芯片(原理就是串行输入并行输出的移位寄存器),以2038s为例。一次可以控制16个led。
这样我们就可以精准的控制某一行多列的灯的亮灭,只控制亮灭就行了吗?当然不行,我们的目的是让屏幕有显示的效果,那就必须控制每个灯的亮暗是不同的(专业名词叫灰度等级),在RGB三种颜色进行混合就能呈现不同的色彩。那要怎样实现灰度等级呢?我以8bit会的等级为例:
提高亮度效率:
注意:少写了一个1/16
由此可以看出,最小子场时间T越小,T就越小,亮度效率越高。需要的刷新频率也就越大!
假设位60的刷新率:一个led一次刷新时间 :19T = 1/60 =>T = 1/(60*19)
那两颗led一次单个的时间 19T*2 = 1/60 =>1/(60*2*19)
但是呢,一个灯一帧里要进行19次刷新,在进行换行,如果这个MCU的频率比较底,就会导致人眼能看出led换行时的闪烁,这时可以采用一个最小场换一次行。
亮度效率 =>(最小子场时间T*占空比)/总最小子场时间数
我们将权重确定之后,所有的最小周期时间,最小周期数都是相同的。有的灯只需要亮一次1/2PWM,有的灯需要15次满PWM 1次1/2,1/4,1/8,1/16,有的灯需要1次满PWM,1次1/4PWM。
HUB75接口
上图所示HUB75接口,有两个RGB通道,共占用6个IO(R1/R2/G1/G2/B1/B2)。剩下的 A/B/C/D/E 为地址通道,LAT为行数据锁存通道,CLK为数据时钟,OE为低电平使能LED显示。图片这里没有E,证明它是16扫的,有E就会把B上面的地改为E,如下图所示。这样就是5位,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(4个行扫信号),假设ABCD,4个IO为高电平意味着选定第15行跟第31行(1111=15,因为1号控制前16行,2号控制后16行,当为1111时一号控制第15行,二号控制第31行),R1/G1/B1通道数据被写到第15行,R2/G2/B2数据被写到第31行。
(3)数据的写入顺序:失能LED显示,写入一行数据,选定行,锁存,使能LED显示。
(4)全彩实现:灰度等级的实现
R1,B1,G1,R2,B2,G2:是恒流驱动芯片串行数据输入
A,B,C,D为行选信号,16扫
CLK为恒流驱动芯片的时钟引脚
OE为恒流驱动芯片PWM信号引脚
LAT为恒流驱动芯片的锁存引脚
一个HUB75接口我们就可以看出这个led显示屏是几扫的,需要的恒流驱动芯片个数,(led一行像素*2)/恒流驱动芯片驱动led个数,为什么led一行像素*2呢?1个HUB75有两组RGB,可以驱动两行所以要乘以2。
一些计算:
根据一块屏幕参数,要求帧率计算
1、8bit灰度,亮度效率达到85%(可以大于85%),计算PWM的排布规律:
先估计哪一位bit位权重为1,进行计算。划分最小周期数,和PWM占空比即可。
2、256列,16扫,用2038s驱动,帧率100HZ,8bit灰度,亮度效率达85%,问驱动这块屏幕的mcu最低频率为多少?
亮度达到85%以上需要34个小周期,
2038s为16位移位寄存器,要将16位数据移入,需要16次。
一帧需要刷34次小周期,100帧需要刷3400次
一帧还要扫16次
256列,需要给256个灯进行数据传输
256*3400*16*16这个计算方法是错误的吧。
答:(256*RGB组数/16)*(3400)*16HZ*16
LCT软件使用
箱体配置
计算灯板的属性:
模块芯片:恒流驱动芯片
行译码类型:行管芯片
单个数组组点数:
以256*128为例:
首先我们看灯板的接口是几组数据
第一种情况:如果是四组数据64S
刚刚好一组数据控制128*64,那么设置单个数据组点数列为128,行为64,恒流驱动芯片数 =
(列数*同一时间扫的行数)/恒流驱动芯片一次驱动的数量 =>128*1/16 = 8。
第二种情况:如果是两组数据64S
第一种:
64扫,有128行,那一组数据就要扫128行,同一时间扫两行。 一组数据需要的恒流驱动芯片数
128*2/16=16
第二种
64S,一组数据有64行,同一时间一次扫一行,恒流驱动芯片数 = 256/16 = 16
第二步
如果没有显示说明插的屏幕没有在第一个数据接口点击全黑就可以控制更换接口显示。
第三步
这一步主要设置,有些RGB接口会错误,导致当前是第一种不是红色我们就要更改为灯板当前显示的颜色。以此类推
第四步
看灯板亮的行数/列数,将数值输入进去
第五步:
输入灯板显示的行数或列数
第六步
根据灯板上的提示给灯板进行标号,灯板闪烁的等为下一个应该亮的点
第七步
以上步骤我们只设置了一块灯板的一组数据,根据我们灯板的拼接规则设置下面的数据组
例子为四组数据,256*128,因此是两行两列。
设置为2行两列
第八步
这个界面标号,如果我们的显示屏插在发送卡的的二个接口输出,那末我们要进行数据跳组,调组数等于(插的接口数-1)*每个接口上的组数
在设置标号时,在左上角标号放一块镜子,镜子的顺序才是我们要在软件上设置的顺序。
LCT-MCU固件升级
在屏幕上方空白处点击一下,输入debug即可看到LCT软件的Debug选项
恒流驱动芯片
ICND1065
- · 输出通道数:16
- · 驱动类型:共阳
- · 通道输出电流:0.5-20mA
- · 扫描设计:1-64扫
- · 刷新率:3840hz
- · 电流精度(通道间):<±2%
- · 储存结构:内置32KB SRAM 存储结构
- · 封装:SSOP24
总结:
以上就是如何实现驱动led显示屏的原理讲了:
行管芯片的作用
恒流驱动芯片的作用,在恒流驱动芯片中讲了如何实现灰度等级的,如何提高发光效率
HUB75接口的认识