Need help about gameboy pin30 /reset signal

Discussion of development of software for any "obsolete" computer or video game system. See the WSdev wiki and ObscureDev wiki for more information on certain platforms.
Post Reply
User avatar
byemu
Posts: 297
Joined: Mon Sep 05, 2011 5:56 pm
Contact:

Need help about gameboy pin30 /reset signal

Post by byemu »

Need help about gameboy pin30 /reset signal:

Is it /reset signal is a input signal.
How it works?
lidnariq
Posts: 11432
Joined: Sun Apr 13, 2008 11:12 am

Re: Need help about gameboy pin30 /reset signal

Post by lidnariq »

I would assume that the /RESET signal is an open-collector bidirectional signal; grounded by the LR35902 until it's ready to start executing code, and probably ground-able by the cart to cause the GBCPU to reboot.
User avatar
byemu
Posts: 297
Joined: Mon Sep 05, 2011 5:56 pm
Contact:

Re: Need help about gameboy pin30 /reset signal

Post by byemu »

If set /reset as input on a cpld cartridge, the cartridge can't boot on GB, but on GBC or GBA is OK.
lidnariq
Posts: 11432
Joined: Sun Apr 13, 2008 11:12 am

Re: Need help about gameboy pin30 /reset signal

Post by lidnariq »

The pin has to be allowed to float high...
User avatar
byemu
Posts: 297
Joined: Mon Sep 05, 2011 5:56 pm
Contact:

Re: Need help about gameboy pin30 /reset signal

Post by byemu »

Yes, when I setup a pullup resistance on the /reset signal,it can boot on GB.
BTW, is there a reboot command yet? for example write 00 to FF50 ,then jp $000,system will reshow Gamboy LOGO (sorry it's not work,only show a possible).
lidnariq
Posts: 11432
Joined: Sun Apr 13, 2008 11:12 am

Re: Need help about gameboy pin30 /reset signal

Post by lidnariq »

There's no software way back into the Gameboy bootstrap. ($FF50 is write-once). You should be able to just jump back to the DMG's reset location after the bootstrap finishes, though. ($0100)
nitro2k01
Posts: 252
Joined: Sat Aug 28, 2010 9:01 am

Re: Need help about gameboy pin30 /reset signal

Post by nitro2k01 »

/reset is an input on the CPU. It's weakly pulled up to Vcc with something like a 100k resistor. Probably, your FPGA is sinking the voltage too low. Try adding something like a 10k pull-up on your cart and see if it improves stability.
lidnariq wrote:grounded by the LR35902 until it's ready to start executing code
Have you confirmed this behavior or is it conjecture?
User avatar
byemu
Posts: 297
Joined: Mon Sep 05, 2011 5:56 pm
Contact:

Re: Need help about gameboy pin30 /reset signal

Post by byemu »

on my GB,play a cartridge:
Image
Image
Image
lidnariq
Posts: 11432
Joined: Sun Apr 13, 2008 11:12 am

Re: Need help about gameboy pin30 /reset signal

Post by lidnariq »

It may not be the LR35902 itself, but there's definitely something keeping /RESET from rising until 8.6ms after +5V has stabilized:
Attachments
dmg_reset_starts_rising_noticeably_after_5v_is_stable.png
dmg_reset_starts_rising_noticeably_after_5v_is_stable.png (3.15 KiB) Viewed 9901 times
nitro2k01
Posts: 252
Joined: Sat Aug 28, 2010 9:01 am

Re: Need help about gameboy pin30 /reset signal

Post by nitro2k01 »

lidnariq wrote:It may not be the LR35902 itself, but there's definitely something keeping /RESET from rising until 8.6ms after +5V has stabilized:
That looks weird. 1) How the power seems to rise linearly rather than converge exponentially. (Capacitor charge curve.) 2) How the /reset signal DOES have a capacitor charge curve type curve.

