【经验分享】FRDM_KL46板上SLCD操作讲解及资料
本帖最后由 FSL_TICS_Robin 于 2014-7-18 14:19 编辑【经验分享】FRDM_KL46板上SLCD操作讲解及资料
一SLCD简介
FRDM_KL46开发板上使用的SLCD的型号是Luminex LCD-S401M16KR,该SLCD共具有12个引脚,引脚图如图1所示,其中具有4个共用引脚(com),所以芯片的驱动模式是1/4duty模式,该LCD共有4个七段码.每个com引脚可以控制8个LCD的段,以com0为例,控制的八个段如图2所示,每个引脚控制的段的对应情况可以直接从SLCD的参数表中查看,如图3所示。
图1
图2
图3
SLCD中段的点亮就通过给COM和相应的引脚之间加上交流电,并且两个引脚之间的电压差达到V3就可以点亮相应的段码。
FRDM_KL46板子上SLCD引脚和KL46的SLCD控制引脚的对应情况如下:
Pin 1 (COM 0) = LCD 40 / PTD0
Pin 2 (COM 1) = LCD 52 / PTE4
Pin 3 (COM 2) = LCD 19 / PTB23
Pin 4 (COM 3) = LCD 18 / PTB22
Pin 5 (1D/1E/1G/1F) = LCD 37 / PTC17
Pin 6 (DP1/1C/1B/1A) = LCD 17 / PTB21
Pin 7 (2D/2E/2G/2F) = LCD 7 / PTB7
Pin 8 (DP2/2C/2B/2A) = LCD 8 / PTB8
Pin 9 (3D/3E/3G/3F) = LCD 53 / PTE5
Pin 10 (DP3/3C/3B/3A) = LCD 38 / PTC18
Pin 11 (4D/4E/4G/4F) = LCD 10 / PTB10
Pin 12 (COL/4C/4B/4A) = LCD 11 / PTB11
各引脚和SLCD中的段码对应情况如下:
图4
大家看图4可能会不是很理解,这里稍作讲解,以1A段为例,该段对应的是COM3和pin6,而pin6对应的是LCD17,如果将com口分配后编号,则COM3对应的是四位中的最高位,则为8,COM2为4,com1为2,com0为1.则A1段就是17_8.依次类推,可以得到其他段的标示。
二,代码功能讲解
为了便于测试与讲解,将KL46的PE代码进行改编,只显示DP1为“1”,其余段码不显示。则需要点亮1B,1C段。即图4中的17_4,17_2两端,需要在COM1,PIN6以及COM2,PIN6之间加载压差为V3的交流电压。当然交流电压是芯片内部驱动给出,实际的控制只需写相关的寄存器控制这几个引脚输出就行。
通过在第一节中的讲解可以知道KL46芯片与SLCD的引脚对应情况,下面就配置COM引脚(blackplane)以及正面段电极引脚(frontplane pin)
图5
不管是backplane引脚还是frontplane引脚都需要首先使能引脚,通过寄存器LCD_PENn实现,而backplane引脚还需要置位对应的寄存器LCD_BPENn。
点亮段的时候,只需要控制相应的LCD_WFyTOx,比如这里显示的是1B,1C,则需要控制对应的LCD17,即LCD_WF19TO16中的WF17为0b00000110=0x06,即pin6对应的COM1,COM2。
其余配置详情请参考附件代码。
三,测试结果
很简单的在Dig1显示了1,如图6所示。
图6
通过示波器测试显示的波形。
(1)测试点亮字段部分波形
通道1: SLCD pin1,即(COM0) LCD40
通道2:SLCD pin2,即(COM1 LCD52
通道3:SLCD pin3,即(COM2) LCD19
通道4:SLCD pin6,即(DP1/1C/1B/1A)LCD17
图7
两个框中,pin6和com1以及com2之间的压差都达到了V3等级,所以可以点亮1C,1B。而pin6和com0之间的压差在整个的周期中,都没有达到V3等级,所以DP1不会被点亮。
(2)测试非点亮字段部分波形
通道1: SLCD pin1,即(COM0) LCD40
通道2:SLCD pin2,即(COM1 LCD52
通道3:SLCD pin3,即(COM2) LCD19
通道4:SLCD pin5,即(1D/1E/1G/1F) LCD37
图8
可以看到pin5的电平始终都没有达到最高,所以它和任何com脚之间的压差都不会达到V3等级,所以1D/1E/1G/1F字段都不会被点亮。
附件
附件给出测试代码以及SLCD的相关手册,希望对大家有所帮助。
**** Hidden Message *****
PS:本帖可从飞思卡尔版块置顶帖:飞思卡尔Kinetis资料大本营的飞思卡尔论坛支持小组【经验分享】帖汇总链接进入。 不足之处,欢迎指正,同时也欢迎大家分享自己的经验! 还有板凳座啊,好好学习一下。 有没有k40lcd的详解文章啊 xlxbangel 发表于 2014-5-14 16:48
有没有k40lcd的详解文章啊
K40的看K60的啊。
你说的是SLCD吗?
另外FSL_TICS_ZP发过一些相关的文章你可以看看:
代码讲解:
http://www.amobbs.com/thread-5569803-1-1.html
经验分享:
http://www.amobbs.com/thread-5569800-1-1.html
xlxbangel 发表于 2014-5-14 16:48
有没有k40lcd的详解文章啊
你也可以看看我一楼附件中的uTasker_SLCD.pdf
也有些讲K40 SLCD的。
你先看看上面的文章,如果觉得不够,我可以再发一篇类似KL46的SLCD经验分享,其实都是差不多的。 FSL_TICS_ZJJ 发表于 2014-5-14 17:12
你也可以看看我一楼附件中的uTasker_SLCD.pdf
也有些讲K40 SLCD的。
你先看看上面的文章,如果觉得不够 ...
好的先去看看 看看先谢了 早几个月出来的话我就不那么纠结了,还好,我也搞懂了{:lol:} wangpengcheng 发表于 2014-5-14 22:02
早几个月出来的话我就不那么纠结了,还好,我也搞懂了
呵呵,也就刚看的时候会凌乱点,后面看懂也比较简单了。 顶楼主啦..希望楼主多发精品好帖啦..... kydl2345 发表于 2014-5-15 09:25
顶楼主啦..希望楼主多发精品好帖啦.....
嗯啊,谢谢支持啊。
我们的经验分享都放在这个总贴里:http://www.amobbs.com/thread-5578500-1-1.html
我们每个星期都会发一些经验贴的。 xlxbangel 发表于 2014-5-14 20:02
好的先去看看
如果有不懂的地方,可以直接发帖问啊,我会帮你解决的。 这个开发板不错,我想要一个{:victory:} rootxie 发表于 2014-5-15 10:37
这个开发板不错,我想要一个
FRDM_KL46,可以自己去买哦。
这个板子暂时不送。 FSL_TICS_ZJJ 发表于 2014-5-15 10:42
FRDM_KL46,可以自己去买哦。
这个板子暂时不送。
呵呵,我的意思是能送我一个最好。{:lol:}
不过,目前来看,对我来说有一个能够使用的库最重要,申请了几片KL26,准备做一个WAV播放器 就卡在这儿了
设置寄存器是一个浪费时间又不长经验的活,工作没办法,闲时还是算了。 rootxie 发表于 2014-5-15 10:45
呵呵,我的意思是能送我一个最好。
不过,目前来看,对我来说有一个能够使用的库最重要,申请了 ...
我们的KDS库,也会陆续推出来的。
目前的出来的KDS库只是支持最新的产品,后面都会补上的。 不错。。。。。。。。 slcd,美很, 这个看看还是不错的,手上刚好有这个板子 rqbh121567 发表于 2014-5-20 12:46
这个看看还是不错的,手上刚好有这个板子
那可以玩玩了,如果遇到问题,欢迎发帖提问。 {:lol:}这程序,早两个月出来就好了,不过我也摸索出来了 cmheia 发表于 2014-5-20 15:16
这程序,早两个月出来就好了,不过我也摸索出来了
呵呵,我也需要学习的过程啊。
反正也不难懂,如果有问题,欢迎交流啊! FSL_TICS_ZJJ 发表于 2014-5-20 15:36
呵呵,我也需要学习的过程啊。
反正也不难懂,如果有问题,欢迎交流啊! ...
{:lol:}
段式液晶有个令人讨厌的地方,ABCDEFGH不是顺序排列的
比如FRDM_KL46的就是DEGF~*CBA,我那次(第一次)搞的液晶是有DEFA~*CGB和AFED~BGC*两种。
连接MCU的时候又是可以随便连MCU的液晶管脚。。。
我觉得这里有个代码复用的问题,如果换了块液晶,或者改了液晶的连线,那怎样减少代码改动量。
我头一次接触段式液晶的时候同事给了个KL36的代码,
里面写的代码都把管脚写死了,还到处switch嵌套,一个显示数字的函数就超超超长。
我搞的时候顺手弄了个3维数组、几个枚举和几个宏,像下面这样的。
貌似FRDM_KL46的例程也专门考虑了代码复用的问题,里面也是有类似处理。不过那时刚搞定这个有忙别的去了,没仔细研究那里面的思想{:shutup:}
/*********************************************************************************************************
rearrange segment code
case1 :
defa,*cgb : for nixie tube 1~4
case2 :
bgc*,afed : for nixie tube 5~10
*********************************************************************************************************/
#define LCD_DGT_SEG_EQL_CASE1(D) BIN_2_CHAR(CH_D(D), CH_E(D), CH_F(D), CH_A(D))
#define LCD_DGT_SEG_AND_CASE1(D) BIN_2_CHAR(0, CH_C(D), CH_G(D), CH_B(D))
#define LCD_DGT_SEG_EQL_CASE2(D) BIN_2_CHAR(CH_A(D), CH_F(D), CH_E(D), CH_D(D))
#define LCD_DGT_SEG_AND_CASE2(D) BIN_2_CHAR(CH_B(D), CH_G(D), CH_C(D), 0 )
----------
上图:
cmheia 发表于 2014-5-20 15:58
段式液晶有个令人讨厌的地方,ABCDEFGH不是顺序排列的
比如FRDM_KL46的就是DEGF~*CBA,我那次( ...
现在的代码编写的还是挺不错的,
如果硬件没有按照顺序来,可以直接调软件,很方便,你可以看看它的FRDM-S401,和S401文件。 收藏了,感谢分享! FSL_TICS_ZJJ 发表于 2014-5-20 17:12
现在的代码编写的还是挺不错的,
如果硬件没有按照顺序来,可以直接调软件,很方便,你可以看看它的FRDM- ...
对了,上面提到“KDS库只是支持最新的产品”,不知道MKE02_40算不算最新的呢?听说20M的目前不推了 cmheia 发表于 2014-5-20 17:35
对了,上面提到“KDS库只是支持最新的产品”,不知道MKE02_40算不算最新的呢?听说20M的目前不推了 ...
当然支持啊,CW10.6都支持。
是20M基本不推了,因为40M就是在20M基础上扩频的。 谢谢楼主,学习学习! 太好了,最近评估的就是这个板子,不过现在Keil环境下开发更方便点!学习了。。。。谢谢 !
谢谢楼主,学习学习! 本帖最后由 xinyinxing 于 2014-8-12 14:06 编辑
liao-ljj 发表于 2014-5-25 10:37
太好了,最近评估的就是这个板子,不过现在Keil环境下开发更方便点!学习了。。。。谢谢 ! ...
keil也可以开发kinetis的,如果没有例程,你可以使用PE导keil工程。 liao-ljj 发表于 2014-5-25 10:37
太好了,最近评估的就是这个板子,不过现在Keil环境下开发更方便点!学习了。。。。谢谢 ! ...
如果在开发的过程中遇到任务问题,都欢迎发帖交流。 高大上的板子,看看隐藏的内容是什么 很多厂家的片子都支持这种slcd,必带神器啊 mark 一下!! 这块小板子不错哈,那个小屏感觉蛮实用的 学习了,, 收藏。KL46,SLCD 谢谢分享支持一下 学习了,感谢分享,可以在兑换的kl46上试试 谢谢楼主,学习学习!
页:
[1]