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