Interface interno teclado PS/2

Sinclair QL, ZX81, +2, +3, 128K ...
Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Re: Interface interno teclado PS/2

Mensajepor antoniovillena » 14 Feb 2015, 16:11

mcleod_ideafix escribió:
antoniovillena escribió:Los chips que tengo son LQFP48 con lo que habría que rehacer el diseño de la PCB.

Arrrggggg!
Esto se avisa antes.... estaba ya rutando la versión "estrechita" de la placa, con el C8051F343 original. ¿Qué chip es el que tienes tú entonces?
Por cierto... que si se quiere que el chip venga programado, vuelvo a repetir, la placa tiene que estar soldada. Programar el chip fuera de la placa necesita de un adaptador socket LQFP48, y los de 48 pines van por los 40 euros y subiendo. Yo no tengo de estos adaptadores. ¿Cómo se resuelve el problema de dar el chip programado?


El F340. Antes de rutear quita las resistencias que sobran. Abre el fichero hardware/otros/jupiterace_smd/jupace19.sch del repositorio, la parte de la derecha. Lo comprobé a golpe de datasheet.

Sinclair escribió:No sé que entiendes tú por competencia desleal, la verdad pero por mi no debés preocuparte.

Me interesa sobre lo que has dicho, cómo tienes pensado compatibilizar el Interface a externo y si los vas a vender montados en kit o de ambas formas.

Por otro lado creo que sería interesante que toda esta información se vertiera directamente y de primera mano en el foro dónde se ha abierto la lista de interesados.


Voy a ver lo que hace McLeod y si puedo compatibilizarlo. Eso sí, los conectores edge no irían incluidos. Los voy a vender en kit sin montar, pero visto lo que dice McLeod daré la opción de vender soldado y programado el micro. Ok, lo pongo en va-de-retro.com.

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5316
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: 12 veces
Gracias recibidas: 53 veces
Contactar:

Re: Interface interno teclado PS/2

Mensajepor mcleod_ideafix » 14 Feb 2015, 16:12

antoniovillena escribió:Los chips que tengo son LQFP48 con lo que habría que rehacer el diseño de la PCB. Si quieres la puedes poner en el repositorio del ZX-Uno y la diseñamos entre los 2 (nos vamos turnando). Me gustaría hacer que la PCB valga también como interface externo

Para ello necesitas:
- Un transceiver que soporte al menos 5 bits, que dé salidas en colector abierto, y que se pueda poner en modo triestado. Por ejemplo, el 74LS641
- Un pequeño circuito que decodifique la condición IORQ = 0, A0 = 0, RD = 0, y lo use tanto como señal IORQULA para el microcontrolador, como señal de habilitación del transceiver.

Las 8 entradas SF1..SF8 irían a la parte alta del bus de direcciones (A8-A15, pero cuidado, que no es en ese orden). Las 5 salidas del transceiver irían a D0-D4 en el bus de datos. RESET, pues al pin de RESET, y por supuesto, IORQ, RD y A0. La alimentación sería a 5V directos del regulador, y si me apuras, con una ferrita SMD en medio.
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: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Re: Interface interno teclado PS/2

Mensajepor antoniovillena » 14 Feb 2015, 16:24

Vale, entonces se queda en sólo interno. Estaba buscando la web de zxprojects pero no va.

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5316
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: 12 veces
Gracias recibidas: 53 veces
Contactar:

Re: Interface interno teclado PS/2

Mensajepor mcleod_ideafix » 14 Feb 2015, 16:30

antoniovillena escribió:El F340. Antes de rutear quita las resistencias que sobran. Abre el fichero hardware/otros/jupiterace_smd/jupace19.sch del repositorio, la parte de la derecha. Lo comprobé a golpe de datasheet.

OK, lo veo, pero... ¿por qué has quitado el pullup de las dos líneas que van del conector del teclado? El microcontrolador puede poner pullups en las entradas, sí, pero son muy débiles (100K) y no sé si será suficiente con ellas. Es por eso que había puesto dos pullups de 10K.

