打印
[应用相关]

请问万利的EKSTM32F上面的液晶是怎么驱动的?

[复制链接]
3362|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ATmega16|  楼主 | 2007-12-19 19:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问万利的EKSTM32F上面的液晶是怎么驱动的?

有没有数据手册?
沙发
香水城| | 2007-12-19 21:03 | 只看该作者

这个液晶的驱动使用了一项ST的专利技术,直接用I/O口驱动

直接使用I/O口驱动液晶是一个很久的课题了,已经有不少这方面的专利;ST的专利可以保证显示的均匀性并且对比度可调,还有非常重要的是,保证液晶片不会因长时间的直流电平缩短寿命。

使用特权

评论回复
板凳
yocheng| | 2007-12-20 00:31 | 只看该作者

香水城,這個專利技術可以說祥細點嗎?

說說原理這些嘛

使用特权

评论回复
地板
hotpower| | 2007-12-20 00:35 | 只看该作者

也想知道~~~不过现在香主迷糊了---要飞武汉了~~~

使用特权

评论回复
5
sszxxm| | 2007-12-20 00:59 | 只看该作者

这也要专利?

直接读懂LCD的驱动方式就可以了,我以前用51做过,至于说直流驱动我估计是瞎掰,实际也是交流驱动,一正一反地来回变化,总的加在LCD上的直流分量=0而已。
而且以51的速度都足以应付刷新,就是译码麻烦点。2.5ms的刷新比较合适,我试验过,但是找不到原来的程序了。

使用特权

评论回复
6
greatbin| | 2007-12-20 14:33 | 只看该作者

to香水城

这块板子驱动的LCD是1/2偏压的,请问能不能做到1/3偏压?

使用特权

评论回复
7
wlq_9| | 2007-12-20 14:43 | 只看该作者

是用电阻分压

来回扫描的方式吧?很多人在用.只要调整电阻的阻值,1/2bias 1/3bias都能做的出来,占空比也是可以随意调.只是占用IO口比较多,还得用个定时器来精确定时,程序还得定时去扫描.
其原理就是利用IO口的正负电平+电阻网络来模拟出LCD需要的正反电压,由于正负半周的时间绝对相同电压也相同,因此,LCD不会因为直流电平而损坏.只是这样远不如用HT1621之类来得方便,想用哪种模式想要多少bias多少duty只要设置寄存器即可.优点是价格便宜.

使用特权

评论回复
8
dvssy| | 2007-12-20 15:04 | 只看该作者

上传程序和电路,大家自看看吧,LCD是通过TIM2做刷新的。

外行看热闹,内行看门道。呵,反正我还没怎么看懂。


void TIM2_IRQHandler(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;
  static u16 Seg_Old;
  
  if (TIM_GetITStatus(TIM2, TIM_IT_CC1) != RESET)
  {
    TIM_ClearITPendingBit(TIM2, TIM_IT_CC1);
    
    if (var == 0)        /* OCMP_1 */
    {
      var++;
      
      /* Segments(lcdcr) to be turned on are loaded with the value 1 otherwise 0 */
      Seg_Old = frame[lcdcr];
      GPIO_Write(GPIOE,Seg_Old);
      
      /* com(lcdcr) is set to low, other coms set to Vdd/2 */
      /* Configure all coms as Floating Input */
      GPIO_InitStructure.GPIO_Pin = COMPORT;
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
      GPIO_Init(GPIOC, &GPIO_InitStructure);

      /* com(lcdr) is set to low  PP */
      GPIO_ResetBits(GPIOC,com[lcdcr]);
      GPIO_InitStructure.GPIO_Pin = com[lcdcr];
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
      GPIO_Init(GPIOC, &GPIO_InitStructure);
    }
    else  /* OCMP_2 */
    {
      var = 0;
      
      /* Segments(lcdcr) values are inverted */
      Seg_Old = (u16)(~Seg_Old);
      GPIO_Write(GPIOE,Seg_Old);
      
      /* com(lcdcr) is set to high, other coms set to Vdd/2 */
      /* Configure all coms as Floating Input */
      GPIO_InitStructure.GPIO_Pin = COMPORT;
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
      GPIO_Init(GPIOC, &GPIO_InitStructure);

      /* com(lcdr) is set to high  PP */
      GPIO_SetBits(GPIOC,com[lcdcr]);
      GPIO_InitStructure.GPIO_Pin = com[lcdcr];
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
      GPIO_Init(GPIOC, &GPIO_InitStructure);
      
      lcdcr++;
      if (lcdcr>3) lcdcr =0;
    }
  }
  else if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET)
  {
    TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
    
    /* All seg and coms off to decrease VRMS */
    GPIO_Write(GPIOE,0);   /* Clear segments on portE */
    GPIO_ResetBits(GPIOC,COMPORT);    /* Clear segments on portC */
    
    /* Configure all coms as PP_output */
    GPIO_InitStructure.GPIO_Pin = COMPORT;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOC, &GPIO_InitStructure);
  }  
}

使用特权

评论回复
9
dvssy| | 2007-12-20 15:08 | 只看该作者

SEG0..SEG15使用的是PE,COM1..COM4是PC8,9,10,11

使用特权

评论回复
10
香水城| | 2007-12-20 17:16 | 只看该作者

7楼说得很内行,8楼又贴出了程序和电路,我没什么好说了

这个我也不是很懂,是我们印度的工程师申请的专利,记得ST的网站上有个应用笔记,就是针对这个问题的,有时间去找一下。

使用特权

评论回复
11
grant_jx| | 2007-12-20 20:12 | 只看该作者

唉,就是那个用321驱动LCD的应用笔记

俺看过,就是耗IO太厉害了,额外还需要一个定时器。


ST7 Software LCD driver Application Note
http://www.st.com/stonline/books/pdf/docs/6292.pdf

ST7 Software LCD driver

http://www.st.com/stonline/products/support/micro/files/an1048.zip

使用特权

评论回复
12
greatbin| | 2007-12-21 15:38 | 只看该作者

如果是1/3bias就太复杂了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

109

主题

229

帖子

0

粉丝