自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 NES(FC) FPGA游戏卡开发笔记(17)---- 阶段性总结和下步计划

CPLD和FPGA开发板也准备好了,CPLD开发板用的是AG256SL100,FPGA开发板是EF2L45LG144B,都是IO管脚数量没问题,逻辑单元少,AG256SL100作为SPI数据传输实现逻辑单元不够的话,可以先拿EF2L45LG144B开发板替代,另外购买一块6K或者10K逻辑单元的FPGA开发板。6)CPLD JTAG烧录实现,这个估计比较麻烦些,CPLD开发板本身带JTAG口,可以通过专门的烧录器进行烧写,也可以通过AT32F407CPU通过IO口的方式,读写JTAG扫描链进行烧写。

2024-05-01 22:07:38 113

原创 NES(FC) FPGA游戏卡开发笔记(16)---- RT-Thread添加winusb usb device

AT32F407VGT7开发板提供一个USB接口,可以作为USB device(支持USB2.0 Full Speed传输模式)。RT-Thread Studio可以向项目添加winusb usb device设备。USB设备连接到windows主机之后,系统自动安装winusb驱动(可能需要手动安装一下)。windows app就可以通过winusb驱动访问usb设备,可以实现配置命令,下载更新固件这样的功能。

2024-05-01 20:45:19 78

原创 USB Device固件实现设计文档

基于USB IP芯片的USB device固件实现设计文档

2024-05-01 00:08:18 734

原创 NES(FC) FPGA游戏卡开发笔记(15)---- 更新AT32F407VGT7开发板BSP包和调试SDIO

因rt-thread mch下操作SDIO的一些命令需要用到RTC功能,用于创建文件时间的设置。所以使能项目硬件配置的RTC模块。在使用RT-Thread Studio自带的AT32F407VGT7开发板BSP包进行编译的时候有编译错误。硬件驱动drv_rtc.c有两个宏没有定义,另外函数名称和组件驱动rtc.c相重。自带的BSP包可能太久没更新了,所以考虑把BSP包更新为官网上的BSP代码。没有采用RT-Thread Studio创建BSP的方式,而是自己替换Studio下的BSP包文件。

2024-04-28 12:14:32 992 1

原创 NES(FC) FPGA游戏卡开发笔记(14)---- RT-Thread Studio下编译SDIO模块的流程和问题

之前简单使用了下RT-Thread Studio的开发编译环境,觉得非常方便。现在准备SDIO模块的编译时,碰到很多RT-Thread Studio的使用上的问题。觉得RT-Thread Studio也没那么香了。这些问题可能和Studio提供的雅特力AT32F407AVGT7 BSP包,Studio本身的软件,RT-Thread的系统版本相关。有可能在不同的开发板或者不同的RT-Thread版本下就没有问题。

2024-04-27 17:36:06 994 1

原创 NES(FC) FPGA游戏卡开发笔记(13)---- 开发环境搭建(续)

该篇主要是准备搭建一个游戏卡的调试环境。大致为FPGA开发板选择,RAM板,5v-3.3v电压转换板,SDIO模块。

2024-04-22 09:24:25 858 1

原创 NES(FC) FPGA游戏卡开发笔记(12)---- 雅特力AT32F407VGT7开发板和rt-thread移植

使用rt-thread studio开发最方便了,另外项目编译优化选择-O3和-O,-O2编译的大小一样,不知道为什么,使用keil编译器应该可以少一些。rt-thread C库配置那块也需要时间理清一些。不同编译器的c库,内核带的c库,如何在不同编译环境下进行配置选择。下一步就是等SD卡模块到手之后试试sd卡读写是否没有问题。另外开发板上有个uart1 4pin接口,用4pin转DB9(usb转串口),串口调试助手没有输出。不知是4pin接口连接不对。(uart1同时连接AT-Link接口)

2023-06-29 13:12:39 976 2

原创 NES(FC) FPGA游戏卡开发笔记(11)---- N8 Pro Mapper代码分析SPI-to-RAM

SPI接口只是定义了一套数据传输的方式,并没有定义通信协议或者应答机制,slave也无法知道到底要收发多少数据。所以用户需要根据实际应用预先定义一套应答机制和传输数据的格式,方便对数据的处理。命令字读写地址数据8bit32bit8bit的倍数命令字有两种,读命令和写命令读写地址中的bit[24:23]定义是读写哪片内存(PRG-RAM/CHR-RAM/SRAM/System Registers)

2023-06-16 02:28:50 500

原创 NES(FC) FPGA游戏卡开发笔记(10)---- CPLD部分硬件管脚资源整理

MCU通过CPLD是控制存档和loader程序的SRAM。MCU暂时确定为雅特力的AT32F403AVG7芯片(cortex-m4核),CPLD选择为AG256S100。SRAM是IS62LV256AL(32KB)。整理一下各个芯片的管脚资源,方便画PCB图,并且确定MCU使用的SPI,SDIO,USB,UART的接口管脚。

2023-06-14 11:56:39 544

原创 NES(FC) FPGA游戏卡开发笔记(9)---- 游戏rom加载方案的初步设计和系统架构

