X1-005 - testing
Moderator: Moderators
- krzysiobal
- Posts: 1037
- Joined: Sun Jun 12, 2011 12:06 pm
- Location: Poland
- Contact:
X1-005 - testing
Pin 1 - PRG A18
Pin 24 - V Battery (direct connector to positive battery terminal)
Pin 25 - RAM VCC
Pin 32 - goes low for the whole duration of read/write cycle when adress in 0x6000 .. 0x7FFF
Pin 24 - V Battery (direct connector to positive battery terminal)
Pin 25 - RAM VCC
Pin 32 - goes low for the whole duration of read/write cycle when adress in 0x6000 .. 0x7FFF
Re: X1-005 - testing
Quickly checking a few other X1-005 boards, I noticed that there's something weird going on in J9100240A: http://bootgod.dyndns.org:7777/profile.php?id=1764
The resistors and diode are connected as:
+5V---1.5k---pin 24---1.0k---gnd
+5V---330---gnd
+5V---|>|----pin 25
Why would they bother providing a specific bias voltage on pin 24? In some other (battery-less) boards they just connect pin 24 to ground. Does the RAM not work if pin 24 is grounded?
Is there a battery voltage detection bit somewhere?
NesCartDB knows of the following X1-005-using PCBs:
J9100240A, no battery, pin 24 biased, pin 25 supplied via diode
P3-33A, battery, diode doing something unrelated?
P3-034A, battery, diode from battery to pin 25
P3-034-B, battery, diode from battery to pin 25
P3-034-C, battery, diode from battery but via to pin 25 is concealed in photo
P3-036-1, supposedly a battery, prototype with rework
"KR-14", no battery, pin 24 grounded, pin 25 floating?
アシユラー, no battery, pin 24 grounded, pin 25 ... pulled down via resistor?
The resistors and diode are connected as:
+5V---1.5k---pin 24---1.0k---gnd
+5V---330---gnd
+5V---|>|----pin 25
Why would they bother providing a specific bias voltage on pin 24? In some other (battery-less) boards they just connect pin 24 to ground. Does the RAM not work if pin 24 is grounded?
Is there a battery voltage detection bit somewhere?
NesCartDB knows of the following X1-005-using PCBs:
J9100240A, no battery, pin 24 biased, pin 25 supplied via diode
P3-33A, battery, diode doing something unrelated?
P3-034A, battery, diode from battery to pin 25
P3-034-B, battery, diode from battery to pin 25
P3-034-C, battery, diode from battery but via to pin 25 is concealed in photo
P3-036-1, supposedly a battery, prototype with rework
"KR-14", no battery, pin 24 grounded, pin 25 floating?
アシユラー, no battery, pin 24 grounded, pin 25 ... pulled down via resistor?
- krzysiobal
- Posts: 1037
- Joined: Sun Jun 12, 2011 12:06 pm
- Location: Poland
- Contact:
Re: X1-005 - testing
RAM memory (if enabled), works no matter if pin 24 is disconnected or connected to GND. I need to check how much current the X1-005 sinks through pin 25, depending on the voltage on pin 24, that might answer the question how voltage on pin 24 affects that, however for non-battery version that should not matter much (but maybe it affects RAM timing)
Weirdly, in the PCBs equipped with battery, despite having place for second diode, SRAM is constantly powered from battery even if +5V is present.
Weirdly, in the PCBs equipped with battery, despite having place for second diode, SRAM is constantly powered from battery even if +5V is present.
- krzysiobal
- Posts: 1037
- Joined: Sun Jun 12, 2011 12:06 pm
- Location: Poland
- Contact:
Re: X1-005 - testing
I've just checked that the pin 32:
* when $7ef8 != $#a3, goes for the whole duration of read/write cycle at $6000-$7fff
* when $7ef8 == $#a3, goes for the whole duration of read/write cycle only at $6000-$7eff
So this was indeed meant to control the external WRAM if connected and if the internal one is disabled.
($7ef8 or $7ef9, whichever is written last is taken into account)
Also, $7ef7 does NOT control mirroring. This is strange cause I don't see anything that would depend on this register but if mirroring is only controlled by $7ef6 it certainly means there is some hidden thing in it.
* when $7ef8 != $#a3, goes for the whole duration of read/write cycle at $6000-$7fff
* when $7ef8 == $#a3, goes for the whole duration of read/write cycle only at $6000-$7eff
So this was indeed meant to control the external WRAM if connected and if the internal one is disabled.
($7ef8 or $7ef9, whichever is written last is taken into account)
Also, $7ef7 does NOT control mirroring. This is strange cause I don't see anything that would depend on this register but if mirroring is only controlled by $7ef6 it certainly means there is some hidden thing in it.
Re: X1-005 - testing
here is my conjecture:
If there is no external SRAM,
int_wram_enabled = cpu_data_in == 8'hA3 ? 1: 0; // $7F00-$7FFF
otherwise,
All SRAMs are allowed at all times($6000-$7FFF), regardless of whether or not the internal and external SRAMs are switched
The above logic can be simplified to allow SRAM all the time. In order to prevent the internal and external SRAMs from competing in $7f00 - $7fff with the original x1-005 ASIC, we do not need to consider this problem at all, if only based on the function reverse
If there is no external SRAM,
int_wram_enabled = cpu_data_in == 8'hA3 ? 1: 0; // $7F00-$7FFF
otherwise,
All SRAMs are allowed at all times($6000-$7FFF), regardless of whether or not the internal and external SRAMs are switched
The above logic can be simplified to allow SRAM all the time. In order to prevent the internal and external SRAMs from competing in $7f00 - $7fff with the original x1-005 ASIC, we do not need to consider this problem at all, if only based on the function reverse
Re: X1-005 - testing
Re: X1-005 - testing
If it is a Vbat/VCC voltage comparator (as in MAD chips on SNES) then it should be vice-versa: "RAM not working if pin 24 is higher than VCC".
Re: X1-005 - testing
Bump. Since CPU A7 isn't connected, registers are also writable at $7e7x it would seem?
Re: X1-005 - testing
Has to be true. I mentioned that on the wiki's page on mapper 80, but it could easily have gotten lost in the text.
Re: X1-005 - testing
Oh, my bad. My eyes skipped right over it. I only brought it up because I thought it might have been an oversight in the wiki. Thanks!
Nothing to see here. Move along
Nothing to see here. Move along