antoniovillena escribió:Nada yo solo era para asegurarme de que habías entendido la advertencia de McLeod. Ya veo que eso lo tienes controlado
Si, he entendido la advertencia. Es la misma que me dió cuando empece con este proyecto en el otro hilo, y por lo cual revisé en su día metódicamente, con los siguientes resultados:
spark2k06 escribió:Las pruebas han dado los siguientes resultados:
Tensión de entrada: 5,06V
1. Output LO -> 0V, entre GND y A2/A3 existe una pequeñísima resistencia de 22 ohmios. (Funcionamiento en PS/2 -> LO)
2. Output HI -> 5,06V
3. Input HI pullup -> 4,86V
4. Input HI-Z -> 0,06V (Funcionamiento en PS/2 -> HI-Z)
Como vemos, en el modo de funcionamiento PS/2 como mucho entran 0,06V en HI-Z a la FPGA, algo insignificante.
No obstante, como las pruebas se llevaron a cabo en un arduino uno, y las placas están diseñadas para arduino nano, me he asegurado que en éste tampoco se produce ningún tipo de voltaje con el mísmo código de arduino, que a modo de recordatorio, lo tenéis disponible en mi perfil de github.
antoniovillena escribió:
El protocolo PS/2 es punto a punto, o sea que si tienes conectado un teclado a la vez que este conversor es normal que tengas colisiones. Para evitar las colisiones lo único que se me ocurre es que desde el arduino te encarges de arbitrar lo que entra por teclado y lo que entra por joystick. Desconozco cómo lo tienes hecho. Seguramente lo haces así.
Tenía en mente que cuando no se está utilizando el teclado, éste no debía enviar nada pero al parecer... y leyendo los enlaces que os he pasado, deduzco (porque no tengo un analizador lógico para comprobarlo), que el teclado escucha en el PS/2 y ante un comando desconocido (cuando arduino envía sendcodes debido a los eventos joystick), devuelve un código 0xFE que significa RESEND, éste tipo de códigos enviados por el teclado creo que son los que entran en conflicto con lo que en ese momento pueda estar enviando el arduino, y ésta casuística no hay manera de arbitrarla desde arduino con las líneas CLK y DATA comunes... la única posibilidad es que el segundo puerto PS/2 vaya a otras entradas de arduino en lugar de puenteado, y envíe la comunicación por el otro puerto PS/2 conectado al ZXUno sincronizada con los eventos del joystick. Creo que esta gestion para sincronizar todos los eventos se le puede quedar grande al arduino, y tampoco era el objetivo principal, pero un ratón por ese puerto sin embargo va a funcionar sin problemas.
Al decir @mcleod_ideafix que este comportamiento no debería pasar y que podía ser por el tema de pullup, etc... me asusté y suspendí los envíos, pero al documentarme bien sobre protocolo PS/2 (+ teclado PS/2) y del posible motivo de colisión, ahora estoy mucho mas tranquilo... a ver si nos puede comentar algo al respecto para dar por concluído este asunto y pueda continuar con los envíos.
antoniovillena escribió:
Como sugerencia de mejora y debido a que los mandos de NEOGEO son caros, puedes aceptar mandos de NES. Estos se pueden conseguir baratos por internet y los conectores también. La pega es que no son pines directos, sino que tienes que demultiplexar en el tiempo.
No tengo interés en meterme en otros diseños, una vez finalizado éste quiero trastear con el código verilog de la FPGA, para aprender y de paso mejorar lo que pueda, como el puerto PS/2 por ejemplo o dar soporte a cores que no tienen control PS/2. Existen conversores de gamepads a NeoGeo, como este de psx:
http://www.tototek.com/store/index.php? ... ucts_id=50
Para los manitas, tutorial de adaptación de cualquier pad a Neogeo:
http://www.mmmonkey.co.uk/snk-neo-geo-c ... r-joystick
Desde luego, este proyecto sólo es para quien le guste experimentar creando (filosofía do it yourself)... si no hay que pasar por caja
Gracias no obstante por la sugerencia.