FPGA|CPLD|ASICwilliam hill官网
直播中

ITANGTANGI

3年用户 6经验值
私信 关注

【FPGA开发者项目连载】基于Gowin Ministar的Nano Viewer 小项目

测试视频

` 本帖最后由 ITANGTANGI 于 2021-5-17 17:28 编辑

1.前言        众所周知,FPGA是芯片行业中一颗璀璨的明珠,其经典查找表结构在今天仍然有着持久生命力,在各种应用领域中发挥着不可替代的作用。再加之如今新型的FPGA芯片中添加的包含DSP硬核,微处理器硬核以及模数转换器等一系列外围器件,使FPGA展现出了其更加灵活性的一面,发展前景不可估量。
        长期以来,FPGA行业的龙头老大一直是美国企业包括Xilinx,IntelAltera被收购),Lattice等巨头,他们凭借着先发研究的优势占据着市场95%以上的份额,但随着FPGA的重要程度越来越受到重视,国产FPGA芯片也在这个充满竞争中的战场中拼出了一条属于自己的道路。
        笔者是一个刚入门FPGA不久的在校学生,在这之前一直使用的是三大巨头的FPGA芯片完成一些数字逻辑设计的工作,这次有幸参加高云半导体发起的星核计划开发者创新赛,就借此机会使用由高云半导体提供的MiniStar小蜜蜂开发板完成一个Nano Viewer的小项目,借此为国产FPGA发展和将来的应用贡献自己的一份力量吧。
------------------------------------
2.项目简介

考虑到开发时间和开发经验等因素,本次使用MiniStatr开发板实现一个简单的Nano Viewer小项目,其主要目的是为了给当前的大多数已经闲置的VGA显示器提供一个废物利用的方案。将其作为一个显示环境温湿度,电子相册,以及游戏平台的一体化设备。
        由于作为电子相册需要有高速的存储器作为图像缓存,不同于其它的FPGA需要外挂SDRAM等方式,高云的FPGA器件内部集成了PSRAM部分可以直接使用,省去了大量硬件设计的时间和成本,在本次的项目开发中,高云的FPGA器件拥有得天独厚的先发优势,可以快速地完成项目开发。
------------------------------------
3.硬件设计

        Nano Viewer的主打优势便在于其的小巧便携性,MiniStar开发板以其迷你的尺寸再次体现了其优势。通过其板载的两个FPC外部扩展口,加上制作的外部Nano Viewer 扩展板,外部扩展板上包括有一个VGA驱动接口实现VGA显示器的驱动,DHT11温湿度传感器采集环境温湿度数据,蓝牙收发模块用于接受手机端APP发送的电子相册图像,电池充放电管理芯片和电池以及充电接口组成的电源威廉希尔官方网站 。其结构如图1所示。
硬件框图.png

图1 硬件框图


        使用威廉希尔官方网站 设计软件完成威廉希尔官方网站 设计后得到如图2所示的威廉希尔官方网站 板三维模型。

三维模型图.png
图2 威廉希尔官方网站 板三维模型图

        等待威廉希尔官方网站 板打样,到手后焊接并与MiniStar板子连接后完成得到最终的Nano Viewer硬件如图3所示。


硬件反面.jpg 硬件正面.jpg
图3 Nano Viewer硬件

        Nano Viewer的硬件设计图纸放在文末的附件中供大家参考。

------------------------------------
4.软件设计

本次的Nano Viewer项目软件设计包括FPGA端程序设计以及安卓APP开发。

4.1 FPGA端程序

        FPGA端的设计使用高云的云源软件完成,云源软件是国产EDA工具,拥有优秀的交互界面,云源软件开发界面如图4所示。

开发界面.png

图4 高云云源软件开发界面

        本次设计的Nano Viewer项目的FPGA内部结构如图5所示,包含有串口接收模块接收和处理来自蓝牙模块的图像数据和控制信号,两个PLL用于产生VGA时钟和PSRAM时钟,VGA驱动模块和VGA显示模块用于驱动VGA显示器显示,状态控制模块负责整个系统的调度,片内ROM模块存储状态图像和文字字库,PSRAM控制器模块内部例化PSRAM的IP核并完成数据写入与读取,DHT11驱动模块获取温湿度数据,游戏模块负责在游戏状态实现游戏任务(本来想移植nes红白机游戏6502 CPU的,但无奈芯片片内BRAM资源不足跑不起来,所以暂未实现,后续考虑实现一个俄罗斯方块或者贪吃蛇)。


FPGA程序结构图.png
图5 FPGA端程序结构图

      PSRAM读写采用云源软件内的PSRAM控制器IP,并按照数据手册进行读写时序仿真和设计,在接收到特定数量的像素点后启动突发写入,写入到PSRAM中,其仿真时序逻辑如图6所示。
写时许.jpg
       像素写入和读取整体仿真图如图7所示。
整体读写时序.jpg
       但是实际运行的时候PSRAM操作还是没成功,暂未找到原因,实在调不动了。
       整个FPGA端设计均使用Verilog语言和高云云源IP生成工具完成,并使用matlab软件将图像文件转换为高云片内存储器ROM的初始化文件,具体软件设计与代码见文末代码和工程文件。

4.2安卓端APP程序

        安卓端程序使用蓝牙模块原始测试APP改进而来,APP在连接到蓝牙模块之后可以通过发送不同数据控制Nano View,包括传输图像和游戏功能。其界面简介如图6所示。APP程序源码会放在文末。

安卓界面.png

图6 安卓界面

------------------------------------
5.项目测试
给Nano Viewer上电之后,加载程序,内部无显示图片,进入等待图片传输状态,同时会显示当前的温湿度,VGA显示器如图7所示。
图7 初始状态
打开手机APP,使用蓝牙调试工具将图片数据发送至FPGA,由FPGA将接收到的数据缓存到PSRAM中,接收图片过程的情况如图8所示。

IMG_20210514_210259.jpg

图9 图片传输状态

由于PSRAM读写逻辑到目前为止还没测试成功,故使用内部BRAM做缓存暂时保存了一幅图像用于显示,结果如图9所示。

IMG_20210514_210243.jpg

图9 图像显示状态

在初始状态或图像显示状态,可以选择进入游戏模式,游戏暂定为贪吃蛇,只做了界面没写控制逻辑所以还不能动。如图10所示。

IMG_20210514_210213.jpg



------------------------------------
6.总结
整个设计过程包括从硬件再到软件,一步步走下来让我收获了很多,也让我对国产FPGA器件有了一定的认识和理解,碰到的问题很多,解决掉的和没解决掉的都有一些,提供了许多宝贵的设计经验。对于国产FPGA来说可能还有很长的路要走,但是相信只要坚持下去就一定能获得属于自己的成功。

------------------------------------
7.附件

1.Nano Viewer扩展板原理图和PCB

gowin_vga_ble.zip (4.61 MB)
(下载次数: 8, 2021-5-11 10:59 上传)

2.Nano Viewer云源软件工程
nano_viewer.zip (1.67 MB)
(下载次数: 8, 2021-5-14 21:38 上传)



` IMG_20210514_210141.jpg

回帖(2)

糖栗子

2021-5-11 13:39:57
点赞支持,期待继续更新!!
举报

航天萪工

2021-5-12 17:54:37
期待更新!!!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分