先总结这几天干的事情:
1)开始用AD软件画原理图和PCB图。为了减少自己画器件图的时间,时间都花在搜寻现成的原理图和PCB图库了。立创商城网站是个很不错的库图资源。在线立创eda可以把原理图和pcb图导出为AD图。雅特力AT32F40x芯片就是从这个地方下的图库。AG10K144是不是就是Altera Cyconle IV EP4CE10E22C8芯片的pin to pin可以替换的?从官网上下的AG10K144 PCB原理图竟然芯片标的型号是EP4CE10E22C8。下了EP4CE10E22C8手册看了一下,好像管脚定义是一样的。正好画图就可以用这个了。
游戏卡PCB是从githut上找的现成的(coolgirl-multirom-builder)GitHub - ClusterM/coolgirl-multirom-builder: Toolset that allows you to create multirom images for COOLGIRL Famicom cartridges,kicad软件画的,另外这个项目是用FPGA实现的rom存储方式,类似于多合一卡的方案,项目提供了全套源代码,包括FPGA和菜单汇编代码。直接提取里面的30pin脚(游戏卡单面)器件图。
这样主要的元器件都有原理图和PCB图了。从雅特力和AGM下了芯片的demo板的PCB原理图作为参考。
另外花了点时间看了个AD软件使用系列视频。(用该软件设计8051板子的整个流程教学视频)。
2)用platformio开发环境编译了下雅特力AT32F40x的sdio带fatfs的例子
没有开发板,就完成编译,估计一下image大小。调试运行弹出jlink设置。用platformio的代码check功能对at32的bsp和sdio代码静态分析了一下,一堆的警告。粗略地看了下sdio和fatfs的代码,感觉是个半成品。与AGM的MCU芯片比,AGM提供的代码质量不错,文档垃圾。雅特力正好相反。以后sdio和fatfs的实现还是从STM32的官方或者platformio提供的package中找,这样bug会少点。
3)6502 CPU架构的学习。
《Nintendo Entertainment System Documentation》,47页的小册子,介绍得很清楚。
《nestech.txt》,nesdev wiki上的文本书。基本概念都有覆盖。
《2A03 technical reference.txt》,偏介绍PPU的图像处理实现。
《6502 user's manual》,内容偏硬件,比上面讲得很详细些。
4)FPGA rom加载的方案考虑。