Interface interno teclado PS/2

Sinclair QL, ZX81, +2, +3, 128K ...
elnaib
ZX Spectrum 16
ZX Spectrum 16
Mensajes: 8
Registrado: 30 Ago 2012, 07:08
Sistema Favorito: Apple MacIntosh
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo SNES
Primera consola: (Otro)
Ubicación: plegando el espacio

Re: Interface interno teclado PS/2

Mensajepor elnaib » 08 Jul 2015, 12:28

Hola,

Muchas gracias, por favor si alguien se echa para atrás avísame.

Un saludo

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5280
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 5 veces
Gracias recibidas: 29 veces
Contactar:

Re: Interface interno teclado PS/2

Mensajepor mcleod_ideafix » 08 Jul 2015, 14:55

antoniovillena escribió:Te puedo avisar si alguien se echa para atrás. Yo tengo todos los componentes, estoy a la espera de que McLeod me dé el visto bueno y me pase el firmware que tengo que grabar.

Mira: precisamente hoy quiero soldar el prototipo que tengo, pero aún tardaré unos días en poder probarlo en un Spectrum
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5280
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 5 veces
Gracias recibidas: 29 veces
Contactar:

Re: Interface interno teclado PS/2

Mensajepor mcleod_ideafix » 15 Jul 2015, 23:42

Bueno, pues tendría que haber hecho esta actualización el viernes pasado, pero hasta ahora no he tenido ocasión de subir las imágenes. Para más detalles de localización, abrir agujeros en carcasa, etc, os remito al hilo original de este proyecto en Speccy.org:
http://foro.speccy.org/viewtopic.php?f=8&t=188&p=1821

O la paginilla web que hice al respecto, aquí:
http://www.atc.us.es/~rodriguj/interface_ps2_speccy/

Y más tarde, la entrada en mi web, aquí:
http://www.zxprojects.com/index.php/ps2-adapter

La nueva versión funciona estupendamente. Aquí va una foto de cómo queda encajada la placa en la esquina inferior derecha, exactamente como la primera que se hizo. Hay que cortar un poquito los picos del agujero que hay en la pestaña lateral de la placa para convertir dicho agujero en una muesca semicircular.
Imagen

En la que yo tengo, lo único que no hay soldado son las resistencias de pullup que van al teclado PS/2, pero creo que es conveniente que estén, porque probablemente haya teclados que necesiten más corriente en la etapa de salida que el que yo he usado. El microcontrolador proporciona un pullup, pero es muy débil (unos 100K). Tanto que no he podido usar de forma fiable el adaptador sin el array de resistencias. La corriente del pullup interno era tan baja que no era capaz de polarizar correctamente los diodos que aislan el bus de direcciones de la CPU del conector de semifilas del teclado.

El firmware no tiene modificaciones sobre lo que yo ya tenía hecho. Lo subiré al repositorio, en la misma carpeta donde se encuentra el diseño del teclado.

Como curiosidad, comento que lo he usado no en un Spectrum de Sinclair, sino en un Inves Spectrum. En este ordenador la señal IOULA es el pin 19 de IC4, y ahí es donde se habrá de poner el cablecillo correspondiente que viene desde el pinheader de 4 tomas (alimentación, reset, ioula y masa)

Imagen

No he probado esta versión por tanto en un Spectrum con ULA de Ferranti. Sería menester que alguien más lo probase con algún modelo de Spectrum+ por si hay que hacer algún ajuste de última hora a la etapa de salida (las señales que vienen desde el conector de 5 pines de la plaquita hasta el teclado)

La conexión desde los conectores de teclado a la placa es sencilla:
- Conector de 4 pines: mirando de izquierda (pin 1) a derecha (pin 4) tenemos: GND, RESET, IOULA y +5V . RESET se debe conectar al pin de RESET de la CPU. IOULA al pin IORQGE (o IOULA en algunos esquemáticos) de la propia ULA, o si es un Inves, al pin que se ha comentado. En el Harlequin también existe señal IOULA, así que se puede conectar ahí.
- Conector de 8 pines: si se pone la placa de tal forma que parece una L con el rabito más corto mirando a la izquierda en lugar de la derecha, el pin 1 del conector de 8 pines está arriba, y de ahí, el 2, 3, 4... etc... hasta el 8. Se conectan con los pines 1,2,3.... 8 del conector de 8 pines del Spectrum, siendo el pin 1 el de más a la izquierda.
- Conector de 5 pines: el pin 1 también está arriba, y se conectan en orden, con los respectivos pines 1,2...5 (de izquierda a derecha) del conector de 5 pines del Spectrum.

ATENCION: en el rutado de la placa he comentido un error no fatal: el LED no está conectado a la alimentación, por lo que no lucirá. Tampoco está conectada a la alimentación uno de los pines del conector JTAG de programación del microcontrolador. Sin embargo, he podido programarlo sin ningún problema. Intuyo que la tensión de alimentación está ahí para cuando se usaba el programador antiguo, que usaba el puerto serie del PC y por tanto necesitaba alimentación externa. El programador que uso es USB y no la necesita. Si no os importa no ver el LED luciendo, pues no soldeis ni la resistencia de 470 ohm ni el propio LED.

