基于FPGA的彩屏控制器设计
always@(posedge CLK or negedge RST_n) begin
if (RST_n) begin
x_cnt = 11'd0;
hd = 1'd0;
end
else if (x_cnt ==479) begin
x_cnt = 11'd0;
hd = 1'd0;
end
else begin
x_cnt = x_cnt + 11'd1;
hd = 1'd1;
end
end
同理,当VSYNC电平由低变高,再经过垂直回归时间之后,进入垂直扫描。在VSYNC的高电平驱动下,HSYNC将产生272个时钟周期,像素点在屏幕上从上到下依次逐行输出,完成整个图像数据在彩色显示器上的显示。用Verilog HDL编写的同步扫描的时序程序如下:
always@(posedge CLK or negedge RST_n) begin
if (iRST_n)
y_cnt = 10'd0;
else if (x_cnt == 479) begin
if (y_cnt == 271)
y_cnt = 10'd0;
else
y_cnt = y_cnt + 10'd1;
end
end
1.3 ADS7843 芯片控制器的设计
ADS7843 芯片控制器用于将触摸的位置进行数据转换。ADS7843 的时序图如图3 所示。其中,CS 为片选信号, 低电平有效;BUSY 为忙指示信号, 同样低电平有效。

由图3 可看出,ADS7843 标准的一次数据转换需要24 个时钟周期, 每次的数据转换以8 个时钟周期为一次通信, 需要与控制器进行3 次通信。第一次通信是触摸控制模块的DIN 端口通过串口向ADS7843 发送控制字, 同时对X、Y 的电压值进行采集。控制字如表1 所示, 其中,S 为数据传输起始标志位;A2~A0 为通道选择;MODE 为A/D 转换精度控制位;SER/DFR 为参考电压的输入模式[5]。
评论