Diseñar una placa para 16 cartuchos.

Hola:

Estamos unos amigos y yo en hacer una placa para poner unos 16 cartuchos de la N64, ya que tiene más de 30, pero esto ya es demasiado y dinero. Se que hay cosas como EverDrive de unos 70 € donde puedes poner mucho juego en una memoria micro-SD y el nuevo a 170 € llamado SD 2 SNES que funciona la mayoría de los juegos especiales.

Queremos hacer algo parecido a esto que existió hace años.
Imagen
Descripción:
Store Charger: Periférico dirigido a disponer de varios cartuchos a la vez para ir alternando entre ellos. Sólo disponible en Japón de forma muy limitada.

Si encuentran en http://www.google.com más imágenes de este aparato, es bienvenido, no he encontrado otro en otra perspectiva fotográfica, siempre la misma.

Otro que he visto, pero este es para Mega Drive es este.
Imagen

Haremos la caja, haremos la placa y por ahora, nos hace falta información sobre sus conectores haber como funcionan para hacer la conmutación de cada juego. Es de 6 cartuchos, pero la idea es la misma.

Debo saber toda información posible, hasta los pines de la N64 de sus cartuchos que debería estar aquí pero no está.

http://pinouts.ru/search.php?lang=eng&t=N64

También conseguir los conectores, para ponerlo en una PCB. Saber cuáles son y si sirven los de las palccas bases de los PC viejos, para extraerlo y usarlo.

Este aparato de carga de cartuchos, se necesita un cartucho especial que se conecta en la entrada o slot de la N64. Con microcontroladores o incluso Arduino, haré las conmutaciones.

¿Por qué hacer todo esto habiendo emuladores?

Porque desde hace muchísimos años, que querido hacer esto como reto.

Cualquier información es bienvenida.

Un cordial saludo.
si fuese la maquina real pero montar una tipo selfmade para que :-? no es mas facil un everdrive64 y ya esta.
menudo pollo vas a montar XD XD estare pendiente suerte.
Hola:

Si, es más fácil un everDrive64, pero me hace mucha ilusión de hacerlo desde hace muchísimo tiempo como reto. No es tan pollo como cree.

Es como las tarjetas PCI de los PC de sobre mesa, lo que esta se activa los dispositivos al mismo tiempo. El caso de lo que vamos hacer (se presentará fotos en cada evolución), se ponen en paralelo y solo se activa una ranura, y eso se controla la fuente de alimentaacón mediante un PIC. Ya pondré un boceto con paint para que se entienda mejor lo que digo.

Saludo.
Se entiende perfectamente, creo :)
Imagino que ya tienes en cuenta que no es solo "activar" y desactivar cartuchos, si no apagar y encender la N64 en consonancia.
No se que señales ni que elementos van conectados al slot del cartucho, cortar y conectar la alimentacion del cartucho puede no bastar.. habra pines que queden con alta impedancia y otros, como los de la SRAM de los SAVEs del cartucho que con la pila esta siempre alimentada y responderia a las llamadas mientras se juega a otro cartucho.
Lo ideal seria "optoacoplar" todos los pines de bus de los cartuchos, pero claro....
Hola:

En el momento de cambiar de cartucho o juego, hay que resetear la N64. Lo tengo pensado.

Un saludo.
Koolk escribió:Hola:

En el momento de cambiar de cartucho o juego, hay que resetear la N64. Lo tengo pensado.

Un saludo.


Un reset?, tendrás que apagar completamente la placa imagino
A la Atari 2600 también tenia un seleccionador de cartuchos, no se si original o de algún manitas.
Buenas:

Un Reset no tiene porqué ser apagar todo, para eso lo apago y lo vuelvo a encender con su botón. Un Reset viene también al microprocesador, es decir, que las instruccuiones vuelven a empezar por cero, desde el principio, los datos de la RAM pierde memoria y empieza desde cero. la RAM estos si que se desactiva.

Algunos PIC, es capaz de Resetar desde Software, estos son ya los más nuevos y tipo PIC16F1xxx, los de 16Fxx siempre por Hardware. Resetear algo, no es quitar alimentación, simplemente cambiar de tensión a unos pines del microprocesador, microcontrolador, IC de apoyos o otros componentes que indican Reseteo, tal como fue diseñado. Cambiar de tensión quiere decir que si funcionana 5 V, se sube a 12 V para dar la orden que las instrucciones empiezan desde cero o desde el principio y ya está. La técnica de antes era como apagar y encender.

