Controlar NES a través de Arduino

1

Soy relativamente nuevo en electrónica: la mayor parte de mi experiencia es solo un poco de los proyectos Arduino en un sentido más limitado. He estado trabajando en un proyecto durante una semana y tengo un poco de (probablemente básico) diligencia ... Así que estoy tratando de convertir un controlador SNES a ser inalámbrico. Tengo el lado del controlador SNES terminado: es un ATMega328 + nRF24L01; Estoy usando la biblioteca SNESPad para obtener información del controlador. Pongo el estado en un int y lo envío al receptor. Otro ATMega328 y nRF24L01. A partir de ahí puedo cambiar de bit para obtener el estado de cada botón. Que todo funciona perfectamente.

Lo que estoy luchando con su forma de tomar el estado actual y devolverlo al SNES. He mirado el protocolo serial de NES / SNES y entiendo lo que necesito hacer allí, pero la única parte que no puedo entender es cómo cablear el lechón. El SNES tiene su línea de 5v vcc y su suelo. Me imagino que ataría su terreno a los ATMega (funciona con su propia fuente), y no tomaría el 5v. En ese punto, debería poder leer alto / bajo fuera de Clck, latch y líneas de datos provenientes de snes. ¿O no es así?

Para resumir la raíz de la pregunta, tengo un circuito con alimentación que quiero conectar con otro circuito. ¿Estoy compartiendo tierra todo lo que necesito?

    
pregunta Jim Weinhart

2 respuestas

1

Si su ATMega está funcionando con su propio riel de 5V, todo lo que necesita hacer es conectar la conexión a tierra. Si el ATMega está funcionando con un voltaje de suministro diferente (por ejemplo, 3.3V), necesitará algunos circuitos de cambio de nivel para evitar dañar el ATMega con las señales de nivel más alto presentadas por el hardware SNES.

(Me pregunto por qué el 5V de SNES no sería lo suficientemente bueno como para alimentar su ATMega. No puedo imaginar que atraiga toneladas de corriente ...)

    
respondido por el Adam Lawrence
1

A mi entender, está intentando enviar datos en serie a SNES desde ATMega. También he intentado hacer que esto funcione bien con la NES (ambos usan el mismo tipo de interfaz de controlador, a mi entender).

Desafortunadamente, nunca pude hacer que esto funcionara bien. No tengo un osciloscopio, así que tuve que hacer inferencias sobre si estaba haciendo exactamente lo que quería o no. Hice el cableado de la misma manera que tú en referencia a los terrenos.

Sin embargo, encontré una manera de solucionar este problema. Todo lo que necesita es otro registro de desplazamiento para actuar como un controlador. Conecte el pasador, el reloj y los pines de datos de la misma manera que se conectaría un controlador SNES, pero controle los datos paralelos que entran en el registro de desplazamiento desde su ATMega. El procesador debería funcionar lo suficientemente rápido como para que el retraso entre los pulsos de su botón y cuando el ATMega responde no importe cuando el SNES está leyendo desde el registro de desplazamiento. Si bien esta solución es un poco menos elegante que la lectura directa desde ATMega a través del pin serial, es fácil de programar e implementar: solo le cuesta un poco más de tiempo y tiempo de conexión.

De hecho, tengo una entrada de blog completa sobre cómo hacer una conexión inalámbrica Controlador NES. Recientemente lo terminé después de dejarlo solo durante unos años (oops).

    
respondido por el Nick U.

Lea otras preguntas en las etiquetas