第10课-FexBus之SRAM、LCD的应用.docxVIP

  • 8
  • 0
  • 约5.82千字
  • 约 6页
  • 2018-09-22 发布于江苏
  • 举报
第10课-FexBus之SRAM、LCD的应用

[跟我学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); //128K 09 fb_init.FB_ReadAddrHold = 0; 10 fb_init.FB_WriteAddrHold = 0; 11 LPLD_FlexBus

文档评论(0)

1亿VIP精品文档

相关文档