基于FPGA的彩屏控制器设计

将控制字以串行的方式写入到内部寄存器的Verilog HDL代码如下所示:
if (dclk)
data_in = {data_in[6:0],1'b0};
第二、三次通信则是ADS7843 将触摸后的X、Y的电压值转换为16 bit数据赋值给DOUT端口,然后芯片采集其高12 bit数据,低4 bit自动补零。本设计将采集到的串行的12 bit数据转化为并行的12 bit数据,其Verilog HDL代码如下:
if (!dclk)
begin
if(rd_cd_strob)
begin
if(y_cde_config)
y_cde={y_cde[10:0],adc_out};
else
x_cde={x_cde[10:0],adc_out};
end
end
2 实验结果
2.1 仿真验证
整个控制器是在Quartus II 8.0中设计并仿真的。仿真分为两个部分,包括TFT-LCD控制器的时序波形和ADS7843芯片控制器的时序波形。仿真结果分别如图4、图5所示。

由图4可以得出,在一帧的数据(oVD的一个时钟周期内的数据)中,前1/3帧显示红色(oLCD_R对应255),中间1/3帧显示绿色(oLCD_G对应255),后1/3帧显示蓝色(oLCD_B对应255);则相应的屏幕上1~90行显示为红色、91~180行为绿色,180~272行为蓝色,如图6所示。

下面分析X坐标值。由图5可以看到,当产生触摸时笔中断信号PENIRQ变为低电平,此时片选信号CS变为低电平,其低电平维持时间为24个DCLK时钟周期,在前8个时钟周期DIN端口写入控制字为10010010,在第10个时钟DOUT端口开始接收转化的12 bit数据,其值为011110001000。同理可分析Y坐标值。在DOUT端口接收X、Y坐标值之后,通过串并转换最终得到并行输出的X、Y的坐标值,如图5中的oX和oY端口所示。
2.2 最终显示效果
FPGA采用Altera公司的EP2C70F896C6;彩色液晶触摸屏采用台湾东华公司的WXCAT43-TG3#001R。最终的显示效果如图6所示。
使用Verilog HDL编写触摸界面过于复杂,通过软件设计触摸屏操作界面则需要编写彩色触摸屏的IP核,本设计基于FPGA的彩色触摸屏控制器能够实现颜色深度为24 bit,分辨率为480×272的TFT-LCD控制和ADS7843芯片的时序控制,为后续IP核的编写工作打下了基础。
评论