Una vez programado el microcontrolador, cuando se enciende el equipo, el teclado se resetea y debe quedarse con Bloq Num encendido. Esta es la señal de que la comunicación entre teclado y microcontrolador es correcta. A partir de ahí podeis usar un test autocontenido en el microcontrolador: pulsar Ctrl-Alt-F12 con el ordenador aún con el mensaje (C)1982.... Si todos los cables están bien puestos, debe verse una secuencia tal como ésta:

Imagen

Hay teclados que por el tema de evitar el ghosting, impiden que se puedan pulsar a la vez más de N teclas, y hay veces que esas teclas son las que usaríamos en un juego de Spectrum. Para probar que un teclado en particular se comporta como uno espera, usar el TEST TOTAL de teclado, al cual se accede con Ctrl-Alt-F1 (desde la pantalla (C)1982...). El Spectrum empezará a autoteclear un programa solito, como éste:

Imagen

El programa es en realidad un cargador hexadecimal para una rutina de carga ultrarrápida (más que las de Antonio, que ya es decir) que carga el verdadero test usando la propia entrada de teclado (más info sobre cómo funciona esta carga aquí: http://www.zxprojects.com/index.php/ext ... -alchemist )

Imagen
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 1994
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 3 veces

Re: Interface interno teclado PS/2

Mensajepor antoniovillena » 16 Jul 2015, 09:29

Intentaré preparar los kits este fin de semana, pero no creo que me dé tiempo: aparte de preparar los kits tengo que soldar el micro y programarlo.

Avatar de Usuario
Demiurgo
MSX Turbo R
MSX Turbo R
Mensajes: 420
Registrado: 26 Oct 2014, 11:04
Sistema Favorito: MSX
primer_sistema: (Otro)
consola_favorita: Vectrex
Primera consola: Sega Game Gear
Gracias dadas: 22 veces
Gracias recibidas: 48 veces

Re: Interface interno teclado PS/2

Mensajepor Demiurgo » 16 Jul 2015, 13:42

¿Se puede puentear desde alguna parte para que el LED tenga alimentación? Quería usarlo como testigo de encendido para el Harlequin... [-o<

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5280
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 5 veces
Gracias recibidas: 29 veces
Contactar:

Re: Interface interno teclado PS/2

Mensajepor mcleod_ideafix » 16 Jul 2015, 22:03

Demiurgo escribió:¿Se puede puentear desde alguna parte para que el LED tenga alimentación? Quería usarlo como testigo de encendido para el Harlequin... [-o<

Sí, claro. Un cablecillo desde el pin 1 del conector JTAG, hasta uno de los extremos de C1 o C2 (el extremo que queda más cerca del borde de la placa). Así es como lo tengo puesto yo para poder tener el LED encendido.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 1994
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 3 veces

Re: Interface interno teclado PS/2

Mensajepor antoniovillena » 02 Ago 2015, 13:19

Ya tengo soldadas las placas pero no sé cuál es el firmware que tengo que cargar. Probaré con este:

http://www.zxprojects.com/images/storie ... re_v12.zip

Edito. Veo que sólo hay código fuente, probaré con el primero de todos (1.3b español).

Edito2. Tampoco sé que programa usar para flashear. Tengo el USB Debug Adapter U-EC6. Probaré este:
http://www.hse-electronics.de/English/e ... loads.html

Edito3. No me funciona. Pone: Unable to halt target device. He probado varios interfaces y orientando el conector de las 2 formas posibles (en ambas se enciende el led).
Adjuntos
IMG_20150802_135045.jpg
IMG_20150802_135045.jpg (156.53 KiB) Visto 1295 veces

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5280
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 5 veces
Gracias recibidas: 29 veces
Contactar:

Re: Interface interno teclado PS/2

Mensajepor mcleod_ideafix » 24 Ene 2016, 13:55

Tienes que alimentar al microcontrolador con 5V desde la entrada de alimentación del mismo. El flasheador no lo alimenta durante la operación de flasheo. Por eso no te encuentra el dispositivo en el software flasheador.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 1994
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 3 veces

Re: Interface interno teclado PS/2

Mensajepor antoniovillena » 24 Ene 2016, 14:01

El flasheador que tengo sí que alimenta al micro. De hecho me he cargado 2 micros alimentando por los dos lados. Tengo todas las placas montadas y la operación de flasheo funciona perfectamente. Lo que no funciona es invento. Lo he probado con varios teclados PS/2 y en un ZX Spectrum +

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5280
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 5 veces
Gracias recibidas: 29 veces
Contactar:

Re: Interface interno teclado PS/2

Mensajepor mcleod_ideafix » 24 Ene 2016, 14:32

antoniovillena escribió:El flasheador que tengo sí que alimenta al micro. De hecho me he cargado 2 micros alimentando por los dos lados. Tengo todas las placas montadas y la operación de flasheo funciona perfectamente. Lo que no funciona es invento. Lo he probado con varios teclados PS/2 y en un ZX Spectrum +


Ah! como en el post lo que decías es que no te encontraba el target...
Para que funcione, tienes además que conectar el pin 3 del bloque de pines llamado CTRL a la señal IORQGE de la ULA.

Ah! Y usar la versión del firmware 1.3c que dejé en el repositorio junto a los esquemáticos y demás.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista


Volver a “Sinclair/Spectrum”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 7 invitados