2

I am working on a project where I need to create a custom Gameboy Advance cartridge. It has the maximum 32MB of data, which will be on a S29GL256P flash chip, and will save on a 32KB FM28V020 FRAM chip. I have figured out the data structure, however, I haven't figured out the address/data pins. The problems that I am having are that, 1, I can't figure out how to manage the address/data pins, and 2, I don't know how to or what triggers the address/data pins.

Edit: For anyone who is trying to do the same thing, the GBA cartridge uses a multiplexed bus, CS, in the picture below, is presumably the switch for data and address on the ROM, and CS2 seems to be the switch from ROM to RAM, as can be found in the link in the answer and here. Just a reference for anyone interested!

A pinout of the cartridge: https://robinwieschendorf.de/posts/2016/04/gameboy-advance-rom-dumper-mit-arduino-uno/ https://robinwieschendorf.de/posts/2016/04/gameboy-advance-rom-dumper-mit-arduino-uno/

A pinout of the chip: https://datasheet.lcsc.com/lcsc/2107281430_Cypress-Semicon-S29GL256P11TFI010_C1350714.pdf https://datasheet.lcsc.com/lcsc/2107281430_Cypress-Semicon-S29GL256P11TFI010_C1350714.pdf

  • We also don't know how a device uses the bus to access chips. Given the pedigree of the device, it must be reverse-engineered and documented somewhere. Likely just requires to connect the buses as-is after you know which chip select is for which chip. – Justme Sep 21 '22 at 22:58

1 Answers1

0

You didn't look too hard! The link in the link you posted has the answer. https://douevenknow.us/post/68126856498/arduino-based-gba-rom-dumper-part-1

Seems you need some logic to latch and increment the addresses. From the above link, CS latches the address and RD or WR increment the address. You'll probably need a CPLD or FPGA to implement this - something like a MACH-X02 would probably fit the bill.

If you were hoping it was just a matter of designing a pcb to join some pins together, unfortunately it is a little more involved but not too difficult if you have experience with logic design.

Kartman
  • 6,258
  • 2
  • 7
  • 13
  • Hah, didn't even realize that! I'm pretty sure that the GBA flash carts on InsideGadgets uses a CPLD to handle the bus. Also I think using a CPLD is best (because it's programmable), but I might test a few designs just with counters and logic gates. Thanks! – BrickedUser Sep 22 '22 at 11:50
  • @BrickedUser you will probably find using a CPLD or microcontroller easiest, just because it integrates all the logic into one chip. Using discrete logic chips is pretty rare these days, because single-chip solutions are generally all-around better. – user253751 Sep 22 '22 at 20:45