Direccionar una memoria Flash o una eeprom

No recuerdas la polaridad de tu consola? necesitas un cable de antena o video?
Responder
bladehack
advantage
advantage
Mensajes: 197
Registrado: Vie Ene 11, 2008 1:55 pm
Reputación: 0

Direccionar una memoria Flash o una eeprom

Mensaje por bladehack »

Hola.

Tengo la siguiente duda, ¿Alguien sabe como se puede direccionar mediante interruptores una eprom o una memoria flash?. Lo pregunto porque quiero construirme un cartucho con 2 juegos para nintendo y dispongo de 2 memorias flash cada unas de 256 KB. En ellas ocupare los primeros 128 KB de cada una para un juego, y los bytes restantes para el otro (son los 128 KB restantes de cada una de ella). Supongo que tiene que ver con las lineas de direcciones Ax, pero no estoy seguro como funciona eso.

Saludos y gracias.

PD: a todo esto pude programar en un cartucho del SMB3, el super mario bros 2 japones (ese que viene en disquette para el famicom) y jugarlo en mi consola NES, gracias a una conversion de archivo FDS al formato NEs que encontre navegando :-D :-D
Última edición por bladehack el Mié Abr 22, 2009 4:51 pm, editado 1 vez en total.
Avatar de Usuario
133MHz
expert
expert
Mensajes: 1950
Registrado: Sab Abr 05, 2008 2:06 pm
Reputación: 0
Ubicación: Santiago, Chile
Contactar:

Re: Direccionar una memoria Flash o una eeprom

Mensaje por 133MHz »

Tienes que switchear la líneas de dirección más alta con un switch que las lleve a +5V o a GND (con eso se te separa el chip en dos bancos de 128KB c/u). Para un juego de NES usa un switch DPDT que conmute tu PRG y CHR ROM al mismo tiempo.
bladehack
advantage
advantage
Mensajes: 197
Registrado: Vie Ene 11, 2008 1:55 pm
Reputación: 0

Re: Direccionar una memoria Flash o una eeprom

Mensaje por bladehack »

Saludos y gracias por responder:

Segun lo que entiendo ¿si el chip tiene 18 lines de la A0 hasta la A17 (ya que es de 256KB), de la A9 hasta la A17 las debere conectar a +5V o a GND para separar en 2 bloques de 128 KB?
Avatar de Usuario
ZZT
Site Admin
Site Admin
Mensajes: 10910
Registrado: Mar Nov 07, 2006 2:45 pm
Reputación: 10
Ubicación: La Florida-Santiago-Chile
Contactar:

Re: Direccionar una memoria Flash o una eeprom

Mensaje por ZZT »

nop. lo que debes hacer es tomar A17 y ponerle una resistencia de 4.7K hacia 5V. de la misma pata de A17 un interruptor hacia GND.

Asi el sw determinará si apunta hacia 1 o 0.

salu2
bladehack
advantage
advantage
Mensajes: 197
Registrado: Vie Ene 11, 2008 1:55 pm
Reputación: 0

Re: Direccionar una memoria Flash o una eeprom

Mensaje por bladehack »

Ah, ya cache, excelente por sus respuestas 133Mhz y ZZT. Ahora se me aclaro la pelicula.

Gracias
Avatar de Usuario
ZZT
Site Admin
Site Admin
Mensajes: 10910
Registrado: Mar Nov 07, 2006 2:45 pm
Reputación: 10
Ubicación: La Florida-Santiago-Chile
Contactar:

Re: Direccionar una memoria Flash o una eeprom

Mensaje por ZZT »

bladehack escribió:Ah, ya cache, excelente por sus respuestas 133Mhz y ZZT. Ahora se me aclaro la pelicula.

Gracias
Imagen
se entiende? :-D
bladehack
advantage
advantage
Mensajes: 197
Registrado: Vie Ene 11, 2008 1:55 pm
Reputación: 0

Re: Direccionar una memoria Flash o una eeprom

Mensaje por bladehack »

gracias maestro ZZT...
Avatar de Usuario
Walky
expert
expert
Mensajes: 3857
Registrado: Jue Nov 09, 2006 1:59 pm
Reputación: 0
Ubicación: No sé! XD
Contactar:

Re: Direccionar una memoria Flash o una eeprom

Mensaje por Walky »

Recuerda que puedes poner cuantos juegos quieras siempre que sean compatibles a nivel de mapper y que quepan en las memorias. Yo me hice uno con 4 juegos usando un par de memorias de 512kB, ya que me quedaban 2 bits de dirección disponibles en cada memoria, lo que daba 4 combinaciones: 00, 01, 10 y 11. Recuerda revisar bien la diferencias entre el pinout de las roms y el de las eproms/flash, porque varían entre diferentes memorias.

