《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 基于S3C2440A終端LCD驅動電路的設計與實現
基于S3C2440A終端LCD驅動電路的設計與實現
摘要: 現在大部分的便攜式手持終端產品,如移動電話、導航系統等,都擁有一個小型LCD顯示屏,這使LCD驅動電路的設計成為手持終端設計的重要組成部分。本文以應用于特殊行業的手持終端為例,敘述LCD驅動電路的設計實現方法。
Abstract:
Key words :

  引言

  現在大部分的便攜式手持終端產品,如移動電話、導航系統等,都擁有一個小型LCD顯示屏,這使LCD驅動電路的設計成為手持終端設計的重要組成部分。

  本文以應用于特殊行業的手持終端為例,敘述LCD驅動電路的設計實現方法。

  硬件電路設計

  硬件電路結構

  本設計中手持終端CPU采用三星公司ARM920T內核處理器S3C2440A,其LCD控制器支持STN LCD和TFT LCD,實際使用的LCD為LTS350Q1-PE1_PI,屬于TFT LCD。

  電路框圖如圖1所示。

電路框圖

  驅動電路主要包括三部分:第一部分是LCD驅動,采用MAX1779芯片;第二部分是LED背光驅動,采用MP1521芯片;第三部分是VCOM信號驅動,采用LM8261芯片。這里主要敘述LCD驅動和背光電路的實現。

  LCD驅動電路

  由于LCD內集成有數字電路和模擬電路,需要外部提供數字電壓DVDD和模擬電壓AVDD。另外,為了完成數據掃描,需要TFT輪流開啟/關閉。當TFT開啟時,數據通過源極驅動器加載到顯示電極,顯示電極和公共電極間的電壓差再作用于液晶實現顯示,因此需要控制TFT的開啟電壓VGH、關閉電壓VGL,以及加到公共電極上的電壓VCOM。

  MAX1779芯片能產生LCD需要的模擬電壓AVDD、柵極開啟電壓VGH及柵極關斷電壓VGL。芯片內部集成有3個DC-DC轉換器,其中包括兩個充電泵和一個升壓轉換器,可以為小型TFT液晶屏提供高效的調節電壓。LCD驅動電路如圖2所示。

LCD驅動電路

  這里,一個充電泵產生正電壓,作為TFT的開啟電壓VGH;另外一個充電泵產生負電壓,作為TFT的關閉電壓VGL。此外,芯片還可以產生-5V電壓輸出,設計時利用-5V輸出電壓協助LM8261產生VCOM信號。

  LED背光驅動電路

  LCD作為一種被動顯示器件本身并不能發光,必須要有背光模塊提供光源。白光LED由于復雜程度較低、成本低且尺寸較小,被普遍用做嵌入式手持設備的LCD背光源。本文中背光驅動電路如圖3所示。

背光驅動電路

  驅動芯片采用MP1521,該芯片有3組獨立的電流反饋回路,可同時驅動3組并聯的LED?,F將3組反饋回路FB1、FB2、FB3短接,可以提供更大的驅動電流,用于驅動6個白色串聯LED背光燈。

  MP1521支持兩種方式控制LED亮度,一是將BRT連接在范圍為0.26V~1.2V的電壓上,另外一種是通過PWM信號控制LED亮度。設計時,將其連接在PWM端口,使用PWM控制LCD背光亮度。

  S3C2440A有5個16bit定時器,其中定時器0、1、2、3有PWM功能。將BRT連接到能夠輸出PWM信號的CPU的TOUT0/GPB0引腳,利用定時器0產生的PWM信號控制LCD亮度。通過改變PWM信號的占空比調整LED亮度,而通過設置CPU內部寄存器的值可以改變PWM的占空比。

  為了節省功耗,電路的使能(EN)端接CPU的LCD_PWREN管腳,高電平時背光電路工作;低電平時背光電路不工作。同時,可將EN端通過電阻直接連接到3.3V電源上以便調試時使用。
