本帖最后由 FSL_TICS_A 于 2014-10-21 15:36 编辑
【经验分享】Kinetis K系列2.x版本可驱动5V SLCD 一, 经验描述 大家都知道kinetis带有SLCD的模块是可以直接驱动3V的SLCD屏,实际上,我们的kinetis K系列的2.x版本还可以驱动5V的SLCD屏,本次经验分享就讲解如何通过配置去驱动5V的SLCD。 通过reference manual的SLCD章节,可以看到实际上有多种办法可以实现5V SLCD驱动的配置,比如,通过VLL2接3.3V的VDD,或者VLL3接5V的VDD, 或者VLL1接内部的VIREG等办法。实际使用中,VDD在数据手册中有一定电压范围要求,所以本经验采用第3中办法,即使用VLL1接内部的1.67V的VIREG然后通过pump,使得VLL2,VLL3分别得到相应的倍压。
图1 使用VLL1接内部的1.67V的VIREG,就需要关闭图1中的powersw1,以及powersw2, 然后打开RVEN, CPSEL使用的是LCD charge pump的模式。通过设置使得VIREG=1.67V,则VLL1=VIREG=1.67V, VLL2=2*VIREG=3.33V, VLL3=3*VIREG=5V. 综上,则需要VSUPPLY[1:0]=11,HREFSEL=1,CPSEL=1,RVEN=1. 二, 硬件配置 硬件外围需要在VLL1,VLL2,VLL3三个引脚分别接一个0.1uf的电容到地,在VCAP1以及VCAP2之间也需要接一个0.1uf的电容。电容接法如下图:
图2 三, 软件配置 根据经验描述可以知道,需要配置VSUPPLY[1:0]=11,HREFSEL=1,CPSEL=1,RVEN=1. 则,代码如下: LCD_GCR|=LCD_GCR_VSUPPLY(3); LCD_GCR|=LCD_GCR_HREFSEL_MASK; LCD_GCR|=LCD_GCR_CPSEL_MASK; LCD_GCR|=LCD_GCR_RVEN_MASK; 上面是针对5V SLCD的配置。除了5V SLCD的配置,还需要配置SLCD的基本情况,比如时钟,引脚,DUTY,使能SLCD等,本文的基础配置沿用对GD-6363P,但是注意GD-6363P,这里我们只是做简单测试,看芯片的引脚输出波形,由于没有5V的屏,这里并不实际点亮屏,只是给出测试波形,查看是否能够输出点亮5V的波形,即压差为5V。 基本配置和以前的SLCD中文文档讲解兼容。 MCG_C1|= 0x02; //enable LCD clocks SIM_SCGC3 = 0x40000000; //enable LCD pins 0, 1, 2, 3, 12, 13 14 15 20 21 22 LCD_PENL= 0x0070F00F; //enable LCD backplanes 0, 1, 2, 3 LCD_BPENL = 0x0000000F; //assign back planes - 0 is BP1, 1 is BP2 etc LCD_WF3TO0 = 0x08040201; LCD_WF15TO12 = 0x00000000; LCD_WF23TO20 = 0x00000000;
LCD_GCR|=LCD_GCR_DUTY(3); LCD_GCR|=LCD_GCR_SOURCE_MASK; //select alt clock IRC LCD_GCR|=LCD_GCR_LCLK(4); LCD_GCR |= LCD_GCR_LCDEN_MASK; // Enable LCD LCD_WF15TO12 |= 0x08000000;//tlcd_fsl_on 四, 测试结果 测试平台使用的是TWR-K40D100,芯片是K40DX256VMD100. 功能就是,在PTB3作为com口的时候,使得该引脚和PTB19之间产生一个5V的压降,从而能够驱动5V的SLCD。 图3给出VLLx的波形,可以看到满足VLL1=VIREG=1.67V, VLL2=2*VIREG=3.33V, VLL3=3*VIREG=5V.
图 3 图4给出COM PTB3以及段引脚PTB19的波形,可以看到他们的压差达到了VLL3,即5V,所以可以驱动5V的SLCD.
图4 五, 其他注意事项 通过测试发现,在1.x的芯片上测试5V的SLCD的波形有问题,所以如果需要使用5V的SLCD,建议采用2.X的芯片。 另外还有一点需要注意,在CW10.6的PE中,SegLCD_LDD模块中选择5V驱动模式会提示产品不支持,这个是PE的一个bug,所以建议想使用5V SLCD驱动的,请使用寄存器配置的方式。可以按照上文的配置。 六, 附件 |