También se puede, por ejemplo, usar una misma chr y diferentes prg para cambiar entre hacks de un mismo juego; incluso viceversa (mantener el prg y cambiar el chr) si es que sólo quieres cambiar el "look" del juego.
Avatar de Usuario
ZZT
Site Admin
Site Admin
Mensajes: 10910
Registrado: Mar Nov 07, 2006 2:45 pm
Reputación: 10
Ubicación: La Florida-Santiago-Chile
Contactar:

Re: Direccionar una memoria Flash o una eeprom

Mensaje por ZZT »

Walky escribió:Recuerda que puedes poner cuantos juegos quieras siempre que sean compatibles a nivel de mapper y que quepan en las memorias. Yo me hice uno con 4 juegos usando un par de memorias de 512kB, ya que me quedaban 2 bits de dirección disponibles en cada memoria, lo que daba 4 combinaciones: 00, 01, 10 y 11. Recuerda revisar bien la diferencias entre el pinout de las roms y el de las eproms/flash, porque varían entre diferentes memorias.

También se puede, por ejemplo, usar una misma chr y diferentes prg para cambiar entre hacks de un mismo juego; incluso viceversa (mantener el prg y cambiar el chr) si es que sólo quieres cambiar el "look" del juego.
En el caso de las bios y eproms de 256K el pinout es 100% compatible. Una vez grabadas, para quedar en modo de lectura los PIN 1 32 31 deben conectarse a 5V (Vcc). 24 y 22 deben ir a GND, pero ojo que quisas el cartridge controla esas líneas y no hay que "forzarlas" a GND. Las demas patas no sufren cambios.

aca el pinout:
Imagen

salu2
bladehack
advantage
advantage
Mensajes: 197
Registrado: Vie Ene 11, 2008 1:55 pm
Reputación: 0

Re: Direccionar una memoria Flash o una eeprom

Mensaje por bladehack »

Walky escribió:Recuerda que puedes poner cuantos juegos quieras siempre que sean compatibles a nivel de mapper y que quepan en las memorias. Yo me hice uno con 4 juegos usando un par de memorias de 512kB, ya que me quedaban 2 bits de dirección disponibles en cada memoria, lo que daba 4 combinaciones: 00, 01, 10 y 11. Recuerda revisar bien la diferencias entre el pinout de las roms y el de las eproms/flash, porque varían entre diferentes memorias.

También se puede, por ejemplo, usar una misma chr y diferentes prg para cambiar entre hacks de un mismo juego; incluso viceversa (mantener el prg y cambiar el chr) si es que sólo quieres cambiar el "look" del juego.
Gracias por la respuesta. ¿Esos bits de direccion disponibles supongo que son las ultimas lineas de direccionamiento, Ax, del Chip (al igual como explicaron anteriormente)?. Que buena haber podido encontrar memorias de 512KB, ya que las que he hallado son las tipicas memorias flash de bios de placas madres viejas de 256Kb.
ZZT escribió:En el caso de las bios y eproms de 256K el pinout es 100% compatible. Una vez grabadas, para quedar en modo de lectura los PIN 1 32 31 deben conectarse a 5V (Vcc). 24 y 22 deben ir a GND, pero ojo que quisas el cartridge controla esas líneas y no hay que "forzarlas" a GND. Las demas patas no sufren cambios.
Vale por el dato de las patas 24 y GND. No cachaba porque derepente funcionaba y derepente no.

Saludos
Avatar de Usuario
Walky
expert
expert
Mensajes: 3857
Registrado: Jue Nov 09, 2006 1:59 pm
Reputación: 0
Ubicación: No sé! XD
Contactar:

Re: Direccionar una memoria Flash o una eeprom

Mensaje por Walky »

bladehack escribió: ¿Esos bits de direccion disponibles supongo que son las ultimas lineas de direccionamiento, Ax, del Chip (al igual como explicaron anteriormente)?
Exacto. Son las líneas que normalmente no se usarían e irían a ground; o sea, incluso puedes usar una memoria de 256 (e incluso de más) simplemente para un juego de 128, basta con tirar a tierra las direcciones restantes (económicamente no sale muy a cuenta en casos como ése, pero es más que nada para ilustrar cómo funciona la cosa).

En el caso de cartuchos multijuegos, basta con unir las direcciones del prg (solamente las que van a los switches) con sus correspondientes del chr para que ambos cambien según corresponde al elegir cada juego; por ejemplo tirando un cable de A17(chr) a A17(prg). Así evitas el uso de diferentes switches para prg y chr.

Si entiendes cómo funcionan los números binarios, o más específicamente el qué pasa al agregar un 1 a la izquierda de una cifra binaria, se hace mucho más fácil entender esto de los multijuegos y de la selección de bancos de memoria.
bladehack
advantage
advantage
Mensajes: 197
Registrado: Vie Ene 11, 2008 1:55 pm
Reputación: 0

Re: Direccionar una memoria Flash o una eeprom

Mensaje por bladehack »