He dejado el proyecto en formato Eagle en el repositorio, en al carpeta hardware/otros . Si vas a cambiar dimensiones, etc, ten cuidado de no cambiar el taladro que hay cerca de la parte superior derecha, y el saliente que va (ya has visto las fotos) enganchado en el tornillo que está más cerca del altavoz del Spectrum. Los conectores que van a filas, columnas, alimentación y control, yo los pondría cerca del borde de la carcasa, es decir, a la derecha de la placa, como están ahora, para evitar tener que ponerlos acodados. En esa zona no chocan con nada, pero si los pones en el borde izquierdo, chocan con la estructura del teclado del Plus.

El array de resistencias RN1 le pasa como con los pullups del teclado: que no sé a ciencia cierta si será suficiente con el pullup interno del microcontrolador o no. Recuerdo vagamente que al principio no se lo puse, y aquello no iba, hasta que no puse el array, pero también pudiera ser que por aquella época no dominaba demasiado a este microcontrolador y no activara los pullups internos. Por si acaso, y si no molesta mucho, yo dejaría la huella. Idem con las dos resistencias de pullup del PS/2. El resto, si lo has confirmado con el datasheet, ponlo como en tu esquemático del Jupiter ACE.

-- Actualizado 14 Feb 2015, 16:32 --

antoniovillena escribió:Vale, entonces se queda en sólo interno. Estaba buscando la web de zxprojects pero no va.

La tengo en mantenimiento, pero no vas a encontrar nada que no estuviera en la paginilla original que hice para este proyecto:
http://www.atc.us.es/~rodriguj/interface_ps2_speccy

Si lo que andabas buscando era la versión externa, no la hice yo, la hizo Ben Veersteg.
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: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Re: Interface interno teclado PS/2

Mensajepor antoniovillena » 14 Feb 2015, 16:38

mcleod_ideafix escribió:Si lo que andabas buscando era la versión externa, no la hice yo, la hizo Ben Veersteg.


Sí, buscaba una foto para ver el tamaño, pero ya la he encontrado por otro lado.

http://schombi.de/onewebstatic/c6d6fbcdc8-PS2KEYB.jpg

Viendo las dimensiones tan reducidas va a ser difícil hacerlo externo.

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5316
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: 12 veces
Gracias recibidas: 53 veces
Contactar:

Re: Interface interno teclado PS/2

Mensajepor mcleod_ideafix » 14 Feb 2015, 16:42

antoniovillena escribió:Viendo las dimensiones tan reducidas va a ser difícil hacerlo externo.

Salvo que se haga una placa aparte que tenga conectores hembra enfrentados a los conectores macho de la versión interna, o sea, que la versión interna se "pinche" en esta placa, que le llevaría:
- Alimentación
- Señales de RESET, e IORQULA
- Señales A8-A15
- Señales D0-D4

La placa, además de por supuesto el conector de expansión, tendría un 74HCT32 para decodificar la condición IORQ=0, A0=0, RD=0, y así generar la señal IORQULA, y un transceiver tipo 74LS621 o del estilo (salidas en colector abierto), para que conectara el bus de 5 pines del microcontrolador a D0-D4.

Pero vamos, mi opinión personal es que te olvides de una versión externa, que para eso ya existen las interfaces que han hecho en VDR y la que vende Ben. Si alguien quiere una versión externa a partir de ésta, poder ya has visto que se puede hacer, aunque probablemente no sea tan barata como pensabas, si hay que meter dos placas.
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: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Re: Interface interno teclado PS/2

Mensajepor antoniovillena » 14 Feb 2015, 16:52

Vale, convencido. Es que pensaba que la única diferencia entre ambas versiones era el conector edge.

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5316
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: 12 veces
Gracias recibidas: 53 veces
Contactar:

Re: Interface interno teclado PS/2

