lunes, 4 de abril de 2011

Adaptador de control de SNES a USB (Here comes a new challenger!!!).

Con un prototipo funcional (en protoboard, pero al cabo funcional) decidí poner manos a la obra. Pero antes, se me ocurrió la "brillante" idea de investigar más a fondo sobre los adaptadores de controles de consolas al puerto USB, sobre todo porque revisando los números me percaté que estaba utilizando sólo un tercio de la capacidad en memoria del microcontrolador. Ante esta circunstancia me saltaron en la mente dos alternativas: la primera era darle una mayor compatibilidad al adaptador (agregar soporte para más controles) y la segunda era optimizar el adaptador (utilizar un microcontrolador más barato y con menor capacidad).

Como ejemplo de la primera alternativa encontré el proyecto de Retro Adapter de Paul Qureshi, en el cual se usa un microcontrolador de 16 kB de memoria para dar compatibilidad a un chorro de controles. El ejemplo de la segunda alternativa la encontré en el proyecto de Hobbyelektronik, donde con un microcontrolador de 4 kB sincronizado por software y con un microcontrolador de 2 kB sincronizado con cristal de cuarzo realizan el adaptador.

Debo admitirlo, soy un fanático de la optimización, así que el proyecto de Hobbyelektronik me pareció una mejor alternativa que el prototipo que ya había comenzado. Además, de forma completamente "misteriosa" los microcontroladores ATMEGA8 y los cristales de cuarzo de 12 MHz (los necesarios para sincronizar el microcontrolador con el puerto USB) subieron de precio como la espuma de un chesco agitado... Pero a diferencia de la espuma, los precios se han mantenido altos desde aquella fecha.

Así que decidí armar el adaptador que utilizaba el ATTINY2313. Cabe mencionar que si bien, el microcontrolador recomendado debe tener una frecuencia de operación de 20 MHz (terminación 20PU), es posible usar el de frecuencia de 10 MHz (10PU) y "overclockearlo" con el cristal de 12 MHz. Inclusive, el desarrollador original de la interfaz de los microcontroladores AVR a USB hizo sus primeros experimentos con un AT90S2313 (antecesor de los ATTINY2313) de 10 MHz.

Así que puse manos a la obra, compré un ATTINY2313-20PU (en uno de los locales del número 24 de la calle de República del Salvador), reutilizé todos los componentes del prototipo anterior, quemé el firmware en el microcontrolador y todo funcionó de maravilla.

Las pruebas fueron satisfactorias, el adaptador fue sumamente estable, sin lag o retrasos en los botones, barato y sobre todo, cumplió con mis expectativas de optimización. El circuito quedó muy padre, dentro de un bloque de plástico de 3x7 cm. Hice un cople adaptador del control de SNES a conector DB9. El conector DB9 se conectaba al bloque de plástico que contenía el circuito adaptador y éste se conectaba por otro cable al puerto USB.

Conector casero para controles de SNES.
Chasis fabricado a partir de un "FacoBlock" (MegaBlock genérico X_x)
Nótese la pulcritud y profesionalismo del acabado X_x.


Hasta aquí todo podría quedar en un final feliz... Sin embargo todo es perfectible, todo puede mejorar, y además AG trajo los ATTINY25 a un precio bastante competitivo, así que decidí poner manos a la obra... una vez más.

Festival de cables n_n.

Soundblaster Audigy SE front panel.

Hola, ¿Cómo están? Bienvenidos sean de nueva cuenta. Recientemente me puse a la labor de reacondicionar una computadora con las piezas que...