基于多端口串行Flash 存储器的LED 显示控制系统
Ofweek 2022-09-15

  在LED 显示屏应用中,超长条形LED 屏是非常广泛的一种形式,其特点是长度“特别长”而宽度窄。 超长LED 显示屏目前没有明确的定义,可以将其水平方向的点数定义为≥2 048 比较合适。

  以由1 /4 扫描P10 单元板(点间距10 mm) 组成的超长条形LED 显示屏为例,当水平方向的点数为2 048 时,其水平方向物理尺寸为20. 48 m. LED 屏的宽度(垂直方向) 点数一般为16、24 和32 点,最多不超过64 点,应用中以能够显示一行各类字体的汉字为主。 为保证刷新率,在对超长LED 显示屏的控制上,要求在规定时间内送出更多数据,普通的LED 显示屏控制卡很难实现控制要求。

  本文在分析现有各种条形LED 显示屏单元板电路的基础上,提出了一种基于多端口串行Flash存储器的LED 显示控制系统。 利用单片机的SPI接口产生可控时钟,将多端口串行Flash 存储器中的显示数据以“DMA”方式直接输出至超长条形LED 显示屏。

  1 常用单元板内部串行移位寄存器连接方式

  图1 为3 种常用单元板内部串行移位寄存器连接方式。 其中图1(a) 为单元板74HC595 与LED发光管点阵连接关系及简化表示电路。 LED 显示屏单元板内部使用的串行移位寄存器一般为74HC595、MBI5026 或MBI5026 兼容芯片,而MBI5026 可以看成是由两片74HC595 级联构成,为恒流源驱动模式,更适合LED 的驱动。

  图1(b) 、(c) 、(d) 分别为P10、P16、F3. 75 或F5. 0单元板的连接方式。

 

图1 3 种常用单元板内部串行移位寄存器连接方式

  2 超长LED 显示屏面临的问题及解决方案

  目前,市场上大量的门头屏( 条形LED 显示屏)是LED 显示屏应用最广的一种形式。从技术上来说,门头屏的水平方向点数从256 点至数千点,而高度一般不超过64 点。随着市场需求和显示精度的提高,数千点长度的超长LED 显示屏需求量在不断加大。 普通的LED 显示屏控制卡难于满足刷新率的要求,以在长度上像素点是4 096 的F3. 75 LED 显示屏为例,设刷新率为60 Hz,其SCK时钟周期至少为106 /60 /16 /4 096 = 0. 254 μs = 254 ns.

  解决超长LED 显示屏数据输出的方法有两种:一是选择高性能嵌入式处理器和FPGA 芯片,该方法控制卡成本较高;二是巧妙应用单片机上的特殊功能部件并优化组织数据算法,这种方法成本很低。本文采用的就是第2 种方法,通过优化算法将数据预先写入多端口串行Flash 存储器SST26VF016B 中,利用STC12C5616 单片机的SPI部件产生高速可控SCK 时钟,将多端口串行Flash存储器中的显示数据以“DMA”方式直接输出至超长条形LED 显示屏中,满足超长LED 显示屏的显示要求。

  超长LED 显示屏高度一般不超过64 点,若控制1 /16 扫描单色LED 显示屏,SST26VF016B 存储器的4 位数据端口正好满足LED 显示屏数据口宽度的需要。图2 为SST26VF016B 存储器的控制时序,CS 为SST26VF016B 存储器的片选端,所有对存储器的操作都要在CS 为低电平期间进行;SCK 为时钟线,当空闲模式时,SCK 信号可以处于低电平状态( MODE 0),也可以处在高电平状态( MODE 3) ; SIO( 3∶ 0) 为4 位数据端口,在数据传输时,先传字节的高4 位,再传字节的低4 位。从存储器的控制时序可以看出,对存储器的控制按照命令字、24 位存储地址、虚拟字节、数据字节0 到数据字节N 的顺序发送。存储器的命令字可以实现对存储器进行片擦除、扇区擦除、单字节读写、连续字节读写等功能,完全能够满足超长LED 显示屏对存储器的容量和控制方式的要求。

 

