笔者前段时间项目上正好用到一块32*128分辨率的单色LED,正式介入开发的时候,才发现网上的资料少之又少,供应商也给不出有价值的参考信息。故打算分成三篇详细的介绍下开发过程中遇到的问题。
本篇主要介绍LED屏幕的一些基础信息,第二篇介绍基础驱动程序,第三篇介绍如何将一个适用于OLED屏幕的GUI移植到LED屏幕的显示控制上。
点阵屏接口
拿到屏幕的第一件事情就是弄清楚接口定义和一些基本的电气参数。
【基础参数】
基础的电气参数包括:像素间距、分辨率、供电电压、扫描方式,扫描方式又包括1/16、1/8、1/4、1/2扫。
其他参数比较理解,1/16、1/8、1/4、1/2扫有些陌生,这个参数其实和屏幕的亮度有关,数值越大软件可控的亮度越高。所以一般1/16扫用于室内,其他的应用于室外,其原因咱到第二篇结合驱动代码来分析。
接口定义
【接口定义】
单色屏、双色屏使用的接口标称为“HUB08”,还有一个是“HUB75”用在全彩上。将HUB08引脚定义做下分类整理:
接口说明
四线译码器:可以类比到38译码器。
串转并输出:暂且忽略R2、G1、G2,只保留LAT、CLK、OE、R1,则可以类比到74HC595上。
【G2和R2】
G1同R1即为双色屏幕中另外一个颜色的数据输出。为什么会有两个R和G呢?以笔者手头32*128的屏幕为例,做下说明。
32*128点阵 示意图
32*128点阵 简化示意图
点阵屏的基本控制原理:使用HC595来控制列数据,译码器控制行显示,利用视觉暂留,形成整幅图案。
点阵屏水平分辨率由串联的HC595个数来决定,比如32*128,就有128/8=16个HC595,垂直分辨率由并入的译码器个数来决定,16*2=32。
如“简化示意图”中将32*128分成了A、B两个部分,每个部分的像素数是16*128。两部分共用LAT、CLK、OE这3根信号线,通过不同的数据线对A、B两个部分进行区分。所以R2、G2其实是另外一组16*128的数据输出引脚。
点阵屏拼接示意图
【屏幕拼接】
如果垂直分辨率超过32了怎么办?比如64*256这样的屏幕。水平分辨率可以通过增加串联的HC595的个数来实现;垂直分辨率则需要通过组合点阵模组的方式来实现。比如将65*256分成两块32*256,通过两个HUB08接口来控制整个屏幕,或者按照屏幕背板提示的拼接方向通过一个HUB08进行驱动。
注:文章中部分图片来源于网络,如侵权请联系删除。
<第一篇END>
道阻且长,行则将至。
欢迎大家关注“兔子聊电路”,会不定期的分享一些遇到的电路问题和一些有趣的电路设计,更欢迎大家一起交流电路设计上的心得。同时,也会分享一些有意义的非技术类书籍。
【福利推荐】
304保温便当盒打包餐盒饭桶带饭便携上班族饭盒专用可微波炉加热
【券后价】 43 元 【优惠券】 15 元
3輹Zhi4$CNdod6zIXZT$:// CZ6135,打開/