En cuanto a Atari, no sabía que esto existía. Si encuentras fotos te lo agradezco. De milagro no han hecho un aparato similar para los discos, costaría mucho dinero, tanto como una consola solo por su mecanismo.

Esto es un lector de 5 discos.
Imagen

Si fuese para consolas, harían algo como para poner unos 20 juegos dentro de ella, ya que tiene partes mecánica, tiene posibilidad de dar fallas con el tiempo y no interesa a los fabricantes.

Me alegra que entiendan el concepto. Los que no, les paso una imagen boceto que hice.
Imagen

Un saludo.
A ver, se te entiende lo que quieres hacer, pero lo único que te falta es saber si las placas de los cartuchos dan problemas al tener conectados los pines de datos entre ellas, por ejemplo con la pila como te ha dicho berto, el concepto de lo que planteas es sencillo de diseñar, luego construirlo es otro tema, creas una placa con 16 conectores de cartucho, y cada pin de cada conector a un punto que haga conexión con el pin correspondiente en N64, y el pin de alimentación de cada cartucho a un chip de 4 entradas y 16 salidas que dará salida sólo al juego elegido, aunque si haces la placa a mano o por encargo, te quedaría mejor con uno de 4 entradas y 4 salidas y resolver la elección por puertas lógicas.

Ésto te lo digo como informático, no como electrónico, por que estoy convencido de que va a haber pines que den problemas al estar conectados entre sí, pero eso ya es cuestión de probar, la solución infalible es controlar todos los pines de todos los cartuchos, pero eso con 16 cartuchos serían 400 pines, lo que exigiría al menos 9 pines de entrada y otros 9 de salida en el chip y una lógica bastante trabajada, eso sí, con eso podrías controlar 512 pines, por lo que podrías hacer una placa de 20 cartuchos, otra opción es usar varios chips para usar menos puertas, también se puede valorar el uso de biestables...

En definitiva, por poder claro que se puede hacer, pero comprueba si es posible tener que controlar un único pin, por que si no te veo dándole al álgebra de Boole con 512 bits, y no es que sea difícil, pero sí laborioso, y un mínimo error de cálculo te convierte la placa en inservible.
Hola:

Te entiendo perfectamente. Antes tenía la idea sobre álgebra de Boole. Ahora será directamente con microcontroladores, que te ahorra muchísimos IC, tiempo, consumo y más cosas. Se puede programar a la salida directamente con PIC. Sime las entradas y yo te daré las salidas que quieras, todo programado en ensamblador. Lo de entradas y salidas me refiero la tabla de la verdad.

Este tipo de pensar te lo ahorras en gran medida gracias a los microcontroladores.
Imagen

Tengo que hacer pruebas con tan solo 4 cartuchos, sólo alimento un cartucho seleccionado cuando se pulsa Reset de la N64.

Cada botón que seleccione en el aparato para un cartucho o juego, el PIC sabe exactamente cual y da el pulso de Reset a la N64. Como el Reset tarda un tiempo en dejar todo desde el principio, hay tiempo suficiente para cambiar de juego sin ningún tipo de problemas.

Si te finas bien el de SEGA arriba, tiene como un botón con un cable para no tener que levantarte a la hora de cambiar de juego. En esta época, se suel eusar bluetooth como se usa mucho en Arduino pero eso es otro cantar.

Gracias por dar ideas, además, en electrónica, se da también informática hoy en día. ;)
Ya, ya, si lo que te comentaba de controlar el pin de alimentación es eso, un pic de 16 salidas, lo programas y listo, yo prefiero uno de 4 y controlar salida con puertas quizá por que soy un clásico, me parece más limpio así, pero es sólo una opinión.

Pero el problema es lo otro, el resto de pines los tendrás conectados entre sí y a la consola, y es posible que alguno dé problemas, por ejemplo por la influencia de una pila, y si es uno, pues ya necesitas 32 salidas, y si son más, vete sumando, por lo que de ese modo no sería posible, si tras probar con esos 4 te da problemas, yo me dejaría de pruebas e iría directamente a controlar todos los pines, un método "limpio" sería asignarle un pic de 32 a cada conector y esos pics controlarlos con otro, como los pines de cada cartucho van juntos, no tienes que hacer las operaciones de los 400 pines por separado.

