8551|24

86

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

89美元Xilinx Spartan-6 LX9 开发板--基于FPGA的LCD远程更新 [复制链接]

基于FPGA的LCD远程更新

0 前言

926收到S6_LX9_Microboard试用板,心情激动了好久,之后将Speedway的六个tutorial都试了一遍,按照pdf的内容提示,整个Lab过程很顺利,于是想着用S6_LX9_Microboard做些什么?几经周折,在OpenHW网站上看到一个可能能实现的项目《基于FPGALCD显示的远程更新》,于是有了下文。

总体而言,设计分为以下几步:

①对LCD12864液晶屏硬件控制调试

②使用MicroBlazeLCD12864进行调试

③网口调试,LwIP的使用

④联合LwIPMicroBlazeLCD12864进行测试

⑤总结

1 LCD液晶调试

硬件环境:S6_LX9_MicroboardLCD2864CA12864K)、数据线、LCD1602ROHS

软件环境:ISE13.1,使用VHDL语言进行开发,Quartus7.2

测试代码:Spartan3ELCD lab测试代码

花费时间:1天半

测试对象:12864液晶显示屏、1602液晶显示屏

12864液晶测试结果如图:

 

1602液晶显示结果

1602lcd的接口的3号管脚上测试输出为高电平,于是接了一个电阻到地上,就能正常显示了,在背板连接接口上,使用了和12864一样的接口模块

FPGA一端信号接线,较为整齐和可扩展

测试过程:在整个测试过程中,出现许多因粗心或觉得简单而导致出错的问题。

IMAG0149.jpg (294.22 KB, 下载次数: 1)

IMAG0149.jpg

IMAG0150.jpg (335.92 KB, 下载次数: 1)

IMAG0150.jpg
此帖出自FPGA/CPLD论坛

最新回复

不错 ...... 来支持一下 呵呵.....  详情 回复 发表于 2011-10-23 23:59
点赞 关注
 

回复
举报

86

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

第一个问题:管脚分配问题,需要注意S6_LX9_MicroboardPmod引脚在J4J5插座上只有8个引脚可以分配输入输出,如若不注意,则会出现LCD侧焊接线重焊的问题。解决方法是使用万用表的蜂鸣功能测试两端是否接通,从而分配管脚。

 

[ 本帖最后由 jomatch 于 2011-10-11 10:03 编辑 ]
此帖出自FPGA/CPLD论坛
 
 

回复

86

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

 列出对应表1

LCD管脚

FPGA管脚

LCD管脚

FPGA管脚

RS

F15

DB1

C17

RW

F14

DB2

D17

E

F16

DB3

C18

PSB

K13

DB4

D18

RST

F17

DB5

H12

[ 本帖最后由 jomatch 于 2011-10-11 10:05 编辑 ]
此帖出自FPGA/CPLD论坛
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(中级)

4
 

NC

E16

DB6

K12

DB0

G14

DB7

G13

第二个问题:程序编写问题,由于输入是时钟信号,输出为接至LCD的控制信号,由于时钟频率过高,导致示波器显示信号时总出问题,觉得程序可能有错,其实没问题。只需要对时钟进行分频即可。

    IF RISING_EDGE(clock) THEN

         IF clk_div='1' THEN

分频时钟clk_div的使用要与全局时钟clock同步,否则编译出错。

     WHEN wr_y_addr_1=>     

          next_state<=wr_y_addr_2;                             

          data<=("100" & cnt(8 DOWNTO 4));

上述代码为Y坐标地址块,data的输出范围为0X80H~0X9FH,之后的设定X坐标块

     WHEN wr_x_addr_1=>      --设定图形显示区X轴地址

          next_state<=wr_x_addr_2; 

          en<='1';                         

          data<=("1000" & cnt(9) & "000");--上半屏经0x80;下半屏0X88

在设定X坐标后,立刻设定rs为‘1’,则开始写数据。这的cnt为什么要设定为10位数据?原因是每次送入8位数据,需要送入1024次,即1024X8=128X64。由此在ROM的设定上,也要设计为1024深度,位宽为8位的ROM表。

对代码进行仿真,看看时序是否正确,结果如图,在仿真中,使用modelsimIsim软件均不出结果,只能用Quartus软件进行仿真,看看时序是否正常。

上图仿真结果可以看出,在819.201us时出现rs高电平,表明此时可以写数据了。

 

 

[ 本帖最后由 jomatch 于 2011-10-11 10:06 编辑 ]
此帖出自FPGA/CPLD论坛
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(中级)

5
 

总体时序设计是:30H、功能设定;06H、进入设定点;0CH、开显示关光标;36H、扩充指令;80H、液晶屏第一个地址,之后开始写数据。

第三个问题:设备连接正常之后,LCD显示为满屏点阵,解决方案是在VOUTVO之间接个电位器,或者电阻,用VOUT驱动VO提高显示分辨率。

