AN 497: 利用 MAX II CPLD 实现 LCD 控制器

AN 497: 利用 MAX II CPLD 实现 LCD 控制器
利用 MAX II CPLD 实现
LCD 控制器
应用笔记 497
2007 年 12 月, 1.0 版
引言
本文档详细介绍怎样在 Altera® MAX® II CPLD 中实现 LCD 控制器。实
例显示屏采用了 Optrex 16 x 2 点阵 LCD 模块,例如流行的 SC1602D
等。控制器接收来自微处理器或者微控制器的显示信号,将其转换成
LCD 模块能够理解的命令。MAX II 是业界唯一具有用户闪存 (UFM) 的器
件,控制器利用它在上电时显示相应的消息。这样,不需要采用外部存储
器。同样的,控制器利用 CPLD 的内部 UFM 振荡器来满足时钟需求,从
而避免了采用外部时钟信号。这些独特的功能使 MAX II CPLD 成为实现
这类控制器最好的目标器件。
LCD
液晶显示屏 (LCD) 是薄型平面显示设备,由排列在光源或者反射器之前
一定数量的彩色或者单色象素构成。这类显示屏已经成为大部分电子设备
不可缺少的组成部分。 LCD 之所以能够流行,是因为它具有以下特性:
■
■
■
LCD 为实际应用提供了实用接口,支持调试功能,外观看起来更专
业。
LCD 使用的电源数量较少;非常适合电池供电的设备。
和其他显示屏相比, LCD 体积较小,空间利用率高。
大部分 LCD 模块都有通用接口、板上控制器和驱动器。因此,采用 LCD
很容易增强实际应用的视觉效果。使用 LCD 显示屏的部分设备有腕表、
计算器、笔记本计算机、 PDA、蜂窝电话、家电和玩具等。
LCD 控制器
您可以轻松地将本控制器设计集成到实际应用中,提供合适的显示单元。
它产生需要的时序信号,满足了 LCD 的时序要求,同时卸载了微处理器
和控制器繁重的 LCD 处理任务,从而提高了处理器和控制器执行其他操
作的效率。
图 1 所示为 LCD 控制器结构图。 LCD 控制器的三个主要模块包括有限
状态机 (FSM)、用户闪存 (UFM) 和时钟分频器模块。 LCD 模块的接口信
号是 E、 RS、 RW 和 DB0-DB7。本设计通过控制器成功地实现了处理器
和 LCD 模块的接口。关于信号的详细信息,请参考表 1。
Altera 公司
AN-497-1.0
1
应用笔记 497:利用 MAX II CPLD 实现 LCD 控制器
图 1. LCD 控制器
ACK
WE
RST
DATA0-DATA7
E
RS
RW
有限
状态机
DB0-DB7
8
OPTREX SC1602D
16 X 2字符
LCD模块
8
addr
do
9
8
nbusy
dv
clk
时钟分频器
用户闪存
osc
初始化 LCD 模块和有限状态机
FSM 有 8 个不同的状态。它用于初始化 LCD,初始化完成后显示消息,对
LCD 进行读写操作。图 2 所示为 LCD 模块的初始化步骤。
Altera 公司
2
应用笔记 497:利用 MAX II CPLD 实现 LCD 控制器
图 2. LCD 模块初始化流程图
上电
Vcc = 4.5 V后,等待15 ms以上。
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0
0
0
1
1 X
X X
X
等待4.1 ms以上
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0
0
0
1
1 X
X X
X
等待100 us以上
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0
0
0
1
1 X
X X
X
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0
0
0
1
1 N
F X
X
功能设置命令,设置8位接口。
在此之前,不应检查LCD的忙标志。
在这段时间中,
显示屏不应有数据传送。
功能设置命令,设置8位接口。
在此之前,不应检查LCD的忙标志。
在这段时间中,
显示屏不应有数据传送。
功能设置命令,设置8位接口。
在此之前,不应检查LCD的忙标志。
功能设置命令,设置8位接口。
在此之前,不应检查LCD的忙标志。
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0
0
0
0
0 1
0 0
0
关断LCD显示屏的命令
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0
0
0
0
0 0
0 0
0
关断LCD显示屏的命令
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0
0
0
0
0 0
1 I/D
S
设置输入模式的命令。
提供选项来递增/递减光标,移位显示。
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0
0
0
0
0 1
1 C
B
初始化完成
可使用显示屏
Altera 公司
在这段时间中,
显示屏不应有数据传送。
打开显示屏的命令。
提供选项来打开光标,并使其闪烁。
注释:对于首先关断显示屏的命令,
执行完这些命令后,应检查忙标志。
3
应用笔记 497:利用 MAX II CPLD 实现 LCD 控制器
为简化初始化过程,每次发送一条命令后,延时 15 ms( 而不是检查忙标
志的状态 )。然而,向 LCD 模块写入数据时,每一数据写操作之后,检
查忙标志的状态。这样,加速了写操作过程。
f
关于 LCD 模块初始化以及它所支持的各种命令的详细信息,请参考下面
链接提供的 Optrex LCD 手册:
http://www.apollodisplays.com/pdf/dmcman.pdf
用户闪存
MAX II CPLD中的UFM用于存储控制器打开后需要显示的ASCII字符值。
采用 UFM 宏功能对它进行例化。并口采用十六进制 (Intel 格式 ) 文件
(.hex)对UFM进行设置。关于使用Quartus® II软件来建立.hex文件的详细
信息,请参考下面的链接:
http://www.altera.com/support/software/nativelink/quartus2/glossa
ry/def_rif.html
f
关于使用 MegaWizard® 插件管理器来例化 UFM 的详细信息,请参考
MAX II 器件手册中使用 MAX II 器件的用户闪存 一章。
时钟分频器
时钟分频器模块降低了内部振荡器输出频率,从而满足了 LCD 模块的时
序要求以及控制器的性能要求。表 1 对图 1 中 LCD 控制器 (MAX II
CPLD) 结构图中的信号进行了说明。
表 1. LCD 控制器 (MAX II CPLD) 的信号说明
信号
DB0-DB7
Altera 公司
说明
8 位双向总线,承载 LCD 模块的数据和命令。
RW
区分读写操作的读写信号。
● RW = 0:写操作
● RW = 1:读操作
RS
寄存器选择信号。用于选择 LCD 模块的数据和命令
寄存器。
● RS = 0:命令寄存器
● RS = 1:数据寄存器
E
使能选通信号。该信号下降沿将双向总线上的数据
锁存到数据或者命令寄存器中,反之亦然。
4
应用笔记 497:利用 MAX II CPLD 实现 LCD 控制器
表 1. LCD 控制器 (MAX II CPLD) 的信号说明
信号
设计实现
Altera 公司
说明
DATA0-DATA7
处理器和控制器的 8 位总线,承载 LCD 模块上显
示的 ASCII 字符值。
RST
复位信号。该信号用于复位控制器,再次初始化
LCD 模块。
WE
写使能信号。该信号指示写周期的开始。应将它设
为低电平,使能对 LCD 模块的写操作。
ACK
应答信号。该信号指示数据已经成功地发送到 LCD
模块,准备接收后面的数据。在此信号变为低电平
之前发送的任何数据都被控制器忽略。
addr
9 位地址总线,用于选择 UFM 的某一存储位置。
nread
将该信号设置为 0,以读取地址总线所指向存储器
的内容。
do
数据输出信号。 8 位数据总线,保持地址总线所指
向 16 位存储器的高 8 位。
dv
数据有效信号。该信号指示 8 位数据总线上的数据
有效并且可读。
osc
UFM 模块内部振荡器输出。输出信号频率为
5.5 MHz。
clk
时钟分频器模块输出。把振荡器输出信号的频率降
低到 43 kHz 左右。
本设计可以采用 EPM240G 或者其他 MAX II CPLD 以及 Optrex
SC1602D 16 x 2 字符 LCD 模块来实现。可以使用本设计的源代码,为
MAX II CPLD 的通用 I/O (GPIO) 分配数据总线和控制线 ( 输入和输出 )。
使用内部用户闪存来存储上电时希望 LCD 模块显示的默认消息。利用
Quartus II 软件的存储器编辑器来建立存储器初始化文件,存储 LCD 模块
的默认消息。
5
应用笔记 497:利用 MAX II CPLD 实现 LCD 控制器
下面详细介绍了怎样在 MDN-B2 演示板上实现本设计。表 2 列出了本设
计实例的 EPM240G 引脚分配。
表 2. MDN-B2 演示板设计实现
EPM240G 引脚分配
1
信号
引脚
信号
引脚
DB[0]
引脚 53
DB[4]
引脚 1
DB[1]
引脚 98
DB[5]
引脚 96
DB[2]
引脚 52
DB[6]
引脚 92
DB[3]
引脚 97
DB[7]
引脚 95
data[0]
引脚 55
data[4]
引脚 61
data[1]
引脚 56
data[5]
引脚 66
data[2]
引脚 57
data[6]
引脚 67
data[3]
引脚 58
data[7]
引脚 68
E
引脚 99
rst
引脚 77
RS
引脚 100
ack
引脚 69
RW
引脚 54
we
引脚 81
编译前,在 Quartus II 软件的 device and pin 选项设置中,把未
使用的引脚分配为 input-tristated。
设计说明
按照以下步骤在 MDN-B2 演示板上演示本设计:
Altera 公司
1.
通过 JTAG 插头 JP5 和普通编程电缆 (ByteBlaster™II 或者 USBBlaster™),把设计下载到 MAX II CPLD 中。编程要求接通演示板电
源 ( 滑动开关 SW1)。编程完成后,关断电源。
2.
确定存储器文件 lcd_new.hex ( 包含在源代码文件中 ) 位于 Quartus II
软件的工程库中。
3.
利用所提供的连接电缆来连接 LCD 模块和电路板。连接电缆的 14 引
脚插座和 LCD 模块的 CN1( 红色标记对准演示板上的 CN1 引脚 1),
连接 20 引脚插座和演示板上的 JP8( 插头红色标记对准演示板的 JP8
引脚 1)。
6
应用笔记 497:利用 MAX II CPLD 实现 LCD 控制器
4.
使用Optrex SC1602D LCD模块(由Altera的NIOS® II开发套件2C35N
[Cyclone II 版 ] 提供 )。
5.
通过连接电缆的直流插座为 LCD 模块提供所需的 5 V 电源。直流插座
采用了普通极性 ( 中间引脚为正极 )。还可以使用 3xAA 或者 AAA
电池为 LCD 模块供电。
6.
首先连接 LCD 模块的 5 V 电源。然后连接步骤 4 中提到的互联电缆。
7.
通过滑动开关 SW1 打开 MDN-B2 演示板的电源。
8.
观察LCD模块上显示的默认消息。利用lcd_new.hex文件,在MAX II
CPLD的UFM中对该消息进行了预设置。控制器只在上电时读取该消
息。
9.
使用演示板上的复位按钮 SW6 复位 LCD 模块。请注意,复位后,
LCD 上的光标停在第一行的第一个字符上,并不断闪烁。
10. 出于练习的目的,请使用 SW5 开关 ( 演示板上的 8 路双列直插封装
(DIP) GPIO 输入开关 ) 来输入希望显示的任意 ASCII 数据。在 ON 位
置,开关设为逻辑 0,在 OFF 位置,设为逻辑 1。开关 #1 是 ASCII
数据字节的 LSB。
11. 按下演示板上的按钮 SW8,使能控制器,使其能够使用 SW5 开关设
置的新数据。 SW8 按钮被按下时,演示板使用新数据,速率大约为
4.25 kHz。按下 SW8 按钮后,立刻更新所有行上的字符。
1
源代码
本设计专门采用了 Optrex 的 SC1602D LCD 模块。这一 LCD 模块
的 LCD 第一行的最后一个字符和第二行的第一个字符地址不连
续。本设计进行了适当的调整,以适应这种工作方式。
这篇文档所介绍的设计采用了 Verilog 来实现,成功地运行在 MDN-B2
演示板上。下面的链接提供源代码、测试台文件以及完整的 Quartus II
工程:
www.altera.com/literature/an/an497_design_example.zip
结论
Altera 公司
MAX II CPLD 是实现 LCD 控制器非常好的选择。其低功耗、易于上电的
特性,以及内置用户闪存使其成为实现 LCD 控制器设计理想的可编程逻
辑器件解决方案。
7
应用笔记 497:利用 MAX II CPLD 实现 LCD 控制器
参考文档
本应用笔记参考了以下文档:
■
■
■
其他资源
文档版本历史
http://www.apollodisplays.com/pdf/dmcman.pdf
http://www.altera.com/support/software/nativelink/quartus2/glos
sary/def_rif.html
Using User Flash Memory in MAX II Devices chapter in the MAX II
Device Handbook.
下面列出了和本应用笔记相关的其他资源:
■
MAX II CPLD 主页:
http://www.altera.com/products/devices/cpld/max2/mx2index.jsp
■
MAX II 器件资料:
http://www.altera.-com/literature/lit-max2.jsp
■
MAX II 关断设计:
http://www.altera.com/support/examples/max/exm-powerdown.html
■
MAX II 应用笔记:
AN 428:MAX II CPLD 设计指南
AN 422:利用 MAX II CPLD 实现便携式系统的功耗管理
表 3 列出了本应用笔记的版本历史。
表 3. 文档版本历史
日期和文档版本
2007 年 12 月, 1.0 版
8
进行的改动
初次发布
对改动的总结
—
Altera 公司
应用笔记 497:利用 MAX II CPLD 实现 LCD 控制器
101 Innovation Drive
San Jose, CA 95134
www.altera.com
Technical Support:
www.altera.com/support
Literature Services:
[email protected]
Altera Corporation
版权 © 2007 Altera 公司。保留所有版权。 Altera、可编程解决方案公司、程式
化 Altera 标识、专用器件名称和所有其他专有商标或者服务标记,除非特别声
明,均为 Altera 公司在美国和其他国家的商标和服务标记。所有其他产品或者
服务名称的所有权属于其各自持有人。 Altera 产品受美国和其他国家多种专
利、未决应用、模板著作权和版权的保护。 Altera 保证当前规范下的半导体产
品性能与 Altera 标准质保一致,但是保留对产品和服务在没有事先通知时的升
级变更权利。除非与 Altera 公司的书面条款完全一致,否则 Altera 不承担由此
处所述信息、产品或者服务导致的责任。 Altera 建议客户在决定购买产品或者
服务,以及确信任何公开信息之前,阅读 Altera 最新版的器件规范说明。
9
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement