Índice de entradas de MODs para la Sega Saturn.
Con Interruptores:
Parte 1
Parte 2 Sin interruptores: Sencillo Con micro Mi versión
Tras la entrada anterior en que se cambia entre las tres zonas y la velocidad
usando el botón de RESET con un micro controlador, voy a hacer casi lo mismo,
pero usando solo componentes discretos, esta entrada va mas de electrónica digital
que otra cosa.
NOTA IMPORTANTE: Esta entrada es la parte teórica
del montaje, no voy a desarrollar el prototipo en este momento, pero si alguno
lo desea probar ya tiene la información para hacerlo, pero no aseguro de que
funcione al no haberlo probado por mi mismo.
El circuito se comportará de esta manera solo usando el pulsador de RESET:
- Al pusar brevemente el botón de RESET irá cambiando entre regiones, alternando entre EUROPA PAL, EUROPA NTSC, JAPÓN y USA.
- Al pusar un periodo largo el RESET se reseteará la consola.
Para este montaje hay dos partes, ya que está pensado para poder aplicarlo a mas consolas, la primera es general y se puede usar en varios montajes, la segunda es específica para cada consola:
- El circuito de entrada de reset y salida del reset mas el detector de tiempo de pulsación, parte genérica que se puede aplicar en mas consolas.
- El selector de zonas y velocidad que activa los Led es específico para la Saturn. La placa de led irá por separado.
1. Selector del Reset o cambio de zona
Este es el esquema general de esta parte del circuito, dividida en 5 partes que desglosaré de manera individual:
Bloques del circuito del selector de RESET o cambio de Zona |
1.1. Entrada y salida del pulsador de RESET
El primer elemento que necesitamos es la señal de reset, que viene del pulsador,
más su retorno hacia el circuito para que se efectúe el reset en sí. El problema
es lo que se conocen como rebotes, al acercarse el pulsador a su tope se producen
una serie de pequeños traspasos de electricidad entre las dos placas aun separadas
pero próximas, estos pequeños picos de corriente no se aprecian normalmente
por ser muy pequeños, pero los circuitos digitales son muy rápidos y pueden
detectarlos,indentificándolos como pulsaciones rápidas en lugar de como rebortes.
Por tanto lo primero será eliminar los rebotes. Para ello se pueden usar
circuitos mas o menos complicados, lo mejor es un Trigger de Smith,
pero yo usaré un pequeño retardo que es más sencillo y da buenos resultados
en general:
Entrada del RESET y salida para RESET y cambio de zona |
Tenemos arriba la entrada desde el pulsador de RESET con el anti-rebotes, que
es un sencillo temporizador, al pulsar el reset se carga el condensador C1,
cuando cae el voltaje por el rebote este se descarga manteniendo la corriente
en el circuito, así en cada rebote hasta que se mantiene la corriente estable
en el pulsador, y el condensador ya no influye. Al soltar el pulsador ocurre
lo mismo, pero cuando se han separado completamente las láminas del pulsador
se descarga el condensador y libera el circuito. Este pequeño retraso no influye
apenas al soltar el pulsador.
Debajo están la salida hacia el circuito de Reset y la salida hacia el cambio de zona, cuyas señales provienen del selector del punto 1.4.
Debajo están la salida hacia el circuito de Reset y la salida hacia el cambio de zona, cuyas señales provienen del selector del punto 1.4.
1.2. Temporizador
Para esta parte se usa un circuito muy probado, un 555 como mono-estable, cuando
recibe un impulso pone su salida a nivel alto y empieza a contar el tiempo hasta
que se cumple, en ese momento pone otra vez la salida a nivel bajo, y permanece
así hasta recibir otro pulso. El tiempo de retardo se calcula usando una resistencia
y un condensador, con la fórmula Tseg
= 1'1 x Rmega x Cmicros
De esta manera si usamos un condensador de 1uF (un 105) y una resistencia de 2MOmios el retardo será de 2'2 segundos, ambos son valores sencillos de encontrar
y el tiempo sobre 2 segundos pienso que es el adecuado, con una resistencia
de 3M seria de 3'3 segundos, y con una de 4M sería de 4'4 segundos, podéis elegir
el valor que deseéis, en el esquema he puedo 3M pero creo que es mucho tiempo y que con 2M es suficiente
El circuito es muy sencillo, En la salida TMP no hay señal alguna, al recibir
la señal de RESET (filtrada de rebotes) se activa el temporizador durante el
tiempo configurado, durante ese tiempo la señal TMP estará activa, y al transcurrir
el periodo se desconecta. Al añadir un inversor disponemos de la señal invertida
en todo momento.
1.3. Detector de liberación del botón de reset
Para elegir si se desea un reset o un cambio de zona miraremos si el 555 sigue
activo al soltar el botón de RESET, en este caso sabremos que han soldado el
botón antes del tiempo indicado y realizamos el cambio de zona, si ya no está
activo es que han pasado los 3'3 segundos y debemos aplicar en su lugar el reset.
Para ello debemos detectar el flanco de bajada de la señal de reset, para lo
que se emplea un inversor y una puerta NOR:
Funcionamiento del detector de flanco de bajada |
Cuando hay una señal en la entrada el inversor la replica invertida en su salida,
pero este elemento introduce un pequeño retraso en el circuito, por lo que justo
en el momento de caer la señal durante un pequeño tiempo que tarda en cambiar
el inversor ambas señales están abajo, por lo que activa la puerta y se produce
en su salida un impulso.
Detector de liberación del botón de Reset |
1.4. Selector de Reset o cambio de zona
Con la señal de flanco ya podemos mirar si se está en el tiempo o fuera del
mismo, para lo que necesitamos comparar la señal del temporizador y la inversa
de la misma con la de flanco, buscando cual de las dos está activa y actuar
en consecuencia.
Selector de Reset o cambio de zona con puertas AND |
Como es fácil de entender, se puede elegir cual deseamos que responda a la pulsación larga si el reset o el cambio de región, simplemente hay que intercambiar en este ultimo esquema las dos salidas.
Para simplificar el montaje, cambio las puertas AND por una NOR mas un inversor, y así quitamos un chip del montaje final.
Selector de Reset o cambio de zona con puertas NOR |
1.5. Alimentación
La parte de alimentación de los chips con sus condensadores de desacoplo, estos no son estrictamente necesarios ya que los cambios no son rápidos ni continuos, pero es buena costumbre añadirlos:Alimentación de los chips |
Si somos muy puristas habría que añadir el poner a masa las entradas de las puertas no usadas, pero no lo haremos por simplificar el circuito.
2. Parte específica para la Saturn
Esta segunda parte es específica para la Saturn, pero es sencillo adaptarla a otras consolas como la Sega MegaDrive, que soportan solo las cuatro zonas que contemplamos.
Selector de zonas para la Sega Saturn |
2.1. Entrada de cambio de zona
En esta parte tenemos la entrada de cambio de zona, que proviene del montaje anterior desde el punto 1.1. del mismo. También pongo la salida de masa para la placa de leds.Entrada de cambio de zona y masa para los Led |
2.2. Contador asíncrono binario de 2 bits
Montaré un contador de 2 bits, con el puedo contar de 0 a 3 por lo que tengo
las cuatro combinaciones posibles que voy a explotar. Usaré un contador asíncrono
clásico con dos flip-flop J-K:
El primero recibe la señal de cambio de zona, activando alternativamente su
salida SC0, la que se envía al segundo flip-flop que lleva la cuenta del
segundo bit en su salida SC1, ambos disponen de las señales inversas, por lo
que las usaré directamente y me ahorro inversores /SC0 y /SC1 serán las inversas.
En esta disposición el sistema tomará los valores 00, 01, 10, 11, 00, 01...
consecutivamente al recibir la señal de cambio de zona.
2.3. Selector de zonas y velocidades
Lo que nos interesa es realmente disponer de cuatro posibilidades de cambio:
Europa PAL, Europa NTSC, Japón NTSC y USA NTSC, el resto de posibilidades no
las usamos ya que no aportan mas funcionalidad. Montamos la tabla con lo que
necesitamos:
Región | Contador | Jumper | Leds | |||||||||
C0 | C1 | JPA | JPB | JPC | JPD | JPV | LDJ | LDU | LDE | LD6 | LD5 | |
Europa PAL | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 1 |
Europa NTSC | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 0 |
Japón NTCS | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 |
USA NTSC | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 |
Con esto vemos directamente y sin necesidad de simplificar mucho que las funciones
que necesitamos para cada Jumper y para cada Led, que son las siguientes (las
pongo en NOR para usar el chip mas sencillo en este caso):
JPA =
/C0 AND C1 = NOT(C0 OR /C1)
JPB = no conectado
JPC = C0 OR /C1 = NOT(JPA)
JPD = /C1
JPV = /C0 AND /C1 =
NOT(C0 OR C1)
LDJ =
/C0 AND C1 = JPA
LDU = C0 AND C1 =
NOT(/C0 OR /C1)
LDE = /C1 = JPD
LDE = /C1 = JPD
LD6 = C0 OR C1 = NOT(JPV)
LD5 = /C0 AND /C1 = JPV
Los desarrollos de algunas de las fórmulas, por si queréis verlos son (usando . por AND y
JPC = (/C0 . /C1) + (C0 . /C1) + (C0 . C1) → Propiedad asociativa saco factor común /C1
JPC = /C1(/C0 + C0) +(C0 . C1) → Algo OR su contrario es siempre 1 y algo AND 1 es ese algo
JPC = /C1 + (C0 . C1) → por absorción
JPC = /C1 + C0
JPD = (/C0 . /C1) + (C0 . /C1) → Propiedad asociativa saco factor común /C1
JPD = /C1(/C0 + C0) → Algo OR su contrario es siempre 1
JPD = /C1
JPD = /C1(/C0 + C0) → Algo OR su contrario es siempre 1
JPD = /C1
LD6 = (C0 ./C1) + (/C0 .C1) + (C0 .C1) → Propiedad asociativa saco factor común C1
LD6 = (C0 ./C1) + C1(/C0 + C0) → Algo OR su contrario es siempre 1 y algo AND 1 es ese algo
LD6 = (C0 ./C1) + C1 → por absorción
LD6 = C0 + C1
Con todas las señales de entrada desde el contador y las de salida para jumpers y led, montamos el selector final que es el siguiente:
Selector de zona para la Saturn con 5 led de salida |
Se puede alterar este montaje para usar 4 led en lugar de 5, solo es cuestión de usar esta otra tabla donde elimino LDE:
Región | Contador | Jumper | Leds | ||||||||
C0 | C1 | JPA | JPB | JPC | JPD | JPV | LD5 | LD6 | LDJ | LDU | |
Europa PAL | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 |
Europa NTSC | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 |
Japón NTCS | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
USA NTSC | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 |
LD5 = /C0 AND /C1 = JPV
LD6 = C0 AND /C1 = NOT(/C0 OR C1)
LD6 = C0 AND /C1 = NOT(/C0 OR C1)
LDJ = /C0
AND C1 = JPA
LDU = C0 AND C1 =
NOT(/C0 OR /C1)
Selector de zona para la Saturn con 4 led de salida |
Este cambio realmente no simplifica el montaje ya que cambiamos un puerto NOT por un NOR que tenemos libre.
2.4. Alimentación
Solo resta la parte de alimentación de los chips, con sus condensadores de desacoplo, estos no son estrictamente necesarios ya que los cambios no son rápidos ni continuos, pero es buena costumbre añadirlos:Alimentación de la placa del selector de zonas |
3. Placa de leds
La placa es la misma de los otros montajes, los 5 leds y sus resistencias, además de la masa, es lo que hace falta para montarla. Evidentemente si se desea usar solo 4 leds se elimina la entrada _LE, R32 y el LED3.Conclusión
Con estos circuitos tenemos el montaje de un selector de 4 zonas para la Saturn, y con pequeñas modificaciones aplicable a otras consolas. No es tan sencillo como el que usa un micro-controlador PIC, pero no necesita un programador específico ya que todos los chips son discretos, solo hay que montar las tres placas y cablearlas internamente y entre sí, lo que no es demasiado difícil pero si laborioso al disponer de tantos chips. Recomiendo estudiar bien los diagramas antes de lanzarse, entenderlos bien, y luego establecer un esquema de conexiones entre los chips para abordarlo con éxito.Aunque solo es un desarrollo teórico y no lo he probado, pongo los esquemas de las tres placas para ayudar si alguno quiere probarlo, yo ayudaré en lo que pueda si lo intentas. Como es mi costumbre, están pensadas para placa de topos, aunque sería muy sencillo hacerlo en una placa de circuito. Los puentes están marcados en rojo.
Posible placa de selección del RESET |
Placa de selección de zona |
Placa de leds |
No hay comentarios:
Publicar un comentario