基于FPGA的彩屏控制器設(shè)計
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
同理,當(dāng)VSYNC電平由低變高,再經(jīng)過垂直回歸時間之后,進入垂直掃描。在VSYNC的高電平驅(qū)動下,HSYNC將產(chǎn)生272個時鐘周期,像素點在屏幕上從上到下依次逐行輸出,完成整個圖像數(shù)據(jù)在彩色顯示器上的顯示。用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 芯片控制器的設(shè)計
ADS7843 芯片控制器用于將觸摸的位置進行數(shù)據(jù)轉(zhuǎn)換。ADS7843 的時序圖如圖3 所示。其中,CS 為片選信號, 低電平有效;BUSY 為忙指示信號, 同樣低電平有效。
由圖3 可看出,ADS7843 標(biāo)準的一次數(shù)據(jù)轉(zhuǎn)換需要24 個時鐘周期, 每次的數(shù)據(jù)轉(zhuǎn)換以8 個時鐘周期為一次通信, 需要與控制器進行3 次通信。第一次通信是觸摸控制模塊的DIN 端口通過串口向ADS7843 發(fā)送控制字, 同時對X、Y 的電壓值進行采集。控制字如表1 所示, 其中,S 為數(shù)據(jù)傳輸起始標(biāo)志位;A2~A0 為通道選擇;MODE 為A/D 轉(zhuǎn)換精度控制位;SER/DFR 為參考電壓的輸入模式[5]。
評論