On a DMG (unless I've missed something!) the only things connected to the reset line are the CPU, a pull-up resistor and the cartridge bus. To get a rise time of 50 ms, there would have to be a ~100 nF capacitor present, which afaik doesn't exist on the boar, but might exist on some cartridges? I'd have to look into this myself. Definitely seems like something holds the /reset line until the power is stable though.
lidnariq
Posts: 11432
Joined: Sun Apr 13, 2008 11:12 am

Re: Need help about gameboy pin30 /reset signal

Post by lidnariq »

nitro2k01 wrote:That looks weird. 1) How the power seems to rise linearly rather than converge exponentially. (Capacitor charge curve.)
I have to assume it's an artifact of the flyback converter used inside the DMG. Evidently the flyback counts as a constant-current source charging a capacitor, hence the linear rise.
On a DMG (unless I've missed something!) the only things connected to the reset line are the CPU, a pull-up resistor and the cartridge bus. To get a rise time of 50 ms, there would have to be a ~100 nF capacitor present, which afaik doesn't exist on the board
... now that's a very good question. I think your math is a little off (the time constant looks to me like it's somewhere around 15ms, so it's an unexplained 13nF, but 13nF is still too big to be plausibly on-die in late 1980s technology)
but might exist on some cartridges?
I did this test without a cart.
nitro2k01
Posts: 252
Joined: Sat Aug 28, 2010 9:01 am

Re: Need help about gameboy pin30 /reset signal

Post by nitro2k01 »

lidnariq wrote:I think your math is a little off (the time constant looks to me like it's somewhere around 15ms, so it's an unexplained 13nF, but 13nF is still too big to be plausibly on-die in late 1980s technology)
I would say the time constant is closer to 20 ms (two divisions) but around that ballpark, yeah. By plugging 0.1 and 180000 into this calculator, I get a time constant of 18 ms. 13 nF would give a much shorter TC given the 180k resistor on the board.

http://www.digikey.com/en/resources/con ... e-constant
gekkio
Posts: 49
Joined: Fri Oct 16, 2015 6:18 am

Re: Need help about gameboy pin30 /reset signal

Post by gekkio »

This is an old thread but here are some fresh findings about the reset behaviour on DMG. I did a bunch of tests and used an oscilloscope to plot the behaviour of the main +5V rail and the RESET signal.

Green = +5V rail
Yellow = RESET

Bare SoC + minimum extra circuitry

This is a test with just a bare DMG-CPU B SoC on a breakout board and 100 nF + 47 k on the reset line.
SCR01.PNG
RESET is clearly delayed only by the RC circuit.

DMG console + Tetris cart + DC supply

Powered using +5V from a programmable supply to DC jack. Console power switch was in the on position and power was controlled using the supply's power toggle only.
Note that the timescale is different since the DMG regulator slew rate is slow! (x10 compared to the bare SoC)
SCR02.PNG
RESET is once again only delay by the RC circuit.

DMG console + Tetris cart + batteries + power switch
SCR03.PNG
This time RESET has an extra delay where it's pulled low by something before the RC circuit takes over.

DMG console + Tetris cart + batteries + power switch in the on position

This time I removed one of the batteries, left the power switch in the on position, and powered the system on by quickly shoving the missing battery in.
SCR04.PNG
The extra delay is gone!

Explanation

DMG power switch is an SPDT switch that also switches a RESET<->GND connection in addition to the main power rail. This detail is not included for example in Jeff Frohwein's schematics, but it's there if you look closely at the board and it's also included in the official schematics (in the World Class Service Manual).

In practice when you move the power switch to turn the system on, there's a short time period where the main power rail is connected and RESET is still connected to GND. This power switch feature adds a slight extra mechanical delay to RESET before the RC circuit can pull it high, and also guarantees it's pulled strongly low when you turn off the system.

The RESET pin on the DMG SoC is just an input so the SoC never drives it low. Note that the cartridge is allowed to assert the signal, and all Nintendo carts with save RAM use a supervisor chip that keeps RESET low until the system voltage reaches a certain point.
Post Reply