微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 显示控制器SSD1906与AT91RM9200的接口技术

显示控制器SSD1906与AT91RM9200的接口技术

时间:09-22 来源:互联网 点击:

相连,具体的连接方式取决于MCU所支持的总线类型。SSD1906支持单时钟输入(CLKI),从而可以由MCU的总线时钟为其提供时钟信号。对于通用#1总线,SSD1906用于与MCU相连的引脚为:

  A0——接低电平;
  A[17:1]——系统地址总线位17~1;
  D[15:0]——系统数据总线输入;
  WE0——低8位数据的写使能信号输入;
  WE1——高8位数据的写使能信号输入;
  CS——片选输入;
  M/R——选择读写显示内存或内部寄存器。高为显示内存,低为内部寄存器;
  BS——接高电平;
  RD/WR——高8位数据的读命令输入;
  RD——低8位数据的读命令输入;
  WAIT——等待信号输出。可以通过配置,决定该信号为高电平有效或低电平有效;
  RESET——复位输入信号。

  此外,引脚CF[7:0]用于配置SSD1906。具体配置描述如表1所列。

表1 SSD1906的配置引脚

3.2 总线接口分析与实现

  AT91RM9200微控制器的总线接口属于通用#1型接口,因而可与SSD1906直接相连。其中,AT91RM9200的A[17:1]、D[15:0]、NWR0、NWR1、NCS2、NWAIT、NRST引脚,可以分别与SSD1906的A[17:1]、D[15:0]、、、、和引脚直接连接。而AT91RM9200的NRD引脚可以使能16位或者8位的读访问,因而可与SSD1906的RD/和引脚相连,作为高字节和低字节的读使能信号。对于SSD1906的M/信号,可以由AT91RM9200的A18信号进行控制。SSD1906与AT91RM9200的总线连接如图2所示。

  此外,由于SSD1906的CLKI的输入时钟频率最高为66MHz,而其总线时钟频率最高也为66MHz,因而SSD1906的总线时钟BCLK可以直接由CLKI提供,其频率比为1:1。另外,AT91RM9200的总线类型为通用#1型,选NWAIT信号为低有效,总线接口为小端模式,所以,可以确定SSD1906的配置引脚CF[7:0]为0x0Bh。


图2 SSD1906与AT91RM9200的总线连接

4 寄存器配置

  在寄存器配置方面,包括对MCU的初始化及对SSD1906的初始化和设置。对于AT91RM9200微控制器,首先,必须设置相应的PIO控制寄存器,将有复用的I/O线配置为所需要的功能。其次,考虑到SSD1906的CLKI时钟频率最高为66MHz,因此,需要对AT91RM9200的PMC_PCK0寄存器进行设置,保证PCK0的输出时钟频率不超过66MHz。下面分别介绍SSD1906的主要寄存器配置。

4.1 SSD1906的内部时钟设置

  SSD1906支持单时钟输入,即所有的时钟信号都可以由CLKI的输入时钟提供。对于SSD1906的总线时钟BCLK,可以通过配置CF[7:6]引脚,对CLKI得到需要的BCLK。这里将CF[7:6]配置为00,即BCLK=CLKI。

  内存时钟MCLK用于访问SSD1906内部的SRAM。SSD1906的设计充分考虑了省电控制,当显示控制器不工作时,时钟自动关闭。而另一方面,减小MCLK的频率,会增加MCU时钟延迟,从而降低屏幕刷新的性能。因此,为了在省电与性能之间达到最优的平衡,MCLK的频率配置必须满足两点:既要有足够高的内存访问频率,以提供较快的刷新率,又要保证MCU的延迟为一个可接受的值。通过配置寄存器REG[04h],由BCLK得到MCLK时钟。

  像素时钟PCLK用于控制LCD面板。PCLK的选择必须与LCD面板的最优帧速率相匹配。帧速率的计算公式为

其中:fPCLK为PCLK时钟频率,单位为Hz;
   HT =((REG[12h]bits 6-0)+1)×8 Ts,为水平总周期;
   VT=((REG[19h]bits 1-0,REG[18h]bits 7-0)+1)lines,为垂直总周期。

  像素时钟PCLK的选择具有很大的灵活性。首先,LCD面板的帧速率一般都有一个允许的范围。其次,像素时钟频率也可以指定为一个很高的值,然后,通过调整水平和垂直显示周期,将帧速率降低到一个最优值。像素时钟的时钟源可以为MCLK或BCLK,通过配置寄存器REG[05h],可以得到不同的PCLK。

4.2 虚拟显示模式的设置

  SSD1906支持虚拟显示模式,具体可以通过以下寄存器的设置实现。首先,设置主窗口显示起始地址寄存器REG[74h]、REG[75h]和REG[76h],指定显示内存中主窗口图像的起始地址。然后,设置主窗口线地址偏移寄存器REG[78h]和REG[79h],确定虚拟图像的水平像素数。当然,设定的水平像素数必须大于LCD面板的实际显示像素宽度,才可以实现虚拟显示,否则为普通显示模式。图3所示为主窗口与虚拟显示区域的关系。


图3 主窗口与虚拟显示区域的关系

4.3 浮动窗口的设置

  浮动窗口可位于虚拟显示区域内的任何位置,其定位可以通过浮动窗口控制寄存器REG[7Ch]到REG[91h]来进行设置。浮动窗口的色深和显示方向与主窗口相同。本方案中采用的是正常方向模式显示,即禁止显示旋转。图4为本方案中浮动窗口与主窗口的关系,以及定位寄存器的设置。


图4 浮动窗口的设置

4.4 硬件光标的设置

SSD1906支持在主窗口中显示两个硬件光标。这两个光标可以位于主窗口的任何位置,具体定位通过光标模式寄存器REG

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top