Walky escribió:
bladehack escribió: ¿Esos bits de direccion disponibles supongo que son las ultimas lineas de direccionamiento, Ax, del Chip (al igual como explicaron anteriormente)?
Si entiendes cómo funcionan los números binarios, o más específicamente el qué pasa al agregar un 1 a la izquierda de una cifra binaria, se hace mucho más fácil entender esto de los multijuegos y de la selección de bancos de memoria.

Si mal no recuerdo, el agregar un cero por la izquierda a un numero binario es dividirlo por 2. Si te refieres a eso te entiendo perfectamente. Ahora con un 1 no se lo que pasa, o si hay alguna relacion especifica. Pero de todas formas supongo que eso relaciona el dividir la memoria en segmentos segun una requiera.

Saludos :-D
Avatar de Usuario
BonesCollector
expert
expert
Mensajes: 3387
Registrado: Vie Nov 10, 2006 7:02 pm
Reputación: 27
Ubicación: Santiago de Chile

Re: Direccionar una memoria Flash o una eeprom

Mensaje por BonesCollector »

Algunas placas de DVDs de sobremesa traen eeprom flash de 512 kbs, aunque ultimamente usan usan un formato plano-compacto distinto al que manipulamos :|

Saludos
Avatar de Usuario
Walky
expert
expert
Mensajes: 3857
Registrado: Jue Nov 09, 2006 1:59 pm
Reputación: 0
Ubicación: No sé! XD
Contactar:

Re: Direccionar una memoria Flash o una eeprom

Mensaje por Walky »

bladehack escribió:
Walky escribió:
bladehack escribió: ¿Esos bits de direccion disponibles supongo que son las ultimas lineas de direccionamiento, Ax, del Chip (al igual como explicaron anteriormente)?
Si entiendes cómo funcionan los números binarios, o más específicamente el qué pasa al agregar un 1 a la izquierda de una cifra binaria, se hace mucho más fácil entender esto de los multijuegos y de la selección de bancos de memoria.

Si mal no recuerdo, el agregar un cero por la izquierda a un numero binario es dividirlo por 2. Si te refieres a eso te entiendo perfectamente. Ahora con un 1 no se lo que pasa, o si hay alguna relacion especifica. Pero de todas formas supongo que eso relaciona el dividir la memoria en segmentos segun una requiera.

Saludos :-D
Si agregas un cero a la izquierda de un número binario, el número se mantiene exactamente igual. Con los 1 pasa algo bien interesante; te lo ilustro con un ejemplo para que quede más claro:

Tomemos los números binarios posibles de 3 cifras, en orden de menor a mayor:
000
001
010
011

Sigamos contando...

100
101
110
111

Si te fijas, toda la segunda mitad tiene un 1 a la izquierda, y los siguientes dos cifras se repiten en la primera y segunda mitad. O sea, progresivamente se van combinando 1s y 0s con un orden que permite que el número solamente vaya aumentando.

Ahora bien, si cada cifra fuese un bit de dirección de eprom, serían A1, A2 y A3 de derecha a izquierda. Usemos este caso para imaginar que tenemos una eprom con 8 direcciones posibles (o sea, las combinaciones de A1, A2 y A3) y le queremos poner 2 juegos o datos distintos: basta con que el primer juego tenga siempre un 0 en A3, y el segundo un 1.

Vayamos más lejos aún: imaginemos que queremos meter 4 juegos en la misma memoria. En ese caso ocuparemos las 2 cifras de más a la izquierda para seleccionar cada uno de los 4 juegos (00, 01, 10 y 11) y la última para el juego en sí (pudiendo ser 0 ó 1). Obviamente en este caso el juego sólo puede pesar la mitad que en el ejemplo con sólo 2 juegos.

Uno puede aplicar lo mismo a eproms con muchas más direcciones; por ejemplo 20 bits de dirección, usando el o los bits mayores de dirección ("los de más a la izquierda") para seleccionar el juego, y el resto para guardar los datos.

Ahora bien; sobre lo de poner ceros a la izquierda, como ya lo dije no cambia nada.

Decir:

111

es exactamente lo mismo que decir

0111

y lo mismo que decir

00000000111


En cambio, si agregamos un 1 a la izquierda, estamos doblando la cantidad de datos. En el caso anterior pasaría de ser 0111 (o sea, 111) a 1111.

Si convertimos a decimal:
0111 es 7
1111 es 15

¡pero 7+7= 14! dirás. Pues no, ya que hay que considerar el 0 como una cifra válida.

7 con el 0 = 8 posibles direcciones
15 con el 0 = 16 posibles direcciones
bladehack
advantage
advantage
Mensajes: 197
Registrado: Vie Ene 11, 2008 1:55 pm
Reputación: 0

Re: Direccionar una memoria Flash o una eeprom

Mensaje por bladehack »

Perfecto. Entendi lo que me dijiste y ahora se porque varian los ultimos bits de direccionamiento. A modo de ejercicio, hice una planilla con una division de una memoria flash en 4 partes y me di cuenta de que varian las ultimas direcciones de la memoria para poder seleccionar un tramo.

Imagen

Saludos y gracias por todas las respuestas.
Responder