参考文献
有关文件及软件,请浏览:
//www.wsdof.com/雷电竞官网登录products/greenpak
下载我们的免费GreenPAK设计软件[1],打开。gp文件[2],并使用GreenPAK开发工具[3]在几分钟内将设计冻结到您自己的定制IC中。
雷竞技电竞平台Dialog Semiconductor提供了一个完整的应用笔记[4]库,包括设计示例以及Dialog IC内的功能和模块的说明。
- GreenPAK设计软件,软件下载和用户指南,Dialog Semiconductor雷竞技电竞平台
- AN-1128 GreenPAK LCD Driver free Microcontroller Pins.gp,绿派克设计文件,Dialog半导体雷竞技电竞平台
- GreenPAK开发工具, GreenPAK开发工具网页,Dialog半导体雷竞技电竞平台
- GreenPAK应用笔记,绿派克应用笔记网页,对话半导体雷竞技电竞平台
- SLG46620对话框数据表,半导体雷竞技电竞平台
介绍
在这个应用程序中,GreenPAK SLG46620V[5]被放置在Arduino Mega 2560的串行接口和LCD 2004A显示器之间。这种方法现在释放了8个微控制器引脚用于设计中的其他用途。此外,该电路可以适应其他LCD接口,只需通过单片机对LCD初始化进行微小的更改。
硬件原理图
顶层框图示意图如图1所示。
Arduino mega 2560 TX1引脚连接到SLG46620V引脚10。RW接地,使用LCD2004A只写模式。LCD亮度可通过电位器调节。SLG46620V与LCD 2004A的连接方式如下表所示
注意GreenPAK SLG46620V在LCD显示(2004A)和微控制器(Arduino mega 2560)之前需要开机。否则,LCD 2004A显示可能无法正常工作。
老不 |
SLG46620V销 |
液晶2004年销 |
1 |
7 |
RS |
2 |
8 |
E |
3. |
12 |
D0 |
4 |
13 |
D1 |
5 |
14 |
D2 |
6 |
15 |
D3 |
7 |
16 |
D4 |
8 |
17 |
D5 |
9 |
18 |
D6 |
10 |
19 |
D7 |
GreenPAK设计配置
在GreenPAK SLG46620V pin10接收到写在Arduino TX1引脚上的串行数据,将数据发送到SPI块MOSI输入。
到达SPI块的串行数据(总共10位,1开始位,8数据位和1停止位)被转换为并行位。设置SPI块的SCLK,使其匹配9600bps波特率。串行数据传输到GreenPAK时需要启动SCLK。当没有接收到数据时,SPI上有一个连续的高信号。
检测数据包的开始
无论何时从Arduino发送数据,位于包开始的起始位是低位,最先到达。
通过检测PIN 10处传入数据的下降边缘来识别到达的新包。
DLY0块被配置为检测输入的下降沿。当数据包到达时,P DLY0块设置它的输出高一个周期,然后设置DFF 0的输出高。
DFF 0的输出在924微秒(大约10个周期9600bps)后复位。
串行数据结束信号低启用SPI块nCSB输入。进入数据的第9个周期后,信号变高,SPI块被禁用。
在SPI块中加载串行数据
锁存器(DFF 0)高输出也用于在SPI块的MOSI输入处加载串行数据。为了在SCLK中心附近存储串行数据,需要为SCLK输入9600bps半周期的延迟。9600bps的半周期对应的时间大约是52微秒。这个时间延迟是通过CNT6/DLY6将DFF 0的输出传递来实现的。
时钟使能信号确保计数器CNT2/DLY2不会开始计数,直到开始位到达。CNT2/DLY2输出然后时钟信号为SPI块(SCLK)。它帮助加载串行数据到SPI块,一旦10位周期完成,SPI块将串行数据转换为SPI并行输出块端口。
输出引脚数据
串行数据显示在SPI并行输出块引脚。它然后出现在输出引脚后通过闩锁。
由于有两个字节的数据从Arduino到达,我们需要解析数据,将其发送到不同的GreenPAK pin。为此,使用了一个mod 2同步计数器,它的输出为串行数据的每个周期(起始位)进行切换。
SPI并行输出块的并行引脚上的第一个串行数据包出现在pin7 (RS)和pin8 (E)上,第二个串行数据包出现在PIN12, 13…19 (D0, D1…D8)上。从下一个传入周期的数据将更新这些引脚后,每两个周期的串行数据。
液晶模块LCD2004A
LCD2004A有16个引脚。这是一个4行20个字符的基本显示。它采用HD44780并行接口芯片组。
GreenPAK SLG46620V的10个接口如表2所示。LCD的其他连接如下所示
老不 |
液晶2004年销 |
SLG46620V销 |
1 |
VSS |
地面 |
2 |
VDD |
5伏 |
3. |
RW |
地面 |
4 |
K |
地面 |
5 |
一个 |
5伏 |
6 |
签证官/ v字形 |
锅中间销 |
结论
应用说明显示了如何使用单片机的单引脚通过GreenPAK SLG46620V与LCD2004A接口。LCD2004A使用的接口是8位的。其他LCD类型也可以进行类似配置。
这种设计的另一个重要方面是,液晶显示器可以与任何具有串行接口的其他设备(如PC)进行接口。设备必须能够发送数据字节来配置LCD模块,以便对LCD进行初始化,并在LCD显示上写入/清除数据。PC上的应用程序如:MATLAB, Hyper-terminal, Visual studio, LabVIEW, QT等可以用于此目的。
液晶命令信使
为了从Arduino发送多个命令,使用命令信使库。Arduino串行接口窗口发送命令的数据格式为
0,列号,行号;
包开头的数字“0”是行和列选择的标识符。这里的行号和列号不能分别超过3和19。
1、性格;
选择行和列后,字符被写入指定的位置。包开头的数字“1”是写字符的标识符。字符写完后,光标自动移动到下一个位置。
这里需要注意的是,用户写入的字符首先被转换成ASCII码,然后通过GreenPAK SLG46620V发送到LCD。
2、明确;
为了清除LCD,数据包发送将以2(标识符)开始。文本“清除”后的标识符,然后清除LCD。
可以发送多个命令,命令之间用“;”隔开。用户按照上面列出的格式将数据写入Arduino IDE的串行监视器窗口。基于这些数据,通过Arduino mega 2560的Serial1 TX1引脚发送命令到GreenPAK SLG46620V。
有关命令信使的更多细节,请访问的链接.
示例应用程序
数据写入、光标设置和LCD清除的示例应用显示在附随应用说明的视频中。
步骤1:
0, 2, 0;1、*;1、*;1、*;1、*;1、w;1, e;1, l;1、选c;1、不填; 1 , M ; 1 , E ; 1 , * ; 1 , * ; 1 , * ; 1 , * ;
在Arduino IDE的串行窗口中编写上述代码行。它将打印
欢迎* * * * * * * *
在LCD第一行的中心。
步骤2:
0, 5, 2;1、s;1、我;1, l;1, e;1, g;1、不填;1,。;1、选c; 1 , o ; 1 , m ;
在Arduino IDE的串行窗口中编写上述代码行。它将打印:
silego.com
在LCD的第三行中心。
步骤3:
2、清晰;
在Arduino IDE的串行窗口中写这一行。它将清除LCD。
Arduino Mega 2560编程
通过编程Arduino控制器向SLG46620V发送两个字节。然后,GreenPAK芯片将解析数据并使用它进行初始化、光标设置、LCD写入和LCD清除。
1包 |
起始位 |
位1 |
位2 |
位3 |
位4 |
位5 |
位6 |
位7 |
位8 |
停止位 |
0 |
RS |
E |
x |
x |
x |
x |
x |
x |
1 |
|
2包 |
起始位 |
位1 |
位2 |
位3 |
位4 |
位5 |
位6 |
位7 |
位8 |
停止位 |
0 |
D0 |
D1 |
D2 |
D3 |
D4 |
D5 |
D6 |
D7 |
1 |
这两个数据包不断重复。Arduino和SLG46620V的波特率都被设置为9600bps。
Arduino代码中用到的三个主要功能是
液晶初始化
LCD2004A通过保持RS和E位低初始化,然后发送数据字节为D0, D1..D8。然后设置E引脚的高和低来设置数据。
从Arduino发送的命令顺序如下。这些是用于LCD 2004A的8位初始化。
- RS低,串行1。write (0x30), E High, E low
- Serial1。write (0x30), E High, E low
- Serial1。write (0x30), E High, E low
- Serial1。write (0x38), E High, E low
- Serial1。write (0x08), E High, E low
- Serial1。write (0x01), E High, E low
- Serial1。write (0x06), E High, E low
- Serial1。写入(0x0C), E高,E低
有关LCD2004A初始化(8位模式)的更多细节,请访问的链接.
液晶显示器清晰
为了清除LCD显示,在数据位上写0x01。E引脚然后设置高和低,以清除LCD。
液晶写
要在液晶显示器上书写特定字符,请先将RS引脚调高。然后在数据位上发送相应的ASCII码(Arduino IDE负责处理ASCII码,您只需要编写字符)。然后设置E引脚的高和低来写入LCD。
光标设置
对于游标设置,一些特定的数字(如下表所示)被发送到数据位。然后设置E引脚的高和低来设置光标。
行0 |
第1行 |
第二行 |
第三行 |
|
坳0 |
128 |
192 |
148 |
212 |
坳1 |
129 |
193 |
149 |
213 |
Col 2 |
130 |
194 |
150 |
214 |
坳3 |
131 |
195 |
151 |
215 |
坳4 |
132 |
196 |
152 |
216 |
坳5 |
133 |
197 |
153 |
217 |
坳6 |
134 |
198 |
154 |
218 |
坳7 |
135 |
199 |
155 |
219 |
坳8 |
136 |
200 |
156 |
220 |
卡扎菲9 |
137 |
201 |
157 |
221 |
坳10 |
138 |
202 |
158 |
222 |
坳11 |
139 |
203 |
159 |
223 |
坳12 |
140 |
204 |
160 |
224 |
坳13 |
141 |
205 |
161 |
225 |
坳14 |
142 |
206 |
162 |
226 |
坳15 |
143 |
207 |
163 |
227 |
坳16 |
144 |
208 |
164 |
228 |
坳17 |
145 |
209 |
165 |
229 |
坳18 |
146 |
210 |
166 |
230 |
卡扎菲19 |
147 |
211 |
167 |
231 |
LCD2004A的其他功能,如自动滚动,光标闪烁等,可以从其数据表类似地实现。