这样整个系统控制流程就设计好了,具体模块与模块之间地址线和数据线,控制的连接,需要哪些线,需要做哪些逻辑完成地址映射,传递什么信息,通过什么方式传统,这些详细的设计在之后一个一个进行细化。其他的考虑:SAVE_RAM暂时考虑32KB,8KB作为存档,其他作为loader代码区。另外也可以利用CPLD的RAM资源实现。CPU的选择,雅特力AT32F403ARCT7虽然有两个外接片选,但因为一共64个管脚封装的原因,总线地址只能是访问512KB,不能满足1MB的要求,所以还是用SPI的数据传输方式。

2023-06-08 18:01:04 1276

原创 NES(FC) FPGA游戏卡开发笔记(8)---- AD学习和器件库收集,platformio(arm开发环境),6502 CPU架构学习

为了减少自己画器件图的时间,时间都花在搜寻现成的原理图和PCB图库了。用platformio的代码check功能对at32的bsp和sdio代码静态分析了一下,一堆的警告。与AGM的MCU芯片比,AGM提供的代码质量不错,文档垃圾。以后sdio和fatfs的实现还是从STM32的官方或者platformio提供的package中找,这样bug会少点。,kicad软件画的,另外这个项目是用FPGA实现的rom存储方式,类似于多合一卡的方案,项目提供了全套源代码,包括FPGA和菜单汇编代码。

2023-06-08 10:18:08 308

原创 NES(FC) FPGA游戏卡开发笔记(7)---- 开始使用AD

PCB制图软件直接用了AD,也没有做各种制图软件的比较,也不知道适不适合我这样的新手。

2023-06-02 17:26:59 276

原创 NES(FC) FPGA游戏卡开发笔记(6)---- 再整理下思路和具体工作(包括N8 Pro mapper部分的FPGA代码简单分析)

1)N8是CPLD+FPGA,N8 Pro是两个FPGA(其实也是类似CPLD+FPGA)。ICE40芯片的配置文件也是固化在芯片内的。N8的CPLD的任务是扩展SPI接口可以访问SDIO卡,另外可以向mapper FPGA下载mapper文件进行配置操作。而N8 Pro的这些功能可以让STM32 CPU完成,N8 Pro强化了其他功能,比如cheat,在游戏内调出菜单做即时保存,这些是ICE40去完成的?另外用CPLD可以增加盗版的难度。

2023-06-02 16:00:12 1016

原创 NES(FC) FPGA游戏卡开发笔记(5)---- mmc1芯片的FPGA实现分析

要用FPGA实现mmc芯片的,肯定需要阅读各个mmc芯片的功能分析文档。类似于需要分析。首先以MMC1芯片为例。(MMC1芯片有多个版本,暂时不考虑区别)。通过分析弄明白MMC1芯片的工作机制,如何切换bank。让CPU访问存放在ROM中的代码。所有的内容都是从分析整理。at romhacking.net(链接中可以下载上百个mapper的说明)

2023-06-01 01:28:33 665

原创 NES(FC) FPGA游戏卡开发笔记(4)---- mapper,board type,mmc的概念

要做mapper功能的FPGA开发,需要明白mapper,board type,mmc的基本概念和功能。mapper就是memory map。为什么要memory map?因为红白机是8位机,16bit地址总线,CPU的最大访问空间是64K,CPU内存空间的一半0-0x7FFF作为寄存器等其他功能使用。从0x8000-0xFFFF就是PRG-ROM空间了。ROM大小是32KB。一开始游戏比较小,这些空间够用,后来越来越大,怎么使用呢?任天堂就开发了mmc芯片(内存管理控制)。

2023-06-01 00:12:55 1228

原创 NES(FC) FPGA游戏卡开发笔记(3)---- AGM AG32VF407开发环境的使用

集成在platfomio开发环境中进行芯片固件开发还是不错的。同时提供了logic和固件编译下载调试。提供了好几种常用的framework bsp包,sdk也很完整,python脚本和c代码写得都很清晰,方便使用。芯片手册真的没法详细些吗?memory mapping详细说明,寄存器定义和使用这些对开发者这么重要的东西需要那么保密吗?

2023-05-31 19:31:03 3274 3

原创 NES(FC) FPGA游戏卡开发笔记(2)---- 开发环境搭建(FPGA/CPU选型篇)

可能能满足我的需求,但开发难度有些大,很多资源接口需要自己去实现。CPU片内资源比较少。

2023-05-31 17:53:13 2224 1

原创 NES(FC) FPGA游戏卡开发笔记(1)---- 开始篇

整个开发的目的就是做一个FPGA实现的,可以支持多种FC游戏(多种mapper)的游戏卡。这个开发思路国内外都有实现,包括:1)90年代的盗版卡,用逻辑器件实现mapper(mmc)功能,包括盗版mmc控制芯片,如AX5202P等。2)FPGA实现方案,如著名的乌克兰人制作的N8,N8 Pro游戏卡,powerpak等。3)现在淘宝上卖的多合1或单卡的游戏卡,一般是支持一种mmc,比如mmc1,mmc3,vrc4等。有用FPGA实现的。4)NES FPGA游戏机实现。

2023-05-31 15:50:56 2863 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除