图2 SST26VF016B 存储器的控制时序。

  STC12C5616 是STC 公司推出的高速1T 单片机,时钟频率可达30 MHz 以上,其内部集成一个高速串行通信接口部件( 即SPI 接口)。当STC12C5616 的SPI 部件采用主模式工作时,其SPI时钟输出频率( fclk) 可以达到晶振频率( fosc) 的1 /4 倍,并且可以灵活配置它的时钟相位和时钟极性,既满足对SST26VF016B存储器控制的要求,又满足超长LED 显示屏对时钟的要求。

  3 超长LED 显示屏控制卡

  利用串行Flash 存储器SST26VF016B 的多位数据口存储器和STC12C5616 单片机的SPI 部件能产生高速SCK 时钟的特点,将显示数据从串行Flash存储器旁路输出至LED 显示屏,电路如图3 所示。

 

图3 超长LED 显示屏控制卡电路图。

  当显示屏的动态刷新速率达到50 次/s 时,在1 /16 扫描的LED 显示屏上,一行显示时间要小于1 /50 /16 s,即1. 25 ms. 在控制卡设计上,当fosc =22 MHz时,串行Flash 时钟频率fclk = 1 /4 fosc =5. 5 MHz,故4 096 个CLK 时钟所需时间为4 096 × 1 /(5. 5 × 106 ) s = 0. 744 ms,加上采用SQI协议发送存储器指令和地址的时间后也小于1. 25 ms,故在图3 中,单片机STC12C5616 的外部时钟选择22 MHz 时钟,就可以保证在SQI 协议方式下实现4 096 超长显示屏的显示。

  单片机STC12C5616 的外部时钟选择22. 118 4 MHz,便于串行口波特率的精确控制;引脚P3. 0和P3. 1为UART 接口,通过通信接口芯片MAX232 芯片实现控制卡和PC 机之间的通信连接;引脚P2. 0 ~ P2. 3为4 位数据线,该数据线一方面连接存储器SST26VF016B 的4 位数据口,另一方面通过74HC245 驱动后连接到LED 单元板输出接口的数据线上。在控制卡上设计有2 个单色LED单元板输出接口,接口J1 使用数据线D0和D1,接口J2 使用数据线D2和D3; 引脚P1. 7为SPI 时钟输出,SPI 时钟输出线同时连接到串行Flash 存储器SST26VF016B 和LED 单元板的时钟输入;引脚P1. 4为串行Flash 存储器SST26VF016B 的片选信号; 引脚P3. 5为LED 单元板的数据锁存信号;引脚P3. 7为LED 单元板的使能信号输出;引脚P1. 0 ~P1. 3为LED 单元板的行选择信号输出;J1 和J2 连接头用来连接显示屏在高度方向上的LED 单元板,以符合门头屏64 点高度要求。

  该电路的设计可以灵活地在单片机、串行存储器和LED 单元板相互之间实现3 种不同的数据访问模式,分别是:

  (1) 单片机和存储器之间的正常访问。

  由图3 可以看出,单片机STC12C5616 和串行Flash 存储器SST26VF016B 之间的连接是参照数据手册进行连接的,可以实现正常的数据存取,同时该数据也会进入LED 单元板上的移位寄存器缓冲区,但只要LED 单元板上的数据锁存RCK 没有得到有效信号,进入LED 单元板的数据是不显示出来的无效数据。

  (2) 单片机和LED 单元板之间数据通信。

  将单片机引脚P1. 4置高电平,即将串行Flash存储器的使能端无效,这时存储器的数据端口呈高阻状态,单片机和LED 单元板之间数据通信就不会受到存储器数据口的影响,可以将单片机的数据正常输出到LED 单元板上。

  (3) 存储器和LED 显示屏之间的数据传输。

  首先采用第(1) 种模式,单片机先向串行存储器输出命令字、存储地址和虚拟字节,然后将单片机的数据口P2. 0 ~ P2. 3全部置高电平,通过SPI 时钟从串行存储器读取显示数据,同时以“DMA”方式进入LED 单元板,当读取完一行数据后,在LED单元板上的数据锁存端RCK 上产生有效信号,就可以显示该行数据。当采用这种模式时,一定要将单片机STC12C5616 的引脚P2. 0 ~ P2. 3设置为“弱上拉”模式。

  4 超长LED 显示屏显示程序设计

  在1 /16 单色LED 显示屏硬件电路设计中,74HC595 采用直通方式连接。根据直通方式特点,预先对单色显示数据进行优化组织,将组织后的显示数据预先存放在串行Flash 存储器SST26VF016B 中。如图4 所示,单片机输出显示每行数据时按“输出数据→送移位脉冲→地址加1”的顺序重复进行,显示完一行后,RCK 锁存显示,通过ABCD 切换行选通线。

 