LCD_BCK+和LCD_BCK-分別連接到串聯LED的正負兩端。

  軟件設計

  手持終端的嵌入式Linux所采用的內核版本是kernel-2.4.18。 為了使LCD能正常顯示,還需要在Linux系統下開發LCD的驅動程序。

  字符設備的驅動程序

  字符設備是Linux系統中最簡單的設備,可以像文件一樣訪問。當字符設備初始化的時候,其驅動程序向Linux內核登記,在chrdevs向量表中增加一個device_struct數據結構條目。這個設備的主設備標識符用作這個向量表的索引。一個設備的主設備標識符是固定的。chrdevs向量表中的device_struct數據結構包括一個登記設備驅動程序名稱的指針和一個指向一組文件操作的指針。這組文件操作本身位于這個設備的字符設備驅動程序中,并處理一些特定任務。

  Linux下的幀緩沖設備

  Linux操作系統為LCD等顯示設備提供了幀緩沖區。幀緩沖區(Framebuffer)是Linux為顯示設備提供的一個接口,是把顯存抽象化后的一種設備。為LCD編寫驅動程序的實質就是為幀緩沖區編寫驅動程序。

  由于幀緩沖驅動程序的實現在許多論文中有詳細敘述,這里不再贅述,本文重點討論背光設備驅動程序的實現。

   LCD背光設備的驅動程序

  LCD背光設備可看作字符設備,可以按照字符設備驅動程序的編寫方法進行實現。在驅動程序里實現了LCD各種控制功能。驅動程序主要包括lcdctrl.c和lcdctrl_smdk2440.c。其中lcdctrl.c屏蔽了具體的硬件,它通過鉤子函數調用lcdctrl_smdk2440.c相關函數完成各種具體操作。為了形象地說明兩個文件之間的關系,這里以LCD亮度調節過程為例,說明函數的調用過程,如圖4所示。

 

函數的調用過程

  lcdctrl.c中的lcdctrl_ioctl函數需根據上層應用程序的不同參數實現不同的功能,這些控制LCD的功能包括亮度調整、對比度調整、關閉LCD、開啟LCD等。

  下面分別敘述兩個文件的實現。

  lcdctrl.c文件

  1、定義file_operation結構體

static struct file_operations lcdctrl_fops = {
 ioctl: lcdctrl_ioctl,
 open: lcdctrl_open,
 release: lcdctrl_close  };

  LCD的各種控制功能在lcdctrl_ioctl函數中實現,lcdctrl_open和lcdctrl_close不實現具體功能,直接返回0值。

  2、lcdctrl_ioctl函數

  lcdctrl_ioctl函數需根據上層應用程序的不同參數實現不同的功能,這里主要說明亮度調節功能的實現。部分代碼如下:

static int lcdctrl_ioctl(struct inode * inode, struct file *filp,  unsigned int cmd , unsigned long arg)
{……
 switch(cmd)
 { ……
  case
_LCDCTRL_IOCTL_BRIGHTNESS:
if ((arg >=0) && (arg <= 100))
ret = lcdctrl_set_brightness(arg);
break; //調節LCD背光亮度
  ……
     break;}
return ret;}

  當應用程序傳遞的命令參數為LCDCTRL_IOCTL_BRIGHTNESS時,lcdctrl_ioctl調用lcdctrl_set_ brightness具體實現亮度調節功能。

  3、lcdctrl_set_brightness函數

  lcdctrl_set_brightness具體實現亮度調節功能。主要代碼如下:

int lcdctrl_set_brightness(int b)
{
 brightness = b;
 return lcd_device->set_brightness(b);
}

  可以看出,此函數調用lcd_ device->set_brightness函數,而lcd_device在初始化時已被指向與具體的硬件相關的函數。

  4、初始化函數

  初始化函數主要完成初始信息的設置和設備的注冊。

  lcdctrl.c_smdk2440文件

  1、lcdctrl_device結構體

  lcdctrl_device結構體定義了具體操作LCD的各函數指針,包括LCD初始化函數,LCD開啟和關閉函數,亮度、對比度等設置函數。其中LCD關閉函數的本質就是將LCD背光亮度設置為0。

static struct lcdctrl_device smdk2440_dev = {
init:      smdk2440_lcdctrl_init,
enable:     smdk2440_lcdctrl_enable,
disable:    smdk2440_lcdctrl_disable,
set_intensity:  smdk2440_lcdctrl_set_intensity,
set_brightness: smdk2440_lcdctrl_set_brightness,
set_contrast: smdk2440_lcdctrl_set_contrast};

  2、smdk2440_lcdctrl_set_brightnes函數

  這里只敘述亮度設置函數的實現。