Aunque si te soy sincero, yo creo que tienes bien estudiado el asunto y bastante claros los pasos a dar, creo que poco más te podemos decir ya que no creo que aquí nadie haya fabricado eso antes, lo que te queda es probar.
A ver... En un slot habrá pines que puedan estar en paralelo con otro cartucho y pines que no.

Para los que sí pueden estar nada, para el resto un pic por cartucho y compuertas NOR por ejemplo.
Ya puestos a meter un pic por cartucho, yo separaría todos los pines, así se evitan de forma segura todos los problemas, presentes y futuros. Además de ese modo, una posible ampliación futura sería sencilla, sólo habría que reprogramar el pic que controla a los demás.
El reset solo reinicia la CPU en caliente, pero todos los circuitos estan encendidos por lo que pinchar el cartucho en caliente me parece poco recomendable.
Ademas ten en cuenta la latencia del mC, cuantos ciclos de maquina necesita para leer las entradas, realizar el algebra y cambiar las salidas? se te van al menos media docena de ciclos con lo que si el mC no es suficientemente rapido la CPU de la N64 ya estará reseteada y busy.... ese problema no lo tendrias con logica, ya sea convencional o configurable (CPLD, FPGA, PAL, GAL,...)
bertobp escribió:Ademas ten en cuenta la latencia del mC, cuantos ciclos de maquina necesita para leer las entradas, realizar el algebra y cambiar las salidas? se te van al menos media docena de ciclos con lo que si el mC no es suficientemente rapido la CPU de la N64 ya estará reseteada y busy.... ese problema no lo tendrias con logica, ya sea convencional o configurable (CPLD, FPGA, PAL, GAL,...)

Uhm, se podría solucionar con un segundo reset a la CPU desde el pic del cartucho correspondiente ¿no?.

Aunque eso no solucionaría lo que comentas del cambio en caliente.
Buenas:

Preferiría controlar cada pin o los más importantes en la placa base del multi cartucho (por nomobrarlo de alguna manera) en vez de poner un PIC para cada cartucho. No quiero tocar el cartucho.

En cuanto al Reset de la N64, se queda reseteado el tiempo que tengas el dedo pulsado en el botón y no sale de ahí hasta que lo sueltes, con el PIC de puede dar esa orden y no pasa nada negativo, así me da tiempo escoger el cartucho.

En cuanto a cambiar el cartucho en caliente, precisamente con el tema del Reset con cierto ampliación de tiempo y la desactivación del cartucho controlado con el PIC, no hay problemas.

Imagen
Son unos 50 pines contando sus dos caras.

Por ahí hay una Web que no recuerdo ahora que te dice como es cada cartucho por delante y por detrás. Si alguien sabe cual es, se lo agradezco. Si te fijas en este ejemplo, tiene varios pines conectado a lo mismo, otros tantos que no se usa, hay que tenerlo en cuenta, saber que hay juegos que si y otros que no o simplemente nunca se usa.

Como son 50 pines, suponiendo que se usan todos, necesito 50 transistores que hacen de interruptor digital que conecta al PIC. Todos de este tipo mostrado abajo.

Imagen


No hay que ponerlo a lo loco, me imagino que algunos serán tipo NPn y otros PNP, con sus resistencias de protección y todo, nada de alimentación al vacío que lo puede dañar. Así que imaginar el tamaño de la placa el tema de la electrónica. ;)

Lo de ampliar la placa (muy buena idea, no se me ocurrió), antes en el título casi pongo 30 cartuchos, pero me parece demasiado. En tal caso, se creará una ranura como expanción para otra placa idéntica de otros 16 cartuchos y que quede bien acoplado.

En temas de los PIC y pines, si son 50 solo para el cartucho, sin contar para otras cosas, se necesita circuitos integrados de apoyos, exceptuando tirar por PIC32 de 100 pines que pocos les interesa, ya que prefieren tener lo que puedan comprar en sus tiendas preferidas.

Empezar con un PIC de 40 pines de zócalo DIP está bien, luego se diseñará bien los decodificadores ya comprados o hacerlos con otros PIC para reducir componentes electrónicos.

