w717342899 发表于 2014-3-8 23:03:27

Verilog之5110液晶屏驱动(新手发帖,大神勿拍)

本帖最后由 w717342899 于 2014-3-8 23:20 编辑

希望能帮助像我一样在开始的时候找不到方式的初学者。

NOKIA 5110是一款性价比比较高的液晶,价格相对于1602或者12864低很多,但是刷新速率却毫不含糊,能够以4MHZ的速率进行数据的刷新,而且串行通信,连线简单,连电源和地线一起共7根线即可搞定。

DC----------数据(1)/命令(0)               DIN-------------------串行数据输入
CLK---------串行输入时钟                      CE--------------------芯片使能
RST---------复位引脚


在编程过程中,同样采取建模的方法,主要有两个模块,一是spi_write模块一个是lcd_control模块,两者连线关系如图:


Lcd_contrl负责提供数据,以及串行数据传输开始的信号,spi_write则将传输过来的数据进行输出(以串行的方式),值得注意的是,数据位10位,其中最高的两位位CE,DC引脚,第八位位需要输出的数据或者命令。
输出数据的格式spi_out = {spi_data,spi_data,lcd_clk,spi_temp}; //CE,DC,CLK,DIN
主要就是利用Verilog进行编写仿顺序的操作。利用MODELSIM进行一些简单的仿真就能够找到程序存在的一些问题。在基于51单片机的时候我们习惯利用led作为标志信号,通过小灯来估计程序的运行过程, 在FPGA这我也同样利用了led,在仿真后很明显看到其波形,并根据led去推测程序的执行过程。在实际操作过程中起到了很重要的作用。

看过5110的资料不难写出驱动的程序来。

在编写的过程中遇到的问题:
1.        写完程序后出现警告,大体意思就是说输出和输入的CLK,RST没有关系,经检查若提示输出与时钟信号无关或者某个量一个是VCC或者GND可能是哪里有逻辑错误,一些程序从未执行。   还好会一点仿真,仿真也很好写,直接模拟时钟和复位信号就行了,波形图里就能看到程序的执行效果了。我在写完第一遍程序后没有对仿顺序控制变量i进行赋初值,所以程序一直未执行。


修改过后程序仿真如图:


2.        驱动电路写好后想要屏幕可以显示字符了,但是都是一样的字符,想要显示自己指定的图片该怎么办呢,经过查阅资料得知可以利用Quartus配置ROM:

ROM与程序的结合很简单,给地址读数据就行了,但是怎么配置里面的数据呢?我们知道在51编程的时候可以建个数组,可以在Verilog里数组是不存在的。在设置ROM的时候有个加载文件的选项:

我们需要一个mif格式的数据文件,mif文件的生成网上有好多方法,选择一个即可。

3.        之前对于利用verilog写循环代码真的是一头雾水,现在明白了,利用if else可以桥面的实现循环功能。核心代码:
if(spi_done)
If((y == 3'd5) & (x == 7’d83))          
begin rspi_start <= 1'b0; y <= 3'd0; x <= 7'd0; end //初始化          
else if(x == 7'd83)begin rspi_start <= 1'b0; y <= y + 1'b1;x <= 7'd0;end
else begin rspi_start <= 1'b0; x <= x + 1'b1; end
       elsebegin spi_data_temp <= {2'b01,rom_data} ; rspi_start <= 1'b1; end
//若此处安c语言的思想,则直接写if(y == 3’d6)或者if(y == 3’d5)则会出现屏幕数据滚动的现象,因为这是并行执行的,这就是verilog 与C语言的区别!!!(个人理解)

附:

RTL viewer



guer 发表于 2014-3-9 00:09:44

楼主厉害,能否把代码发上来共享下

zlpvch 发表于 2014-3-9 00:35:14

不错不错

w717342899 发表于 2014-3-9 09:27:36

guer 发表于 2014-3-9 00:09
楼主厉害,能否把代码发上来共享下

你留个邮箱,我回头整理整理发给你

御风 发表于 2014-3-9 21:46:51

顶楼主,楼主整理好了也发我一份学习学习吧,多谢哦!
邮箱:zylw516565@163.com

华仔 发表于 2014-3-10 10:08:01

楼主厉害

华仔 发表于 2014-3-10 10:08:18

楼主厉害

zlxd1990 发表于 2014-3-10 22:34:23

厉害啊,开源吧
页: [1]
查看完整版本: Verilog之5110液晶屏驱动(新手发帖,大神勿拍)