站内搜索
发作品签到
丐中丐GBA烧卡器
专业版

丐中丐GBA烧卡器

6.0k
0
0
25

简介

孩子不懂事做着玩的

简介:孩子不懂事做着玩的
复刻成本:9

开源协议

Public Domain

创建时间:2024-12-13 22:43:20更新时间:2025-11-10 11:31:29

描述

说明

  • 只能烧chis卡青春版铁电版
  • 这不是一个严谨的项目,只是随便搞搞,功能单一,除了便宜一无是处
  • c8t6 3¥,卡槽4¥,晶振ldo杂七杂八算它2¥,pcb白嫖,9块钱差不多了
  • (20250331更新)现在可以写flash存档了,可以自动选择烧卡器所在端口
  • (20250414更新)支持S29GL256N和其它能读CFI能多字节写入的nor flash
  • (20250422更新)支持morinaka的MBC5,测试版
  • (20250613更新)支持自动擦除,支持文件拽入,支持s29gl01g s70gl02g 合卡
  • (20250723更新)修了点bug,支持leondiy的mbc
  • (20250903更新)优化了铁电时序,加了几个小工具(改时钟、解锁nor、震动测试)
  • (20251105更新)优化skyemu读卡响应速度,支持mbc3,为碳酸丐添加5V输出功能(几天后修了个bug,请之前下载过此版本的人重新下一次)

上位机

网页版

由tautcony大佬开发
https://tautcony.xyz/beggar_socket/

安卓版

由八千女鬼大佬开发
最新版去chisflash群获取
https://pan.baidu.com/s/1hFXcuZI7d3m2Xcfk7Yu1uA?pwd=chis

skyemu

让电脑直接读卡带玩游戏,由面包大佬魔改
https://github.com/ChisBread/SkyEmu

windows版

一开始想用flashgbx的,改了一下午也只是实现了个读header。

gbx.PNG

转念一想,我又不是要做全能烧卡器,费那劲儿干嘛,要丐就丐到底,果断放弃。拿C#撸一个方便多了。

所以最后做出来的上位机长这样,右上角选端口,先擦后写,该干嘛干嘛。

我手上的卡实测写240k,读400k,对得起这个价格了

exe.PNG

源码

在这里 https://github.com/julpage/beggar_socket

协议&命令

  • 单片机的usb虚拟了一个串口,vid: 0x0483 pid: 0x0721
  • 发送dtr置位复位信号可以重置单片机内的命令buffer(其实发rts信号也行,但windows自带
    的串口驱动的rts不是实时的,不建议)。
  • 以下所有的crc都是没用的,不论填什么都不会影响功能。毕竟usb自带校验,每个包再算一次
    还浪费性能,干脆无视。
  • 都是小端模式

GBA命令

获取rom id

  • 发送
字节数212
定义包大小(5)0xf0CRC
  • 返回
字节数28
定义CRCID
Autoselect 第0、1、15、16字

rom 全片抹除

  • 发送
字节数212
定义包大小(5)0xf1CRC
  • 返回 (只是执行擦除命令,擦完没有另行判断)
字节数1
定义0xaa(成功)
其它(失败)

rom 扇区擦除(64KB)

  • 发送
字节数2142
定义包大小(9)0xf3扇区地址CRC
  • 返回 (擦完才返回)
字节数1
定义0xaa(成功)
其它(失败)

rom 编程

  • 发送
字节数2142n2
定义包大小(2+1+4+2+n+2)0xf4起始地址(字节)rom buffer大小
0表示只能单字节编程
数据CRC
  • 返回
字节数1
定义0xaa(成功)
其它(失败)

rom 直接写(透传)

  • 发送
字节数214n2
定义包大小(2+1+4+n+2)0xf5地址(字)数据
2-5000
n=2的倍数
CRC
  • 返回
字节数1
定义0xaa(成功)
其它(失败)

rom 读取

  • 发送
字节数21422
定义包大小(11)0xf6起始地址(字节)读取n个字节
2-5000
n=2的倍数
CRC
  • 返回
字节数2n
定义CRC数据

ram 写入

> 切bank通过上位机完成

  • 发送
字节数214n2
定义包大小(2+1+4+n+2)0xf7起始地址(字节)数据
n=1-5000
CRC
  • 返回
字节数1
定义0xaa(成功)
其它(失败)

ram 读取

> 切bank通过上位机完成

  • 发送
字节数21422
定义包大小(11)0xf8起始地址(字节)读取n个字节
n=1-5000
CRC
  • 返回
字节数2n
定义CRC数据

fram 写入 (因为fm20比较慢,所以加了这条命令)

> 切bank通过上位机完成

  • 发送
字节数2141n2
定义包大小(2+1+4+1+n+2)0xe7起始地址(字节)延迟周期数据
n=1-5000
CRC
  • 返回
字节数1
定义0xaa(成功)
其它(失败)

fram 读取 (因为fm20比较慢,所以加了这条命令)

> 切bank通过上位机完成

  • 发送
字节数214212
定义包大小(12)0xe8起始地址(字节)读取n个字节
n=1-5000
延迟周期CRC
  • 返回
字节数2n
定义CRC数据

ram 写入FLASH

> 切bank通过上位机完成

  • 发送
字节数214n2
定义包大小(2+1+4+n+2)0xf9起始地址(字节)数据
n=1-5000
CRC
  • 返回
字节数1
定义0xaa(成功)
其它(失败)

GBC命令

> 切bank通过上位机完成

gbc 直接写(透传)

  • 发送
字节数214n2
定义包大小(2+1+4+n+2)0xfa起始地址(字节)数据
1-5000
CRC
  • 返回
字节数1
定义0xaa(成功)
其它(失败)

gbc 读取

  • 发送
字节数21422
定义包大小(11)0xfb起始地址(字节)读取n个字节
n=1-5000
CRC
  • 返回
字节数2n
定义CRC数据

gbc rom 编程

  • 发送
字节数2142n2
定义包大小(2+1+4+2+n+2)0xfc起始地址(字节)rom buffer大小
0表示只能单字节编程
数据CRC
  • 返回
字节数1
定义0xaa(成功)
其它(失败)

gbc 写入fram (因为fm20比较慢,所以加了这条命令)

  • 发送
字节数2141n2
定义包大小(2+1+4+1+n+2)0xea起始地址(字节)延迟周期数据
1-5000
CRC
  • 返回
字节数1
定义0xaa(成功)
其它(失败)

gbc 读取fram (因为fm20比较慢,所以加了这条命令)

  • 发送
字节数214212
定义包大小(12)0xeb起始地址(字节)读取n个字节
n=1-5000
延迟周期CRC
  • 返回
字节数2n
定义CRC数据

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
单片机.7z
145
2
上位机.7z
131
3
更新20250331.7z
50
4
更新20250414.7z
28
5
更新20250422.7z
94
6
更新20250613.7z
15
7
更新20250723.7z
50
8
更新20250903.7z
48
9
更新20251105.7z
78
克隆工程
添加到专辑
0
0
分享
侵权投诉
知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

底部导航