Interface interno teclado PS/2

Sinclair QL, ZX81, +2, +3, 128K ...
Avatar de Usuario
scooter
Amiga 1200
Amiga 1200
Mensajes: 1027
Registrado: 17 Jul 2012, 09:25
primer_sistema: C64
Ubicación: Alicante

Re: Interface interno teclado PS/2

Mensajepor scooter » 14 Feb 2015, 23:46

Los 8052 'normales' tienen salidas pseudo triestado; transistor a masa y resistencia de pullup, ese esquema permite además que se puedan unir salidas en paralelo y me parece que el teclado también. Tendría que pensarlo.

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 » 14 Feb 2015, 23:53

scooter escribió:Los 8052 'normales' tienen salidas pseudo triestado; transistor a masa y resistencia de pullup, ese esquema permite además que se puedan unir salidas en paralelo y me parece que el teclado también. Tendría que pensarlo.

Exacto. Esa es la configuración cuando configuro una salida en colector abierto. La resistencia de pullup interna es grande, alrededor de 100K, y el pullup es a 3.3V no a 5V. Por estas dos últimas razones, no sé qué puede pasar si conecto estas salidas configuradas de esta forma en paralelo con el teclado existente, a las entradas de columnas de la ULA, que contienen un pullup a 5V. La teoría dice que no debería haber ningún problema, pero lo cierto es que no lo he comprobado. Por eso decía que en esa situación puede que funcione, y puede que no. Lo malo es que no tengo tiempo ahora (estoy preparando el material para la asignatura del segundo cuatrimestre) para pararme a probarlo.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
wilco2009
MSX Turbo R
MSX Turbo R
Mensajes: 397
Registrado: 29 Ago 2013, 15:48
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: ZX81
consola_favorita: Sega Master System
Primera consola: Atari 2600

Re: Interface interno teclado PS/2

Mensajepor wilco2009 » 15 Feb 2015, 00:00

mcleod_ideafix escribió: una resistencia de 10K entre la salida del microcontrolador y el conector de teclado hará que la ULA ni se entere de lo que el microcontrolador envía. En todo caso, lo de los diodos, con el cátodo mirando al 8051.


Lo digo desde el lado del que es novato en esto de la electrónica, yo siempre he sido de software.
Yo he intercalado una resistencia de 10k entre una gal y el bus de datos para solucionar un problema que tenia con mi interface de joystick y algunos modelos de spectrum y funcionaba. De hecho sin la resistencia o con valores inferiores me bloqueaba el teclado. Sin embargo en otros spectrums era suficiente con una resistencia de 1k5.

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 Feb 2015, 00:22

wilco2009 escribió:Yo he intercalado una resistencia de 10k entre una gal y el bus de datos para solucionar un problema que tenia con mi interface de joystick y algunos modelos de spectrum y funcionaba. De hecho sin la resistencia me bloqueaba el teclado.

Sí, entiendo por qué necesitas ahí las resistencias (aunque 10K es mucho, me parece a mi). En este caso no hay que "atacar" al bus de datos, sino a un bus interno de la ULA. En el Harlequin sería equivalente ese bus interno a las entradas de un 74HCT245 que tiene (el que provoca un poco de sordera en el clon si se usa el chip original).

Aquí lo que tenemos es algo como esto...
ula_y_c8051.jpg
ula_y_c8051.jpg (35.87 KiB) Visto 1048 veces


Y lo que no tengo muy claro es cómo se portará el conjunto. Repito que todo apunta a que sí debería funcionar, pero no lo he comprobado. Ni más ni menos que eso. No hay que añadir componentes a lo que ya hay. "Debería" poder funcionar, pero hasta que no haga la prueba, no lo sabré seguro.

-- Actualizado 15 Feb 2015, 02:13 --

Antonio, la placa ya está rediseñada con el 340, de 48 pines. No he quitado salvo una resistencia, las demás, según el esquema de referencia de la propia Silicon Labs, hacen falta. ¿En qué parte del datasheet has visto tú otra cosa?
Al final queda de unos 6,5cm x 4,5cm (en la parte del saliente). En la parte que no es del saliente es más estrecha, del orden de unos 3cm o así.

Aparte del 340, y de la resistencia que sobra, el único cambio que he hecho es intercalar una ferrita, y un 2N2222 en el circuito de reset, ya que en algunos prototipos vi que el circuito metía demasiado ruido al Spectrum. Esto es para evitar que ese pin, que está puesto como salida, drene demasiada corriente cuando reciba toda la carga del condensador que el Spectrum tiene en placa base como parte de la célula de reset. En el diseño original eso ha ocasionado que el micro se resetee, o pierda la configuración. Con el transistor espero que no pase nada de esto :)

El array de resistencias RN1 puede que haga falta, y puede que no. En las pruebas que hice hace ya..... tela de años, tuve que ponerlo porque si no, no era capaz de leer la entrada. Se ve que con el pullup interno no era suficiente. De todas formas, y como yo también recibo plaquita, en cuanto la tenga y la suelde podré comprobar por mi mismo si hace falta o no el array.