第四个问题:总算在LCD上出现一部分点阵了,可是显示仍不完整,怀疑输入的点阵数据有问题,其实正常,在不断的刷新液晶屏(3.3V5V切换)之后,显示正常,这就要求VHDL语言设计时,提供一个不断刷新的方式,也可以将设计之初分频的值改小一点,使得显示器能够快速显示结果。

参考内容:speedwaylab tutorialspeedway_lab.rar speedway_lab.rar (5.91 MB, 下载次数: 42)

代码:LCD显示12864及1602代码.rar LCD显示12864及1602代码.rar (1.27 MB, 下载次数: 56)

文献:bbs.eeworld.com.cn/viewthread.php?tid=299192

 

[ 本帖最后由 jomatch 于 2011-10-11 10:10 编辑 ]
此帖出自FPGA/CPLD论坛
 
 
 

回复

6066

帖子

90

TA的资源

裸片初长成(初级)

6
 
很有速度, 期待更多内容与大家分享!
此帖出自FPGA/CPLD论坛
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(中级)

7
 

回复 6楼 maylove 的帖子

谢谢坛子的支持,下次等周末了,呵呵
此帖出自FPGA/CPLD论坛
 
 
 

回复

7231

帖子

195

TA的资源

五彩晶圆(高级)

8
 
不错不错 支持下
此帖出自FPGA/CPLD论坛
 
 
 

回复

1万

帖子

16

TA的资源

版主

9
 

楼主很给力

:carnation:
此帖出自FPGA/CPLD论坛
个人签名http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
 
 
 

回复

56

帖子

0

TA的资源

一粒金砂(中级)

10
 
楼主第一次做就这么好   很佩服啊
此帖出自FPGA/CPLD论坛
 
 
 

回复

168

帖子

0

TA的资源

一粒金砂(高级)

11
 
坛子给的板子
此帖出自FPGA/CPLD论坛
个人签名逆水行舟,不进则退。
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(中级)

12
 
写写microblaze的学习过程
此帖出自FPGA/CPLD论坛
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(中级)

13
 





[ 本帖最后由 jomatch 于 2011-10-14 21:52 编辑 ]

1.JPG (29.94 KB, 下载次数: 1)

1.JPG
此帖出自FPGA/CPLD论坛
 
 
 

回复

6892

帖子

0

TA的资源

五彩晶圆(高级)

14
 

顶顶顶顶,支持支持!

此帖出自FPGA/CPLD论坛
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(中级)

15
 

回复 14楼 eeleader 的帖子

谢谢版主的支持,有时间大家一起学习
此帖出自FPGA/CPLD论坛
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(中级)

16
 
快要到试用结束的日子了,今天争取将microblaze控制LCD显示部分展示出来
此帖出自FPGA/CPLD论坛
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(中级)

17
 

[ 本帖最后由 jomatch 于 2011-10-22 14:41 编辑 ]
此帖出自FPGA/CPLD论坛
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(中级)

18
 











[local]12[/local]



















[ 本帖最后由 jomatch 于 2011-10-22 14:55 编辑 ]
此帖出自FPGA/CPLD论坛
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(中级)

19
 
设计软件程序,这里调用了网友的一部分程序,设计了自己的main函数:
int main (void)
{

         Xuint32 status;

          // Clear the screen
          xil_printf("%c[2J",27);
          xil_printf("16x2 LCD Driver by Virtex-5 Resource\r\n");
          xil_printf("http://www.fpgadeveloper.com\r\n");


          // Initialize the Timer
          status = XTmrCtr_Initialize(&DelayTimer,XPAR_AXI_TIMER_0_DEVICE_ID);
          if (status != XST_SUCCESS){
            xil_printf("Timer failed to initialize\r\n");
            return XST_FAILURE;
          }
          XTmrCtr_SetOptions(&DelayTimer, 1, XTC_DOWN_COUNT_OPTION);

          // Initialize the GPIO driver for the LCD
          status = XGpio_Initialize(&GpioOutput,XPAR_LCD_GPIO_0_DEVICE_ID);
          if (status != XST_SUCCESS){
            xil_printf("GPIO failed to initialize\r\n");
            return XST_FAILURE;
          }
                while (1) {
                        DIP_Read = XGpio_ReadReg(XPAR_DIP_SWITCHES_BASEADDR, 0);
                        XGpio_WriteReg(XPAR_LEDS_4BITS_BASEADDR, 0, DIP_Read);
          // Set the direction for all signals to be outputs
          XGpio_SetDataDirection(&GpioOutput, 1, 0x00);
          XromLCDInit();
          XromWriteCmd(0x00000000,1);
          XromWriteData(0x00000054);

                }

}
此帖出自FPGA/CPLD论坛
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(中级)

20
 
这里main函数的核心为while之后部分,
在这里使用了SWITCHES及LEDS两个设备,用于测试程序是否下载进bit系统里,从而判断lcd程序是否在运行。而LCD的程序则是,先进行初始化XromLCDInit,之后写一个地址信号,说明此时可以写数据到LCD上了,之后就可以写数据了。
此帖出自FPGA/CPLD论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表