Android平臺Bootloader的刷屏功能擴展設計
2.2 LCD控制器和LCD驅動(dòng)囂的硬件連接
ILI9481是一個(gè)單芯片TFT液晶顯示驅動(dòng)器,通常LCD控制器和LCD驅動(dòng)器之間有并口、串口、RGB三種接口。采用RGB接口時(shí),控制信息(行同步、場(chǎng)同步等)由主控制器發(fā)送;采用并口、串口時(shí),控制信息包含在發(fā)送的圖像數據中,該項目采用的是C6310 LCD控制器和ILI9481驅動(dòng)器,它們采用并口連接,圖2描述了LCD主控制器和ILI9481的連接。本文引用地址:http://dyxdggzs.com/article/159564.htm
驅動(dòng)中針對硬件的操作主要為主控制器寄存器的配置,命令和圖像的傳輸由LCD主控制器完成。
3 LCD控制器操作流程設計
C6310采用L3層作為背景層、L4為命令層。當緩沖區的圖像數據準備好以后,通過(guò)B_LCD_BmpOntoScreen16Bpp_ILI9481()函數啟動(dòng)LCD控制器,并將圖像數據搬移到LCD驅動(dòng)器。B_LCD_BmlpOntoScreen16Bpp_ILI9481()啟動(dòng)控制器后,啟動(dòng)一個(gè)等待隊列,等待圖像數據傳輸完畢。
圖像搬移過(guò)程中會(huì )產(chǎn)生中斷,這里用到L4_EOF、L3_EOF、和L1_EOF中斷,其中L4_EOF為命令傳輸完成中斷,L3_EOF和L1_EOF分別為L(cháng)3層和L1層數據傳輸完成中斷。首先,C6310_LCDC向LCD驅動(dòng)器發(fā)送一組數據,命令發(fā)送完畢后產(chǎn)生L4_EOF中斷。然后,C6310_LCDC向LCD驅動(dòng)器發(fā)送圖像數據,發(fā)送完畢后產(chǎn)生L3_EOF和L1_EOF中斷。
在LCD進(jìn)行數據顯示前,首先要對LCD控制器的相關(guān)寄存器進(jìn)行正確的設置。表1是C6310中的主要寄存器及其說(shuō)明。
連接16位RGB并行接口屏,其寄存器的操作流程如下;
①將命令index和命令數據寫(xiě)入存儲器,如果命令是16位,則每一個(gè)字對應15:0是命令。如果命令為8位,則每一個(gè)字對應7:0是命令,通過(guò)每一個(gè)字中的第17位、WR_RD和第16位A0控制命令屬性,如果該命令是最后一個(gè)命令,命令的第19位設置為1。
②配置LCD寄存器。配置第4層的起始地址為命令存儲地址,配置LCD_PCONF控制讀寫(xiě)時(shí)序,配置LCD_L1_SIZE的屏幕大小,配置LCD_PCONF控制讀寫(xiě)時(shí)序,配置LCD_LCONF控制每層的開(kāi)關(guān)和透明覆蓋使能等。
③使能LCD控制位LCD_SEL,LCD控制器自動(dòng)讀取存儲器中數據傳輸到接口。
④等待L1_SOF中斷產(chǎn)生后,可以寫(xiě)下一幀所需要的命令和修改其他層起始地址等。
⑤等待BOF中斷可以配置下一幀的LCD_CTRL寄存器或者每一層起始地址。
⑥如果連接的是并口或者串口LCD屏,在圖像數據寫(xiě)入存儲器的同時(shí)將命令寫(xiě)到第4層圖像對應地址,LCD控制器會(huì )自動(dòng)讀取這些命令輸出。LCD控制器操作流程如圖3所示。
從流程圖可以看出,當EOF中斷產(chǎn)生之后,就可以配置LCD控制器下一幀數據的起始地址。此時(shí),這些配置不會(huì )在當前幀起效,而是在下一幀起效,如果需要當前命令發(fā)送完畢之后發(fā)送圖像數據,L4_WINTH需配置為大于實(shí)際命令發(fā)送個(gè)數。本驅動(dòng)為了讓LCD控制器傳送一幀圖像后停止工作,當L4_EOF中斷到來(lái)后,配置下一幀發(fā)送的命令為0x30003。
評論