¿Se te ha ocurrido alguna solución para el tema de las conexiones entre el Spectrum y la plaquita? En su día utilicé conectores.... no recuerdo el nombre. En las fotos que se han puesto del montaje se ve qué tipo de conectores digo. No son baratos, así que si hay alguna otra opción, tal como tiras de pines moldeados macho-hembra, pues quizás abarate la cosa un poco. Para las conexiones con los conectores Molex del Spectrum, la solución que propongo en el artículo es rápida y fiable, y creo que hasta barata. Como cable solía usar los cablecillos de dentro de un cable ethernet. Son 4 pares, es decir, 8 cables, que vienen bien para las semifilas, y luego se necesitan 5 más para las columnas, y otros 4 para conectar alimentación, masa, reset y señal de acceso a la ULA.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

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 » 15 Feb 2015, 03:04

mcleod_ideafix escribió: Como cable solía usar los cablecillos de dentro de un cable ethernet. Son 4 pares, es decir, 8 cables, que vienen bien para las semifilas, y luego se necesitan 5 más para las columnas, y otros 4 para conectar alimentación, masa, reset y señal de acceso a la ULA.


Iba a sugerir eso mismo. De hecho, los que van a los conectores del teclado se pueden incluso mantener dentro de su funda, para que tengamos menos manojos de cables sueltos.

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 » 21 Feb 2015, 12:31

¿Algún avance? [-o<

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

Re: Interface interno teclado PS/2

Mensajepor antoniovillena » 21 Feb 2015, 12:34

antoniovillena escribió:Si consigues meter el diseño en un tamaño de 4x8 yo me puedo encargar con dos condiciones:
  • Sólo 10 placas, no más.
  • Tiene que ser rápido, no más de una semana porque el otro diseño que voy a panelizar está casi listo.


Ha pasado más de una semana y no sé si el diseño está acabado ya. Esperaré un par de días más y si para entonces no hay un diseño acabado lo pospongo un tiempo indeterminado.

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 » 21 Feb 2015, 13:59

¿El diseño lo estaba haciendo mcleod_ideafix? Le escribiría para ver cómo lleva el tema, pero en este foro todavía no puedo enviar mensajes privados. ¿Se puede encargar alguien?

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 » 21 Feb 2015, 16:00

Lo terminé la semana pasada. Puedes verlo en el repositorio. Sólo me falta comprobar que los dos taladros están en su sitio.
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: 1998
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 3 veces

Re: Interface interno teclado PS/2

Mensajepor antoniovillena » 21 Feb 2015, 17:11

mcleod_ideafix escribió:Lo terminé la semana pasada. Puedes verlo en el repositorio. Sólo me falta comprobar que los dos taladros están en su sitio.


Ok. Yo me pongo a panelizar y creo el fichero panelizado en la misma carpeta. Si tienes que hacer alguna modificación una vez lo tenga panelizado, hazla por favor sobre el diseño panelizado que es el que enviaré a fabricar.

-- Actualizado 21 Feb 2015, 18:01 --

McLeod, ya he panelizado. Échale un vistazo a panelizada.brd en la misma carpeta que tu proyecto para ver si he puesto el agujero en su sitio. En cuanto me des el visto bueno envío los gerber a seeedstudio.

-- Actualizado 21 Feb 2015, 18:37 --

Esta es la lista de componentes que voy a pedir. Salvo los condensadores de 100nF que los enviaré un poco más pequeños (0603) porque son los que tengo en stock, todo lo demás que enviaré será exacto a la lista. Los LEDs serán verdes.

Código: Seleccionar todo

Qt. Part      Value     Device                Package      Description
----------------------------------------------------------------------
1   IC1       C8051F340 C8051F340             TQFP48       Full Speed USB Flash MCU
3   C1-C3     100nF     C-EUC0805K            C0805K       CAPACITOR, European symbol
3   C4-C6     1uF       C-EUC0805K            C0805K       CAPACITOR, European symbol
1   C7        100uF     CPOL-EUE2,5-6E        E2,5-6E      POLARIZED CAPACITOR, European symbol
1   R1        470       R-US_M0805            M0805        RESISTOR, American symbol
2   R2, R3    10K       R-US_M0805            M0805        RESISTOR, American symbol
2   R4, R5    1K        R-US_M0805            M0805        RESISTOR, American symbol
1   LED1                LEDCHIP-LED0805       CHIP-LED0805 LED
1   L1                  WE-CBF_0805           0805         SMD EMI Suppression Ferrite Beads
1   Q1        2N2222    TRANSISTOR_NPNSOT23-3 SOT23-3      Transistor NPN
1   RN1                 RN08                  RN-9         RESISTOR NETWORK
1   PS/2                SSV-G06               SSV-BC06     YAMAICHI CONNECTOR
1   C2/JTAG             MA05-2                MA05-2       PIN HEADER
1   COLUMNAS            MA05-1                MA05-1       PIN HEADER
1   SEMIFILAS           MA08-1                MA08-1       PIN HEADER
1   CTRL                MA04-1                MA04-1       PIN HEADER


Volver a “Sinclair/Spectrum”

¿Quién está conectado?

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