static int smdk2440_lcdctrl_set_brightness( int b)
{ ……
  TCNTB0 = 100;
  TCMPB0 = b*100/100;
 //設置TCMPB0寄存器的值
  TCON =  (TCON & ~(0xf)) | ( TCON_0_AUTO | TCON_0_MAN | COUNT_0_OFF);
TCON =  (TCON & ~(0xf)) | 0;
TCON=(TCON & ~(0xf)) | (TCON_0_AUTO | COUNT_0_ON);}

 

   函數中的語句大部分是給與定時器相關的寄存器寫值。其中b就是上層函數傳遞下來的bright值,從程序中可以看到,調節亮度本質上是通過TCMPB0寄存器寫入與bright相關的值,控制PWM占空比實現亮度調節功能。

  3、LCDctrl_device_get_ops函數

  用于上層獲取具體設備的鉤子函數。代碼如下:

struct lcdctrl_device *lcdctrl_device_get_ops(void)
{return &smdk2440_dev;}

  此函數被lcdctrl.c初始化時調用,將設備指向smdk2440_dev。

  至此,驅動程序設計完成,為了更好地實現LCD的管理,需要在上層的Qtopia應用程序中提供人機操作的界面。

  Qtopia應用程序

  Qtopia應用程序提供人機操作界面并調用底層驅動程序完成LCD控制功能,這里,仍然以亮度調節為例敘述應用程序工作過程。

  主要完成功能:

  1、應用程序完成人機操作的界面,為使用人員提供友好界面;

  2、讀取亮度值,并將其存入變量bright中;

  3、打開設備文件:fd=open("/dev/devname",O_RDONLY);

  4、調用底層的驅動程序,通過底層的驅動程序將LCD背光亮度調整為指定值。

  ioctl(fd, _BACKLIGHT_ IOCTL_BRIGHT, bright)。

  ioctl函數調用驅動程序完成亮度的調節。

  結語

  經測試,設計完成的LCD能很好地完成圖形的顯示,終端電源管理界面中包含了LCD亮度調節功能。

  LCD驅動電路的設計是手持終端產品的重要組成部分。本文設計并實現了基于S3C2440A的手持終端LCD驅動電路。通過圖形管理界面能夠方便地管理LCD,達到節約能量、延長手持終端工作時間的目的。

  參考文獻

  1. 楊水清, 張劍, 施云飛. ARM嵌入式Linux系統開發技術詳解,電子工業出版社,2008/11

  2. 常贊杰, 張位勇. 基于Framebuffer的LCD驅動程序設計. 辦公自動化,2008/12

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚洲国产黄色片| 久久全球大尺度高清视频| 亚洲福利av| 亚洲高清资源综合久久精品| 欧美激情在线狂野欧美精品| 久久久久久婷| 久久在线视频在线| 国产亚洲欧美一区在线观看| 亚洲淫性视频| 国产亚洲一区二区在线观看| 国产女人水真多18毛片18精品视频| 亚洲日本欧美日韩高观看| 国产一区二区在线免费观看| 久久精品视频在线免费观看| 日韩手机在线导航| 在线精品国精品国产尤物884a| 在线电影院国产精品| 国产日韩欧美一区二区| 亚洲综合视频在线| 国产精品一区二区三区四区| 欧美调教视频| 激情亚洲网站| 国产女精品视频网站免费| 国产自产2019最新不卡| 欧美日韩另类视频| 国产精品av久久久久久麻豆网| 国产精品久久网| 欧美freesex8一10精品| 亚洲黄色免费| 欧美三级电影一区| 欧美久久久久久| 欧美三日本三级三级在线播放| 亚洲五月婷婷| 日韩午夜高潮| 亚洲精品久久久一区二区三区| 欧美日韩久久久久久| 国产精品久久久久久久免费软件| 久久久97精品| 亚洲免费在线视频一区 二区| 香蕉国产精品偷在线观看不卡| 国产欧美日韩在线观看| 亚洲精品欧美精品| 久久午夜激情| 国产精品老女人精品视频| 国产精品日日摸夜夜添夜夜av| 亚洲理伦在线| 蜜臀av一级做a爰片久久| 狠狠色丁香久久婷婷综合_中| 精品白丝av| 国产精品久久久久国产a级| 亚洲精品一区二区三区樱花| 国产美女扒开尿口久久久| 亚洲最新色图| 国内精品伊人久久久久av影院| 久久久国产精品亚洲一区| 亚洲国产天堂网精品网站| 亚洲欧美日韩在线一区| 国产精品久久久久久久久久久久久久| 欧美三级午夜理伦三级中视频| 日韩视频亚洲视频| 久色婷婷小香蕉久久| 欧美三区在线视频| 亚洲欧美日韩综合国产aⅴ| 欧美—级a级欧美特级ar全黄| 国产在线播放一区二区三区| 亚洲肉体裸体xxxx137| 欧美三级视频| 欧美日韩精品综合| 久久网站热最新地址| 国产精品夫妻自拍| 日韩午夜在线播放| 亚洲欧美日韩国产中文| 亚洲国产精品欧美一二99| 欧美日韩综合一区| 美国十次成人| 裸体歌舞表演一区二区| 久久久久久穴| 久久久久久久欧美精品| 一区二区三区日韩欧美精品| 免费永久网站黄欧美| 亚洲精品在线免费观看视频| 亚洲卡通欧美制服中文| 欧美18av| 亚洲视频精选在线| 香蕉久久夜色| 亚洲社区在线观看| 国产伦精品一区二区三区免费迷| 亚洲国产高清在线观看视频| 亚洲视频中文字幕| 一区二区三区免费看| 欧美一区二区三区婷婷月色| 欧美网站大全在线观看| 久久久久高清| 中文一区在线| 欧美黄色成人网| 国产在线拍揄自揄视频不卡99| 一本色道久久综合亚洲精品婷婷| 亚洲欧美日韩国产综合精品二区| 欧美另类在线播放| 国产一在线精品一区在线观看| 亚洲黄色在线看| 久久久久久久国产| 国产精品亚洲综合久久| 日韩视频在线一区二区三区| 国产精品高清在线| 亚洲欧美日本日韩| 欧美一区日本一区韩国一区| 亚洲欧美成人| 久久人人97超碰人人澡爱香蕉| 欧美一区二区视频网站| 亚洲视频专区在线| 久久人人97超碰人人澡爱香蕉| 欧美精品在线播放| 欧美午夜精品伦理| 一区二区三区四区五区精品视频| 亚洲午夜在线观看视频在线| 国产亚洲精品一区二区| 欧美人交a欧美精品| 久久一区二区三区国产精品| 国产亚洲视频在线观看| 国产精品毛片| 亚洲国产中文字幕在线观看| 99视频在线精品国自产拍免费观看| 欧美日韩亚洲国产精品| 欧美午夜电影一区| 狠狠爱www人成狠狠爱综合网| 在线电影院国产精品| 欧美另类极品videosbest最新版本| 久久久久久久波多野高潮日日| 麻豆av一区二区三区| 国产精品影片在线观看| 欧美超级免费视 在线| 在线亚洲观看| 欧美激情亚洲国产| 国产精品99久久99久久久二8| 国产亚洲欧美日韩在线一区| 亚洲风情在线资源站| 亚洲国产你懂的| 久久全国免费视频| 美女诱惑一区| 欧美日韩一区二区三区在线观看免| 欧美3dxxxxhd| 欧美人与禽性xxxxx杂性| 在线播放国产一区中文字幕剧情欧美| 一区二区国产在线观看| 亚洲高清资源| 亚洲老板91色精品久久| 亚洲欧美在线播放| 欧美欧美午夜aⅴ在线观看| 国产欧美亚洲日本| 亚洲黄色精品| 欧美日韩日本视频| 国产精品二区三区四区| 麻豆av一区二区三区久久| 久久久人人人| 一本综合精品| 欧美日韩成人综合在线一区二区| 性久久久久久久久| 亚洲一区二区三区四区在线观看| 欧美在线视频免费| 亚洲精品影视| 欧美aa国产视频| 香蕉久久国产| 国产日韩精品在线观看| 中国亚洲黄色| 六月婷婷一区| 伊人成人开心激情综合网| 欧美日韩午夜在线| 久久精品女人的天堂av| 国产亚洲精品一区二区| 久久国产主播精品| 亚洲精品视频啊美女在线直播| 免费一区二区三区| 亚洲毛片网站| 国产精品国产三级国产aⅴ入口| 欧美xart系列在线观看| 欧美日韩免费在线| 久久国产精品免费一区| 欧美人与禽猛交乱配| 欧美成人黄色小视频| 亚洲国产精品999| 欧美日韩精品国产| 国产精品视频yy9299一区| 国产精品麻豆欧美日韩ww| 亚洲国产成人久久| 欧美三级在线视频| 欧美日韩国产精品专区| 老**午夜毛片一区二区三区| 国产精品对白刺激久久久| 亚洲国产精品999| 欧美一区二区在线视频| 99综合电影在线视频| 在线精品亚洲| 欧美精品久久一区二区| 亚洲天堂av在线免费观看| 免费在线亚洲欧美| 一区二区三区在线观看欧美| 欧美一区二区视频在线观看2020| 99re在线精品| 亚洲女爱视频在线| 久久国产夜色精品鲁鲁99| 欧美成人高清视频| 欧美日韩在线播放三区四区| 欧美亚男人的天堂| 亚洲精品国偷自产在线99热| 国产午夜精品一区二区三区视频| 国产精品美女999| 国产精品丝袜白浆摸在线| 欧美日韩一区二区三| 亚洲国产日韩欧美综合久久| 亚洲看片一区| 一本色道久久综合亚洲精品高清| 亚洲精品久久| 一本到12不卡视频在线dvd| 欧美一区网站| 久久女同精品一区二区| 国产精品一区二区你懂得| 女主播福利一区| 国产精品日本精品| 久久大综合网| 亚洲一区二区三区精品视频| 狠狠色综合一区二区| 国产日产精品一区二区三区四区的观看方式| 欧美在线观看日本一区| 91久久精品日日躁夜夜躁国产| 夜夜嗨av一区二区三区网站四季av| 性感少妇一区| 亚洲人成在线免费观看| 一本色道婷婷久久欧美| 欧美激情一区二区三区高清视频| 国产性做久久久久久| 国产精品裸体一区二区三区| 欧美一区二区三区播放老司机| 久久久久久久一区| 国产精品久久久久久久久免费桃花| 亚洲激情国产| 国产精品扒开腿爽爽爽视频| 国产亚洲美州欧州综合国| 日韩视频在线一区| 欧美激情视频一区二区三区免费| 一区二区视频免费在线观看| 久久女同互慰一区二区三区| 久久国产精品一区二区三区| 欧美视频一区二区在线观看| 欧美破处大片在线视频| 一区二区三区视频在线看| 国产精品永久在线| 欧美电影电视剧在线观看| 久热精品视频在线免费观看| 国产日韩av在线播放| 亚洲高清电影| 午夜精品美女自拍福到在线| 国产精品一区亚洲| 另类国产ts人妖高潮视频| 国产欧美日本| 亚洲一区网站| 亚洲自拍偷拍麻豆| 亚洲欧美日韩国产一区二区三区| 亚洲国产精品一区二区第一页| 性做久久久久久免费观看欧美| 国产精品国内视频| 久久综合伊人77777| 欧美电影免费观看网站| 国产麻豆综合| 尤物在线观看一区| 日韩视频免费观看高清完整版| 国产精品久久久久免费a∨| 国产亚洲女人久久久久毛片| 久久国产精品99久久久久久老狼| 亚洲一区二区在线观看视频| 亚洲成在人线av| 久久久.com| 亚洲国产精品久久| 狂野欧美激情性xxxx欧美| 欧美电影免费观看高清完整版| 欧美日韩在线免费视频| 欧美日韩一区二区在线播放| 欧美在线视频一区二区三区| 在线看日韩欧美| 欧美成人激情视频免费观看| 9久re热视频在线精品| 久久国产精品高清| 亚洲欧洲精品一区二区三区| 亚洲激情二区| 一区二区三区黄色| 娇妻被交换粗又大又硬视频欧美| 日韩午夜免费| 亚洲欧美久久| 免费不卡中文字幕视频| 黄色日韩网站| 香蕉成人伊视频在线观看| 夜夜嗨av一区二区三区| 亚洲午夜精品久久| 欧美久久久久久久久| 久久精品国产77777蜜臀| 欧美成人蜜桃| 国模 一区 二区 三区| 欧美一级二区| 国产夜色精品一区二区av| 日韩亚洲一区二区| 日韩午夜剧场| 欧美日韩一区精品| 欧美激情第4页| 亚洲一区综合| 国产精品porn| 午夜精品久久久久影视| 久久午夜色播影院免费高清| 国内精品久久久久影院优| 老司机免费视频一区二区| 欧美日韩视频不卡| 国产精品va| 久久国产直播| 欧美人体xx| 日韩视频一区二区三区| 亚洲欧美日韩成人| 国产精品成人一区二区三区吃奶| 一区二区三区无毛| 欧美国产视频一区二区| 这里只有精品视频| 国产精品在线看| 午夜在线观看免费一区| 在线观看欧美日韩国产| 午夜精品久久久久久久久久久| 黑人一区二区| 亚洲国产精品一区二区久| 欧美激情1区2区3区| 欧美日韩国内自拍| 国产区在线观看成人精品|