软件版本:VIVADO2017.4 操作系统:WIN10 64bit 硬件平台:适用米联客 ZYNQ系列开发板 米联客(MSXBO)论坛:www.osrc.cn答疑解惑专栏开通,欢迎大家给我提问!! 35.1 概述很多工程师都在ZYNQ上做过LINUX相关的应用和开发,在ZYNQ运行LINUX操作系统,可以实现非常细致的GUI图形界面。用户可以通过鼠标、键盘等外部设备与操作系统通过GUI界面进行人机交互,与平时使用电脑的体验相当。 但同时,也有很用户只涉及ZYNQ的裸机开发,那么在无操作系统支持的情况下,是否可以在裸机环境中构建一个GUI图形界面呢? 答案是肯定的。本例程通过利用开源GUI库μGUI,在ZYNQ裸机环境下创建一组简单的GUI界面,并通过外部液晶触摸屏实现与ZYNQ的人机交互。本例程所涉及的应用知识点如下:
本章提供两个测试工程,分别是LCD屏的RGB接口uGUI工程和LVDS接口的uGUI工程。用户可使用RGB或LVDS中的任意接口实现基于μGUI的触摸屏GUI界面设计的功能。 35.2 基本原理本例程通过开源的uGUI v0.3库设计了1个GUI界面,为该GUI界面设计了5个窗口,为每个窗口设计了标题、按键、文本、图片logo等元素,并给每个按键设定了相应的功能,如窗口间切换、LED灯控制、屏幕亮度调节等,并在1个窗口中设计了绘图功能。然后,将设计的GUI窗口通过触摸屏显示。用户通过按下触摸屏中所显示的窗口对应的按键位置,便可以实现该按键所设定的相应功能,从而实现人机交互。 35.3 LCD 触摸屏LCD触摸屏由LCD液晶屏和触摸屏两部分组成,其中LCD液晶屏用于画面显示,触摸屏用于实现触摸控制。本例程中所使用的是微雪公司的7寸LCD电容触摸屏,如下图所示。 35.3.1 液晶屏液晶屏为1024×600分辨率,这个分辨率不常用,在网上很难找到统一的标准。在该液晶屏HJ070NA-13A的手册中可以找到此液晶屏在该分辨率下的时序要求,如下图所示。 本例程采用了51.2MHz像素时钟所对应的参数设置。液晶屏的驱动方法与显示器类似,通过时钟,行、场同步信号,数据有效信号来完成,此处不作赘述。 要使液晶屏正常显示,背光源使能信号DISP要拉高,通过调节PWM的占空比可以改变背光源的亮度。该液晶屏的PWM为负极性,即低电平占空比越高,背光源越亮,PWM信号的频率范围为100Hz~200KHz。 35.3.2 触摸屏触摸屏为电容屏,采用了FT5206作为主控芯片,支持5点触控。触摸屏与ZYNQ的接口如下图所示。 35.3.3 触摸屏唤醒在触摸屏与ZYNQ的接口中,WAKE信号为低电平有效,ZYNQ通过拉低WAKE信号若干毫秒,再将其拉高来唤醒FT5206芯片,当触摸屏正常工作时WAKE信号应恒为高电平。如下图所示。 35.3.4 触摸中断INT信号也为低电平有效。当手指触摸电容屏时,INT信号会以固定频率(默认为60Hz)脉冲信号的形式输出,当手指离开电容屏,INT信号重新恢复高电平,如下图所示。 35.3.5 触摸信息获取每当INT变为低电平时,ZYNQ就立即通过I2C接口读出FT5206芯片内部记录的触摸坐标信息,完成一次触摸响应。 FT5206芯片I2C接口作为slave从设备,最高速率为400KHz,I2C地址为0x38。这里补充说明一点,关于I2C地址芯片datasheet中作了如下图所示的描述,笔者在搜集到的关于FT5206的资料中均未能找到关于I2CCON register的说明。后来,通过网络搜索发现使用过该系列芯片的记录中,所提到的I2C地址均为0x38,笔者通过尝试得到了验证。 FT5206芯片通过一系列寄存器记录与触摸相关的信息。相关寄存器如下图所示。 其中,TD_STATUS寄存器记录 |
扫描关注,了解最新资讯