最近学FPGA似乎突然开窍了。。。。。。拿下了NIOS II,学会了avalon MM总线IP核的开发,遂决定用FPGA放个badapple玩玩。
一开始想用12864液晶放,但经过试验发现12864液晶刷图太快的话拖影严重简直没法看,手上又没有彩屏啥的,就当我准备写VGA驱动直接带电脑显示屏放的时候。。。。。。。。我看到了角落里扔着的一个巨大的12864LED显示屏(以前给别人装LED显示屏剩下的材料拼起来的),于是一个邪恶的想法诞生了。。。
好了,不废话了,说说整体结构,我使用NIOS II软核作为主控,FPGA外挂8MB的SDRAM,然后我在NIOS II的avalon MM总线上写了两个外设,一个是SD卡驱动模块,实现了硬件SPI收发,可设置高速低速两种模式,方便驱动SD卡,配合移植的znFAT实现文件读写;另一个是LED驱动模块,里面有一个1KB的双口RAM,正好用来储存一帧的图像,RAM的写入口直接通过avalon MM映射到NIOS II的内存中,通过指针即可访问。IP核内部还有LED扫描电路,把图像数据按照LED屏的时序发送出去。这两个IP核每个大概300多行的verilog HDL代码
工作流程:上电先读取SD卡中取模好的BIN文件,把所有的图像数据(大概6MB多点)扔到SDRAM里(直接读取SD卡显示的话速度不太够,反正内存大,任性~),这个过程大概耗时十几秒左右,接下来就是开定时器,在定时器中断里刷屏,按每秒30帧的速度显示出来。
上几张图~
FPGA顶层文件结构:
NIOS II:
大年三十从奶奶家放完炮回来发起最后的冲刺。。。。。。2个小时以后放出了badapple~
FPGA核心板和SD卡模块
这一堆线是连到LED显示屏的
FPGA
就是这个LED显示屏。。。。。比12864的小液晶霸气多了~
背面
背面满满都是74HC595 74HC138 74HC245 74HC04还有小场管。。。。。。又想起了当年疯狂玩74的时候
原来的控制卡。。。。现在就是个摆设
电源。。。。5V40A的,这货功耗贼大。。。。。。
OK,上视频。。。。。
绿色版~
XXXXXXXXXXXXXXXXXX/v_show/id_XXXXXXXXXXXXXXXXml红色版~
[flash=480,400,0]XXXXXXXXXXXXXXXXXXXXXXX/XXXXXXXXXp/sid/XODk2NDcxNDA4/v.swf" target="_blank" style="font-size:20px;">点击此处查看视频XXXXXXXXXXXXXXXXXX/v_show/id_XXXXXXXXXXXXXXXXml
200字以内,仅用于支线交流,主线讨论请采用回复功能。