2.2扫描驱动电路设计
LED显示屏的扫描驱动电路部分是由FPGA来实现的,如图3所示。
扫描驱动电路主要完成灰度数据的读取和发送、上屏灰度数据的产生、移位时钟的产生、亮度信号的控制、4个分区锁存信号的产生、通知ARM发送数据等功能。这些功能均在一片FPGA中完成,这样使显示控制电路板的体积减小,而且由于FPGA功能用硬件描述语言VHDL编程实现,即可以通过使用VHDL语言编程,来验证系统方案的可行性及正确性,然后再用FPGA硬件来实现,从而可以大大缩短开发周期,使设计灵活、修改方便,同时FPGA由于高集成度、高速高可靠性、开发周期短的特点,从而大大改善电路性能。
这种设计的实现需要FPGA提供大量的I/O引脚,其中I/O引脚包括(1)系统总线接口:数据总线8根,控制信号线5根,亮度信号线3根,输入线1根,复位信号线1根,共18根;(2)双共模电感器体SRAM总线接口:地址总线15根,数据总线8根,读写控制信号2根,共50根;(3)显示控制信号输出接口:移位时钟信号1根,行锁存信号1根,行选4根;(4)显示像素数据输出接口:红、绿、蓝共3根。共计18+50+6+3=77个I/O口。为了可以使LED显示屏的尺寸增加1倍,即所需的I/O口增多,同时考用VHDL语言描述的内部功能逻辑所需的宏单元数量,需要选择256个宏单芯片,在此FPGA选用32位的PolarPro QLlP300芯片。
2.3静态存储器SRAM的选择
外部扩展的两片SRAM,要求能满足上屏数据读取速度的要求,考虑到存储数据的宽度和容量,本设计选用ISSI(Integrated Silicon Solution Inc.)公司的IS61C1024芯片。该芯片存储容量为128 kB,8位数据宽度,最高读写速度为25 ns,电源电压为5 V,具有最高40 MHz的读写频率,可进行高速异步读写操作,无须等待时间,其容量满足一屏文字和图像数据信息的存储要求,两片SRAM采用双体切换技术来完成数据的存储和读取过程。
3 系统软件设计
3.1 ARM软件设计
根据该系统的设计需求,将软件划分如下几个模块分别形成独立的程序文件:启动代码模块、串口模块、时钟模块、温度和亮度传感器模块、FLASH管理模块、下载管理模块和显示模块。启动代码用于初共模电感始化系统配置、初始化各个处理器模式下的栈空间,初线绕电感始化目标板,引导C程序运行,用汇编语言编写;串口模块实现串口的发送、接收等基本功能;时钟模块实现RTC时间的设置与读取等基本功能绕行电感;温度和亮度传感器模块实现温度和亮度控制;Flash管理模块实现外部FLASH擦除、存储、分配的管理,将显示指令和显示信息进行存储;下载管理模块负责与上位机通讯,下载显示指令和信息;显示模块负责显示指令的解析以及显示信息的提取,显示效果的处理,包括出场模式和表演模式以及各种字体字形的产生,同时负责送灰度数据给FPGA,本设计以启动代码为例阐述源代码的编写。
通常将启动代码划分为5个文件:startup.s、IRQ.s、stack.s、heap.s和电感生产target.c。startup.s包含中断向量表和系统初始化代码;IRQ.s包含中断服务程序与C程序的接口代码;stack.s和heap.s保存C语言使用的堆和栈的开始位置;target.c包含目标板特殊的代码,包括异常处理程序和目标板初始化程序。下面给出几个关键的初始化程序段供参考。
1.中断向量表
2.系统初始化代码
ResetInit
BL Initstack;初始化芯片各种模式的堆栈
BL TargetResetInit:目标板基本初始化
完整易用的电源管理和转换IC电源管理方案电源管理是当今的1个热门技术。电源管理包括电源监控、定序、容限等(图1)。电源管理需要新的方法。图2示出Zilker Labs公司的方案。表1 电源模块BoM比较电源模块BoM的Zilke
[稳压电源]BTA16不触发使用的光耦为MOC3052。
使用IN4007是为了只是用每个BTA16的一面触发,从而增大BTA16的散热面积,减少了每个BTA16的工作电流。
现在BTA16不触发,大神们帮我分析下怎么回事?
这个SC
消除影响JESD204B链路传输的因素 JESD204B串行数据链路接口针对支持更高速转换器不断增长的带宽需求而开发。作为第三代标准,它提供更高的通道速率最大值(每通道高达12.5 Gbps),支持确定延迟和谐波帧时钟。此外,得益于转换器