图4 1 /16 扫描单色F3. 75 或F5. 0 单元板( 64 × 32 点) 连接方式。

  以LED 显示屏的水平方向点数为4 096 点为例,其显示一帧数据的程序代码如下:

  woid Display(unsigned long begin_Addr)

  {

  unsigned char Ln

  ,Bv = 1;

  unsigned int Data_Length,Lw = 4096;

  unsigned long Addr;

  Data_Length = Bv* Lw

  ) ;

  for ( Ln = 0; Ln < 16; Ln + + )

  {

  Addr = Begin_Addr + Ln* Data_Length;

  CS = 0;

  SendSQI_Byte( 0x0B) ; / /送读命令

  / /送3 个字节地址

  SendSQI_Byte( ( Addr > 16) &0xff) ;

  SendSQI_Byte( ( Addr > 8) &0xff) ;

  SendSQI_Byte( ( Addr&0xff) ;

  SendSQI_Byte( ( 0xff) ; / /送虚字节

  P2 = P2 |0x0f;

  SPCTL = 0xd0; / /允许SPI 接口

  SPDAT = 0xff; / /启动第1 次SPI 发送

  Data_Length = ( Data_Length> 3) - 1;

  while( Data_Length! = 0)

  { / /SPI 时钟每次传输8 个脉冲

  while( ( SPSTAT&0x80) == 0) ;

  SPSTAT = 0x80; / /清接收标志

  SPDAT = 0xff; / /启动SPI 发送

  Data_Length -- ;

  }

  while( ( SPSTAT&0x80) == 0) ;

  SPSTAT = 0x80; / /清接收标志

  SPCTL = 0x90; / /禁止SPI 接口

  CS = 1; /* disable devicce * /

  EN = 0;

  RCK = 1; RCK = 0;

  PI = ( ( P1&0xf0) | Ln

  ) ;

  EN = 1;

  }

  }

  在设计程序时,仅在换行时关闭显示屏,避免它产生余辉,其余时间都点亮。在该程序中,Bv为数据线在垂直方向使用595 的组数;Lw为LED 显示屏水平方向像素点数;Ln为当前LED 显示屏显示数据行号。 当显示数据时,采用存储器和LED 显示屏的数据输出模式,单片机先向串行存储器输出“读数据”命令字“0x0B”,然后输出24 位地址和虚拟字节,再使单片机数据口输出高电平,就可以根据LED 显示屏的长度输出SCK 脉冲。送完一行数据后,禁止SPI 接口,RCK 锁存信号有效,切换至下一行,按重复步骤继续输出显示数据。

  5 测试

  经过测试后,显示屏显示正常,没有抖动情况,使用逻辑分析仪测试了其刷新率,如图5(b) 所示,信号A 的电平宽度表示显示1 行所需要的时间,其宽度为1. 036 16 ms,显示1 帧的时间为16 ×1. 036 16 ms≈16 ms,所以LED 显示屏的刷新率为1 /16 ms = 62. 5 Hz. 而当LED 显示屏的刷新率大于50 次/s 时,就可以满足设计要求,故本设计能够满足正常显示要求。通过测试SCK 信号,如图5(a)所示,可以看出SCK 信号每8 个脉冲1 组,每组之间的时间间隔仅为570 ns,该时间主要消耗在判断SPI 数据传输完成标志和循环控制上。

 

图5 LED 屏信号测试

  6 结论

  本文提出了基于多端口串行Flash 存储器的LED 显示控制系统,利用单片机的SPI 接口产生可控时钟,将多端口串行Flash 存储器中的显示数据以“DMA”方式直接输出至超长条形LED 显示屏。

  其制造成本低廉,根据本文程序及逻辑分析仪得到的时序图可知,该方法可以控制4 096 × 64 点阵单色LED 显示屏,在超长显示屏市场上有很好的应用前景。

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 【7.24 深圳】2025国际AI+IoT生态发展大会/2025全球 MCU及嵌入式技术论坛


  • 相关技术文库
  • LED
  • 光伏
  • 太阳能
  • 新能源
  • 如何提高太阳能电池的使用效率

    太阳能电池在实际生活中随处可见,即使是在乡村,也能看见太阳能电池的身影,比如装载太阳能电池的路灯。为增进大家对太阳能电池的认识,本文将对太阳能电池的历史、太阳能电池的材料、太阳能电池背板的退化原因予...

    2024-09-04
  • 太阳能电池的维护与保养方法是什么?

    太阳能电池作为常用电池类型,在现代社会得到了进一步发展。同时,太阳能电池为我们的生活带来了诸多便利,如美团单车上面的太阳能电池,为定位续航提供了支持。为增进大家对太阳能电池的认识,本文将介绍提高太阳...

    2024-09-04
  • PLC如何控制LED数码管

    LED数码显示管是一种由多个发光二极管封装在一起组成的显示器件,其广泛应用于各种场合,比如广告牌、钟表……

    2024-07-12
  • 三极管的低成本电压隔离方案

    昨天发了一篇关于线性光耦+运放做电压隔离采集的文章,今天在HCNR200的数据手册里又看到了一个低成本的隔离方案,使用的不是运算放大器,而是三极管,电路图如下:

    2024-07-12
  • 太阳能充电器的智能调节功能如何使用?

    充电器的使用极为频繁,几乎每个人每天都在使用充电器。为增进大家对充电器的认识,本文将对太阳能充电器,以及太阳能充电器的好坏予以介绍。通过本文,您将对充电器具备更深的了解。如果你对充电器具有兴趣,不妨...

    2024-07-08
  • 太阳能电池结构原理的全面解析与应用指南

    上篇文章中,小编对太阳能电池产业、太阳能电池特性有所阐述。为增进大家对太阳能电池的认识,本文将基于两点介绍有机太阳能电池:1、有机太阳能电池结构原理,2、有机太阳能电池应用前景。如果你对太阳能电池具有...

    2024-06-21
  • 制作有机太阳能电池的步骤

    太阳能电池在生活中有很多应用,路灯、单车等设备上,都有太阳能电池的身影。上篇文章中,小编对有机太阳能电池有所阐述。为增进大家对太阳能电池的认识,本文将对太阳能电池产业发展、太阳能电池基本特性予以介绍...

    2024-06-21
  • 大佬分享的太阳能电池知识

    太阳能电池,是生活中常见的电池类型之一。但是,太阳能电池按照材料的不同具有不同分类,比如薄膜太阳能电池、有机太阳能电池等。本文中,小编将堆有机太阳能电池予以介绍。如果你对太阳能电池具有兴趣,不妨继续...

    2024-06-21
  • 用三极管实现一个闪光经典电路的设计方案

    很多时候,我们是知其然,不知所以然。如果刨根问到底的话,可能这个问题会持续耽误完成这件事情的整个过程。但是不

    2024-05-11
  • 您了解光伏配电箱吗?家用配电箱跳闸问题如何检测?

    配电箱,是常用电力设备。通过配电箱,能够对电力加以管控。为增进大家对配电箱的认识,本文将对光伏配电箱予以介绍,并阐述如何检测家用配电箱的跳闸问题。如果你对配电箱具有兴趣,不妨和小编一起继续往下阅读哦...

    2024-01-24
  • LED灯光里的“隐形杀手”:警惕频闪危害

    使用LED等是家家户户的选择,然而也有的人在安装LED等之后,灯就会不停的闪烁。在晚上的时候,就会觉得比较吓人,那么led灯闪烁是什么原因呢?想要解决闪烁的问题,就一定要找对原因,才可以彻底的改善。下面就给大家...

    2024-01-15
下载排行榜
更多
评测报告
更多
广告