Mensajepor mcleod_ideafix » 14 Feb 2015, 21:19

Sobre la duda de si podría usarse a la vez que el teclado original: no lo he probado, pero no contaría con ello. Las semifilas (la tira de 8 pines) no necesita diodos para conectarse a ningún sitio (ya los pone la placa del Spectrum). El conector de columnas usa salidas en totem-pole, no en colector abierto, por lo que con el firmware tal como está, NO pueden usarse a la vez. Si cambio las salidas a colector abierto, modificando el firmware puede pasar que ambos teclados puedas coexistir, o que el adaptador PS/2 deje de funcionar.

Este adaptador se pensó desde el principio como un sustituto del teclado interno, y nunca pensé en que ambos tuvieran que coexistir, dado que el adaptador ocupa los dos conectores de teclado.
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: 401
Registrado: 29 Ago 2013, 15:48
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: ZX81
consola_favorita: Sega Master System
Primera consola: Atari 2600
Gracias dadas: 1 vez
Gracias recibidas: 7 veces

Re: Interface interno teclado PS/2

Mensajepor wilco2009 » 14 Feb 2015, 22:19

mcleod_ideafix escribió:Sobre la duda de si podría usarse a la vez que el teclado original: no lo he probado, pero no contaría con ello. Las semifilas (la tira de 8 pines) no necesita diodos para conectarse a ningún sitio (ya los pone la placa del Spectrum). El conector de columnas usa salidas en totem-pole, no en colector abierto, por lo que con el firmware tal como está, NO pueden usarse a la vez. Si cambio las salidas a colector abierto, modificando el firmware puede pasar que ambos teclados puedas coexistir, o que el adaptador PS/2 deje de funcionar.

Este adaptador se pensó desde el principio como un sustituto del teclado interno, y nunca pensé en que ambos tuvieran que coexistir, dado que el adaptador ocupa los dos conectores de teclado.


Segun entiendo, si las salidas son totem-pole evidentemente cuando pones a +5v las líneas que corresponden a las teclas no pulsadas está claro que es imposible que funcione simultáneamente con un teclado de membrana, ya que venga lo que venga del otro teclado esa entrada de la ULA estará a +5V.

Una solución (quizás la más sencilla si se puede, ya que aunque mi proyecto final de carrera usaba un 8051 ya ni mi acuerdo de nada), sería la que tú comentas de configurar como colector abierto. En principio parece que deberían de funcionar simultáneamente sin problemas.

Otra posible solución que se me ocurre es dejar las E/S tal y como están e insertar 5 resistencias de 10K y 5 diodos con el cátodo hacia el 8051, entre el conector de las semifilas y el microcontrolador. Esto creo que debería funcionar también ¿no es así?

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5316
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: 12 veces
Gracias recibidas: 53 veces
Contactar:

Re: Interface interno teclado PS/2

Mensajepor mcleod_ideafix » 14 Feb 2015, 23:18

wilco2009 escribió:Otra posible solución que se me ocurre es dejar las E/S tal y como están e insertar 5 resistencias de 10K y 5 diodos con el cátodo hacia el 8051, entre el conector de las semifilas y el microcontrolador. Esto creo que debería funcionar también ¿no es así?

Las semifilas son entradas al microcontrolador. No hay que hacerles nada, salvo quizás el pullup que se hace con un array de resistencias, por si el pullup interno del microcontrolador no fuera suficiente. Lo que son salidas son las columnas (el conector de 5 pines). En esas, 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.

Pero no voy a cambiar el circuito para añadir esos diodos, más que nada porque en su momento ya hice las pruebas que quería hacer y tengo un circuito que sé que funciona. Si me pongo a añadir cosas que no he probado, me puedo encontrar con que haya que hacer ñapas a la plaquita una vez entregada. Yo ya he avisado que el diseño se hizo para sustituir al teclado interno, y nunca pensé en que fueran a coexistir.
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 14 invitados