NGP/NGV(可编程单板游戏机)开发进度(更新模拟器)
drzzm322018/07/05电子技术 IP:陕西

大约算是游戏机,主要采用的是Cortex-M的单片机

目前硬件大概是比Arduboy这类的强很多了(回头可以把那边的代码搞过来试试)


之前的帖子 ←很早之前发过一次,是旧版的。

首先是上面提到的帖子里介绍过的东西:

1.jpg

正面PCB图

2.jpg

 背面PCB图

这个大概算是开源游戏机一类的硬件,目前NPGv2采用的是STM32F405,板载ST-LINK和各种存储器。

提供USB OTG HS和USB Device FS两个接口,相对于上个版本,这个版本除了接插件都使用了贴片。

并且板可以直接进行JLC的SMT,板载TP4056,只需要外接带保护板的电池。

屏幕依然是SPI接口,SPI Flash使用的是另外一个接口。

当然设计风格也改了,新的风格看起来更美观。


然后是还在设计中的下一个大版本的游戏机(是大版本)

全称是NyaGame Vita(上文的叫NyaGame Portable)

3.jpg

正面图

4.jpg

 背面图

这个版本采用的是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侧还有许多工作要做,毕竟是想把图形部分做到那边去,这也是大创的主要工作。


最后以一个表情结尾  TIM图片20171215141631.jpg  
 

 

 

[修改于 6年5个月前 - 2018/08/23 10:02:51]

来自:电子信息 / 电子技术
15
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
ry7740kptv
6年6个月前 IP:江苏
847727

期待成品,另外外壳打算3D打印?

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
drzzm32作者
6年6个月前 IP:陕西
847730
引用ry7740kptv发表于1楼的内容
期待成品,另外外壳打算3D打印?

目前还没考虑外壳,外壳成本还是比较高

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
rpg-7
6年6个月前 IP:四川
847833

不试试安路新的FPGA ELF2么,据说很不错的样子

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
drzzm32作者
6年6个月前 IP:陕西
847849
引用rpg-7发表于3楼的内容
不试试安路新的FPGA ELF2么,据说很不错的样子

ELF是CPLD啊,资源肯定不够

另外这个AL3S10是内嵌了SDRAM的,32位的宽度,基本上可以单片跑个软核CPU了

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
ry7740kptv
6年6个月前 IP:河北
847886

ELF2好像是带M3核的FPGA~

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
drzzm32作者
6年6个月前 IP:陕西
847897
引用ry7740kptv发表于5楼的内容
ELF2好像是带M3核的FPGA~

目前来看还是带SDRAM的要好点(如果外置的SDRAM翻车的话)

之前也考虑过要不要上GD32F450,也怕翻车,就先上STM32F429

429有个好,能找到现成的uboot和uclinux,到时候可以折腾下

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
ry7740kptv
6年6个月前 IP:河北
847915
引用drzzm32发表于6楼的内容
目前来看还是带SDRAM的要好点(如果外置的SDRAM翻车的话)之前也考虑过要不要上GD32F450...

429贵点,另外必须要跑Linux?

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
drzzm32作者
6年6个月前 IP:陕西
847931
引用ry7740kptv发表于7楼的内容
429贵点,另外必须要跑Linux?

预留这个可能性,毕竟硬件做出来后就没法改了

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
drzzm32作者
6年6个月前 IP:四川
848133

嗯。。。目前板已经从JLC回来了,但是板还没到手,得让别人去取。

接下来的焊接工作就要让别人接手了。。。


元器件到了的时候看着屏幕的接插件,突然有种不祥的预感。。。

打开PCB工程测量后发现接插件买错了,跟板上的封装不一致(被屏幕的卖家坑了)

目前要么是走本地电子市场去找(估计这种51pin的类FPC接插件不太好找),要么是淘宝再等几天

其他封装估计得拿到板的实物才能检查,当然唯一要检查的可能就是FPGA。

这个国产的芯片是用的比较小的QFP封装,名曰EQFP-144,18x18mm的尺寸,这芯片的封装是从他家官方示例板上抄过来的,也确认过datasheet


剩下的就等另外一位的进度了,虽然是去找本地的相关公司去焊接,但是做的钢网能不能用还是个问题。。。

哎如果JLC早点支持FPGA焊接就没这么多破事了。。。

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
虎哥
6年6个月前 IP:四川
848134

建议楼主改一个清晰明确并且有吸引力的标题😂

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
drzzm32作者
6年6个月前 IP:四川
848142
引用虎哥发表于10楼的内容
建议楼主改一个清晰明确并且有吸引力的标题😂

已修改 TIM图片20171215141631.jpg

以为帖子还在茶话版。。。 

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
drzzm32作者
6年5个月前 IP:四川
849873

这会把模拟器的bug修完了,部分功能开发会先在模拟器上进行。

图形部分使用SDL2,板上的物理按键也由SDL2处理。

8239CFADDE99AC3E0AC2D09E8EC0A279.jpg

串口输入输出则对应系统的基本输入输出流,这里的输入是利用conio.h做的非阻塞输入。

考虑到板上实际为单线程,因此模拟器也未设置多线程。

源码地址:XXXXXXXXXXXXXXXXXX/NSDN/NGV/tree/master/cortex/emulator

需要使用mingw编译,如要在linux上编译可能需要安装ncurses和SDL

预编译文件:

attachment icon ngv-emu-180823.zip 638.88KB ZIP 64次下载

 编译目标为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

 

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
zhengdalu123
5年5个月前 IP:新疆
862472

楼主,请问你要怎么实现游戏的运行呢?我本科毕设也想做这个,uclinux的移植教程找到了,不知道怎么实现在uclinux系统下运行游戏

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
zhengdalu123
5年5个月前 IP:新疆
862673
引用zhengdalu123发表于13楼的内容
楼主,请问你要怎么实现游戏的运行呢?我本科毕设也想做这个,uclinux的移植教程找到了,不知道怎么...

就是说,游戏是自己在linux系统下编写的还是通过别的方法把已经编译的,储存在tf卡中的游戏应用程序在linux系统中打开运行?

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
所属分类
上级专业
同级专业
drzzm32
进士 机友 笔友
文章
16
回复
250
学术分
0
2013/03/09注册,1年3个月前活动

XAUT, NSDN

Touhou and more.

主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}