第10课-FlexBus之SRAMLCD的应用.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第10课-FlexBus之SRAMLCD的应用

[跟我学OSKinetis]第10课-FlexBus之SRAM、LCD的应用 Posted on? HYPERLINK /?p=374 \o 下午 1:52 2013 年 12 月 9 日?by? HYPERLINK /?author=1 \o View all posts by lpldcn lpldcn FlexBus是一种多功能的外部总线接口,在Kinetis K60芯片上,你见过最多的引脚可能就是FB_xx标号的了,这个就是FlexBus模块的复用功能引脚。FlexBus能干什么,它能够驱动各种从机设备,例如:外部ROM、RAM、FLash内存、可编程逻辑器件或其他器件(LCD控制器)… 接下来的内容,我们将针对OSKinetis固件库中的FlexBus库函数做详细讲解,如果你要了解FlexBus的具体功能、寄存器编程,建议你百度一下FlexBus,有几篇文章写的是不错的,如果你英文够好,那么更墙裂推荐看一下官网的应用文档AN4393-《Using FlexBus Interface for Kinetis?Microcontrollers》-by: Carlos Musich and Alejandro Lozano.( HYPERLINK /files/microcontrollers/doc/app_note/AN4393.pdf?Parent_nodeId=Parent_pageType= \t _blank 在线浏览)该文档针对Kinetis的FlexBus接口做了详尽的描述,包括外部RAM、LCD的应用实例、寄存器编程甚至PCB布线。 FlexBus驱动LCD 不是什么LCD都能被FlexBus驱动,只有兼容8080或8600时序的LCD才可以被驱动,例如RUSH Kinetis开发板所用的LCD,其控制器型号是ILI9320,就可以直接被FlexBus驱动。本节将到的关于FlexBus驱动ILI9320的内容同样适用于其他类似型号的控制器。 FlexBus与LCD之间的连接 下图是从ILI9320的技术文档中截取的,其中红框圈出的部分就是LCD与K60的FlexBus总线引脚实际需要连接的部分。由于是LCD控制器的文档,因此该图并未标出单片机一边的具体引脚。System Interface可以看做是K60的FlexBus引脚,ILI9320一边是LCD上的引脚。其中nCS是LCD控制器的使能信号(片选),它由K60的FB_CS0引脚控制;nWR是写使能信号 ,它由FB_RW引脚控制;nRD是读使能信号,它由FB_OE引脚控制,DB[17:0]是数据\命令总线,他们负责传输数据或者命令,方向是双向的,由于RUSH Kinetis开发板的LCD是16位数据传输的,因此只用到了ILI9320的DB[15:0],他们分别由FlexBus 的FB_AD15~FB_AD0控制;最后还有一个RS信号,他是LCD控制器的命令\数据选择信号,由于FlexBus没有特殊的这样一个引脚,因此我们采用FB_AD16引脚进行控制,至于为什么这样做下面会讲到。 FlexBus的LCD驱动编程 在OSKinetis固件库中,既提供了FlexBus的底层库函数,又提供了LCD的驱动函数,其中LCD的驱动函数是基于FlexBux底层库函数封装的,如果你想用FlexBus库函数驱动其他设备,可以直接参考LCD驱动的写法。LCD的驱动函数在DEV文件夹下,名为DEV_LCD.h和DEV_LCD.c;FlexBus的库函数则在HW文件夹下。 下面具体看下LCD中关于FlexBus的初始化的代码是如何实现的,打开例程“LPLD_LCD”,打开lib\LPLD\DEV\DEV_LCD.c这个文件,可以看到函数LPLD_LCD_FLEXBUS_Init() 01 FB_InitTypeDef fb_init;02 fb_init.FB_Fbx = FB0;03 fb_init.FB_ChipSelAddress = LCD_CMD_ADDRESS;04 fb_init.FB_AutoAckEnable = TRUE;05 fb_init.FB_IsRightJustied = TRUE;06 fb_init.FB_WateStates = 0x02;07 fb_init.FB_PortSize = FB_SIZE_16BIT;08 fb_init.FB_AddressSpace = FB_SPACE_KB(128); //128K09 fb_init.FB_ReadAddrHold = 0;10 fb_init.FB_WriteAddrHold = 0;

文档评论(0)

cuotian + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档