Imagen


Recordar que desactivar todos los pines es como cambiar de cartucho sin problemas. Haré una prueba de dejar Reseteado la N64 mientras cambio de cartucho haber como se comporta y les contaré mis experiencias.

En caso de que se produzca algún cuelgue o cosas raras, simplemente, en vez de Resetar, haré un apagado y encendido. Así no habrá problemas al 100 %.

Gracias a todos por las sugerencias.
Koolk escribió:Como son 50 pines, suponiendo que se usan todos, necesito 50 transistores que hacen de interruptor digital que conecta al PIC. Todos de este tipo mostrado abajo.

Imagen


No hay que ponerlo a lo loco, me imagino que algunos serán tipo NPn y otros PNP, con sus resistencias de protección y todo, nada de alimentación al vacío que lo puede dañar. Así que imaginar el tamaño de la placa el tema de la electrónica. ;)



Como dije en el primer mensaje, yo te recomendaria optoacopladores, en todos los aspectos
Pero los problemas se darían si se unen pins en paralelo, no?? no seria mejor en serie independientes entre ellos?? tener 19 cerrados y 1 abierto y cuando se quiera cambiar, se apaga la consola, se cierra el abierto y se abre el nuevo.

No se si tiene lógica esto que digo.

Sobre el de Atari que decía es este:
Imagen

Y buscando he visto este otro:
Imagen

Imagen
bertobp escribió:
Koolk escribió:Como son 50 pines, suponiendo que se usan todos, necesito 50 transistores que hacen de interruptor digital que conecta al PIC. Todos de este tipo mostrado abajo.

Imagen


No hay que ponerlo a lo loco, me imagino que algunos serán tipo NPn y otros PNP, con sus resistencias de protección y todo, nada de alimentación al vacío que lo puede dañar. Así que imaginar el tamaño de la placa el tema de la electrónica. ;)



Como dije en el primer mensaje, yo te recomendaria optoacopladores, en todos los aspectos


Optoacoplador está mejor porque protege los cartuchos como la N64 a base de comunicación por luz. Lo que se hace muy caros y la parte de control en la placa más grande y es bueno poner sus zócalos. El que se usa mucho es el AN25 para estas cosas con PIC.

Como se puede ver en la primera imagen de arriba, funciona con palancas palancas. A lo mejor no es tan complicado como parece para la N64.

No encuentro información ni esquemas del conector de la N64 sobre el cartucho para saber sus tensiones y demás información.

En cuanto a la placa final. No quiero que la electrónica sea como antes, casi todo a álgebra de bool. :) Para eso están los PIC como dije, te ahorra todo este espacio hasta en el precio.
Imagen


Muchísimas gracias por las fotos y vuestras opiniones.

Edito:

Imagen

1) Haciendo pruebas, para cambiar el juego en caliente, por ejemplo, dejo pulsado el Reset, quito el juego y lo vuelvo a introducir el mismo juego sin soltar Rerset todavía. Pues el mismo juego no funciona de este modo. Se queda l apantalla en negro.

2) Con la pantalla en negro, aunque pulse varias veces Reset, se queda todavía la pantalla en negro.

3) Hago lo mismo para el punto 1) pero con otro juego, nada funciona. Pantalla en negro como siempre. Estando la pantalla en negro ya con el juego cambiado en caliente, apago y enciendo la N64 y si funciona.

Conclusión básica:

Para quitar hierro al asunto, mejor usar sistema de apagado/encendido como si fuera un Reset, es decir, desde el PIC, controlar el sistema apagado/encendido de N64. Prefiero no modificar la N64 por dentro, más bien tocaré los conectores entre la N64 y el transformador.

Se desactiva la masa o GND de los pines 1, 4 y 5 con el tiempo como si hicieras un Reset, así si funciona al 100 %. Así me ahorro de controlar los 50 del cartucho poniendo optoacopladores.

Imagen

Como esos pines del transformador consume entre 0,8 A. y 2,7 A. al menos el de España, hay que ver si usar transistores tipo TIP31 que aguante 3 A con su disipador TO-220.

Imagen

O relés que lo hace caro, grande y ruido al conmutar.
Imagen

Cuestión de gustos y comodidad.

Saludo.
18 respuestas