期待成品,另外外壳打算3D打印?
大约算是游戏机,主要采用的是Cortex-M的单片机
目前硬件大概是比Arduboy这类的强很多了(回头可以把那边的代码搞过来试试)
之前的帖子 ←很早之前发过一次,是旧版的。
首先是上面提到的帖子里介绍过的东西:
正面PCB图
背面PCB图
这个大概算是开源游戏机一类的硬件,目前NPGv2采用的是STM32F405,板载ST-LINK和各种存储器。
提供USB OTG HS和USB Device FS两个接口,相对于上个版本,这个版本除了接插件都使用了贴片。
并且板可以直接进行JLC的SMT,板载TP4056,只需要外接带保护板的电池。
屏幕依然是SPI接口,SPI Flash使用的是另外一个接口。
当然设计风格也改了,新的风格看起来更美观。
然后是还在设计中的下一个大版本的游戏机(是大版本)
全称是NyaGame Vita(上文的叫NyaGame Portable)
正面图
背面图
这个版本采用的是5寸IPS屏,带电容触摸,使用24位8080接口(用RGB888带同步信号的话芯片脚不够)
目前NGV的PCB设计工作还未完成,因此还未进行后期设计。
这块板采用STM32F429ZGT6,图形音频和部分外设由AL3S10LG144承担,二者使用FMC通信。
板载三片SPI Flash,和一片IS42S16160,后者挂到FMC上。
这个板肯定是不好做电池供电的,因为屏幕会很耗电。
电源使用了3片AMS1117-3.3和1片AMS1117-1.2,背面图可见那壮观的电源电路(包括那个巨大的开关)
这个板就没法找JLC做SMT了,因为AL3S10LG144没法焊。
板对外给出USB Device FS接口,以及SWD和JTAG。
除了8个按十字排列的按键以外,还有8个独立的功能按键。
这个板是双层板,一开始自动布,通了。但是不敢用。因为FMC和SDRAM都是第一次用,就手动布了。
主要是这个板还得应付大创,因此it works就差不多了。
等板出来之后试验一下这个布线能不能用,因为看市面上的开发板上带的SDRAM都没做等长,而且这里还能把操作频率降低。
FPGA侧还有许多工作要做,毕竟是想把图形部分做到那边去,这也是大创的主要工作。
最后以一个表情结尾
[修改于 6年5个月前 - 2018/08/23 10:02:51]
引用ry7740kptv发表于1楼的内容期待成品,另外外壳打算3D打印?
目前还没考虑外壳,外壳成本还是比较高
不试试安路新的FPGA ELF2么,据说很不错的样子
ELF是CPLD啊,资源肯定不够
另外这个AL3S10是内嵌了SDRAM的,32位的宽度,基本上可以单片跑个软核CPU了
引用ry7740kptv发表于5楼的内容ELF2好像是带M3核的FPGA~
目前来看还是带SDRAM的要好点(如果外置的SDRAM翻车的话)
之前也考虑过要不要上GD32F450,也怕翻车,就先上STM32F429
429有个好,能找到现成的uboot和uclinux,到时候可以折腾下
引用ry7740kptv发表于7楼的内容429贵点,另外必须要跑Linux?
预留这个可能性,毕竟硬件做出来后就没法改了
嗯。。。目前板已经从JLC回来了,但是板还没到手,得让别人去取。
接下来的焊接工作就要让别人接手了。。。
元器件到了的时候看着屏幕的接插件,突然有种不祥的预感。。。
打开PCB工程测量后发现接插件买错了,跟板上的封装不一致(被屏幕的卖家坑了)
目前要么是走本地电子市场去找(估计这种51pin的类FPC接插件不太好找),要么是淘宝再等几天
其他封装估计得拿到板的实物才能检查,当然唯一要检查的可能就是FPGA。
这个国产的芯片是用的比较小的QFP封装,名曰EQFP-144,18x18mm的尺寸,这芯片的封装是从他家官方示例板上抄过来的,也确认过datasheet
剩下的就等另外一位的进度了,虽然是去找本地的相关公司去焊接,但是做的钢网能不能用还是个问题。。。
哎如果JLC早点支持FPGA焊接就没这么多破事了。。。
这会把模拟器的bug修完了,部分功能开发会先在模拟器上进行。
图形部分使用SDL2,板上的物理按键也由SDL2处理。
串口输入输出则对应系统的基本输入输出流,这里的输入是利用conio.h做的非阻塞输入。
考虑到板上实际为单线程,因此模拟器也未设置多线程。
源码地址:XXXXXXXXXXXXXXXXXX/NSDN/NGV/tree/master/cortex/emulator
需要使用mingw编译,如要在linux上编译可能需要安装ncurses和SDL
预编译文件:
编译目标为Windows x64
源码结构:
Mode LastWriteTime Length Name Info
---- ------------- ------ ---- ----
d----- 2018.8.22 16:27 Assets 各种资源,对应板上的SD卡。其中logo.bmp为GUI使用
d----- 2018.8.21 23:04 Drivers 驱动程序库,包含基本驱动库NGV,脚本引擎NSASM以及SDL库
-a---- 2018.8.22 13:06 19 .gitignore git ignore
-a---- 2018.8.23 9:59 1787 app.cpp 用户程序文件
-a---- 2018.8.22 13:36 763 main.cpp 主程序文件,入口点
-a---- 2018.8.22 23:46 417 make.bat 编译脚本
-a---- 2018.8.23 9:53 6465 sdl.cpp SDL函数封装
-a---- 2018.8.22 11:36 295 sdl.h SDL函数封装头
-a---- 2018.8.21 18:49 597 util.cpp 其他函数
-a---- 2018.8.21 18:49 641 util.h 其他函数头
整个项目包含c99和c++11的代码,统一按c++11编译。
SDL图形窗口中,WSAD和光标对应板上左右摇杆按键,ESC退出模拟器,Backspace复位
Console窗口对应串口输入输出,Ctrl-C退出模拟器
欢迎star,fork,repo
楼主,请问你要怎么实现游戏的运行呢?我本科毕设也想做这个,uclinux的移植教程找到了,不知道怎么实现在uclinux系统下运行游戏
引用zhengdalu123发表于13楼的内容楼主,请问你要怎么实现游戏的运行呢?我本科毕设也想做这个,uclinux的移植教程找到了,不知道怎么...
就是说,游戏是自己在linux系统下编写的还是通过别的方法把已经编译的,储存在tf卡中的游戏应用程序在linux系统中打开运行?
200字以内,仅用于支线交流,主线讨论请采用回复功能。