做了比较长时间的LED显示屏相关的工作,不论软件还是硬件,以及上位机也一直在做。硬件原理都是一样的没什么特别的,也就动态扫描着显示。
最近用STM32做了一个相对比较好玩的,以下按步骤详细道来。
用PC端软件通过USB控制一张P6全彩的LED屏,所谓P6就是灯与灯之间的间距为6mm。用的是3528封装的贴片RGB灯。模组是HUB75接口的。STM32与显示模组之间的连接关系如下:
1 2 RD1 -| |-GD1
BD1 -| |-N
RD2 -| |-GD2BD2 -| |-N A -| |-B C -| |-N S -| |-L
O -| |-N 15 16 HUB75接口
P6 STM32
RD1 <-----> PA0
BD1 <-----> PA2
RD2 <-----> PA3
GD2 <-----> PA4 BD2 <-----> PA5 A <-----> PB13
B <-----> PB14
C <-----> PB15L <-----> PA8 OE <-----> PB12
N <----->
GND
Contex-M3系列的bit-band不错,对端口或者内部RAM读写都很方便。所以这里对端口操作都采用了这个方式,实际测试速度可以达到2M左右,对驱动这个板足矣。
接下来就是对LED驱动芯片的时序进行模拟了。
购买模组的时候板子上面采用的国产的一款16bit的驱动芯片,觉得不爽,于是换成了聚积的MBI5039,这颗带有错误侦测功能,在以后结合PC端做上此功能,这里就暂时放在一边。具体的资料可以google一下datasheet。
接下来就是编程的问题了,结合逻辑分析仪,很方便看出时序
PC端软件用了C#,HID方式也很好实现
连接USB,得到实际的效果图
今天太晚了,没时间细细道来,有时间或有人有兴趣的话再写一个详细的说明。
相关资料:MBI5039 datasheet
MBI5039.pdf
(475.42 KB)
(下载次数: 99, 2011-11-17 11:31 上传)
接下来还有很多功能没实现。彻底玩转LED全彩显示屏:灰度,MBI5039 error dectection功能,显示花样等.... ... 现在单双色的控制卡早就已经满天飞了,全彩的小屏驱动卡还比较少。这个还可以继续优化完善,欢迎讨论。接下来将继续补充相关过程和资料。
[
本帖最后由 qinshi1208 于 2011-11-17 11:31 编辑 ]