请问NIOS如何模拟FSMC驱动TFT显示屏
现在驱动TFT的方式是IO模拟,但是速度很慢。800*480的屏每秒大概只能刷3帧想用驱动SRAM的方式驱动TFT,将地址线作为RS,发现地址线不能一直保持,请问各位有没有什么好的办法
module FSMC_LCD
(
input csi_clk,
input csi_reset_n,
//
input avs_address,
input avs_write_n,
input avs_writedata,
input avs_read_n,
output avs_readdata,
//
inout coe_LCD_DQ, // LCD Data bus 16 Bits
output coe_LCD_ADDR, // LCD Address bus 1 Bits
output coe_LCD_CE_N, // LCD Chip chipselect
output coe_LCD_OE_N, // LCD Output chipselect
output coe_LCD_WE_N // LCD Write chipselect
);
assign coe_LCD_DQ = coe_LCD_WE_N ? 'hz : avs_writedata;
assign avs_readdata = coe_LCD_DQ;
assign coe_LCD_ADDR = avs_address;
assign coe_LCD_WE_N = avs_write_n;
assign coe_LCD_OE_N = avs_read_n;
assign coe_LCD_CE_N = avs_read_n & avs_write_n; 用Verilog写一个咯 用SRAM的ip核配置一下就可以了,把屏当内存操作,速度非常快。要注意频率不能配置的过高,否则LCD吃不消。 直接用AVALON总线操作(像我之前写的那样)时序会乱掉,现在还没找到合适的SRAM驱动程序。
后来用状态机按照LCD时序自己写了个,终于把屏驱动起来了,大概每秒7帧,还是有点慢额。
理论上屏幕最快刷新率为13帧,刷新速度达不到估计是数据先从SDRAM中读取,之后经过CPU处理传送给LCD接口造成的延时。
现在正在想能不能用DMA实现 楼主这是当单片机玩了啊 nios 不是有 AVALON 转 3态总线的 ip吗 试试DMA来传输!怎么可能才这点点速度?800X480= 384000 PIXELS384000X2 = 768000 BYTES (16位色)! 如果NIOSII 运行在50MHz,5CLK 一个像素,也可以达到13帧啊。 使用Generic Tri-state controller 做一个异步接口的时序挂在总线上就OK
页:
[1]