SpecKey v2

Proyectos de hardware con sus esquemáticos y si llevan software en fuente

Moderadores: cacharreo, Fundadores

Reglas del Foro
Aquí solo tienen cabida proyectos de hardware que incluyan siempre al menos sus esquemáticos para poder reproducirlos si llevan componentes electrónicos, y si es posible los ficheros del programa en que se hacen, los diseños de las placas, los gerber, etc. Si llevan algún tipo de software asociado debe estar diponible el código fuente

Para los que no cumplen estas condiciones se debe postear en el foro de proyectos generales.
Avatar de Usuario
Kyp !Sinclair 1
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3376
Registrado: 30 Sep 2013, 14:54
Ubicación: Madrid
Has thanked: 28 times
Been thanked: 146 times

SpecKey v2

Mensaje por Kyp »

Este proyecto ya ha pasado por aquí en varias ocasiones:

1ª aproximación por antoniovillena: viewtopic.php?f=63&t=1920
1ª tirada por sinclair: viewtopic.php?f=63&t=1950
2ª tirada por sinclair: viewtopic.php?f=63&t=2481

Y se basa en diseño original de JROK:
http://www.jrok.com/project/speckey/spec_key.html

Aquí tenéis los archivos para programar el microcontrolador y la CPLD:
https://1drv.ms/f/s!Aj2oYYIgITnQkFQg8MR1W_dsWOvM
speckey 2.0.hex para el micro (es el mismo que el original del JROK).
speckey 2.0.jed para la CPLD (es el que usa la nueva CPLD, no es compatible con los diseños anteriores).

Yo compré uno de los del 1er lote y sigo usándolo a menudo.

El caso es que en uno de mis experimentos tuve la feliz idea de quitar la CPLD para probar otra cosa y en una de las pruebas durante la grabación se quedó 'tonta' y no podía regrabarla. Afortunadamente un compañero del foro pudo 'revivirla' (hacía falta un adaptador que entonces no tenía).

Eso me llevó a buscar chips de repuesto y descubrí que al ser un modelo descatalogado es muy difícil de encontrar, así que decidí rediseñar el circuito con un modelo de CPLD más moderno que es fácil de encontrar.

El resultado es éste una nueva versión de la placa con los siguientes cambios:
- Todos los componentes son SMD.
- No lleva extensión de bus, está pensada para ser usada junto con una placa expansora de bus de las que hemos hecho tanto flopping como yo mismo.
- Usa una CPLD XC9572XL. Es una versión más moderna que funciona a 3,3V (la original XC9572, sin el XL, si funciona a 5V) pero que es tolerante a las señales de 5V del Spectrum. Lo más importante es que aun se fabrica así que es fácil de encontrar.
- He añadido un regulador de 3,3V, un AMS1777-3.3 con sus dos condensadores de 10uF

- He incorporado los cambios que hicimos wilco y yo para poder usar a la vez tanto el teclado original como el PS/2 (en el diseño original, al conectar el adaptador quedaba inutilizado el teclado original del Spectrum).

- He conectados las señales RESET y NMI para en un futuro (requiere un cambio en el código del microcontrolador que está por hacer) poder resetear o generar una NMI desde el teclado.

El precio 'todo incluido' (montaje y envío por correo ordinario) es de 24€ y el precio 'para valientes' (sin montar y con envío) 16€.

Importante: El micro puedo enviarlo grabado pero la CPLD no porque hay que soldarla a la placa para poder grabarla así que hace falta el cable de plataforma Xilinx para grabarla una vez soldada.

Lista de Interesados (P: pagado, E: enviado):
2 - kit     -    - Kyp
1 - montado - PE - Mikes
1 - montado - PE - Sinclair200
1 - kit     - PE - BCH
1 - kit     - PE - Flopping
1 - kit     - PE - Wilco
1 - kit     - PE - Julitium
1 - kit     - PE - Jzx
1 - kit     - PE - Julio

Última edición por Kyp el 25 Mar 2022, 13:59, editado 11 veces en total.
Avatar de Usuario
Kyp !Sinclair 1
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3376
Registrado: 30 Sep 2013, 14:54
Ubicación: Madrid
Has thanked: 28 times
Been thanked: 146 times

Re: SpecKey v2

Mensaje por Kyp »

Unas fotos:

Imagen
Imagen
Imagen
Imagen
Última edición por Kyp el 13 Mar 2019, 21:17, editado 5 veces en total.
Avatar de Usuario
wilco2009 !Sinclair 1
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 8152
Registrado: 01 Abr 2013, 23:47
Ubicación: Valencia
Has thanked: 47 times
Been thanked: 101 times

Re: SpecKey v2

Mensaje por wilco2009 »

No se ven las fotos.
"Aprender a volar es todo un arte. Aunque sólo hay que cogerle el truco. Consiste en tirarse al suelo y fallar".

Douglas Adams. Guía del autoestopista galáctico.
Avatar de Usuario
Mikes España - Com. Valenciana
Moderador
Moderador
Mensajes: 3385
Registrado: 08 Nov 2013, 14:15
Ubicación: Benaguasil (València)
Has thanked: 2 times
Been thanked: 139 times

Re: SpecKey v2

Mensaje por Mikes »

Apúntame va.. Yo no soy valiente, quiero el pack completo (como siempre) :)
"Mikes solo hay uno"
Mi 'Paraeta'
Avatar de Usuario
sinclair200 España
Moderador
Moderador
Mensajes: 9988
Registrado: 28 Mar 2014, 18:25
Ubicación: Madrid
Has thanked: 8 times
Been thanked: 177 times

Re: SpecKey v2

Mensaje por sinclair200 »

Yo aunque tampoco veo las fotos, quiero uno también, que sino me gana el cartero..... :D :D
Imagen
Z80 INSIDE.........
WANTED:…………. CPC 6128 british
Avatar de Usuario
dandare
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3718
Registrado: 09 Feb 2016, 15:09
Ubicación: I Register
Been thanked: 6 times

Re: SpecKey v2

Mensaje por dandare »

Kyp escribió: - He conectados las señales RESET y NMI para en un futuro (requiere un cambio en el código del microcontrolador que está por hacer) poder resetear o generar una NMI desde el teclado.
Kyp, pásame el código del microcontrolador y le metemos un alt-control-del para el reset :-]
Imagen
Imagen
Avatar de Usuario
Kyp !Sinclair 1
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3376
Registrado: 30 Sep 2013, 14:54
Ubicación: Madrid
Has thanked: 28 times
Been thanked: 146 times

Re: SpecKey v2

Mensaje por Kyp »

He vuelto a usar PostImages y ya funcionan las fotos.

Apuntados Mikes y Sinclair200
dandare escribió:
Kyp escribió: - He conectados las señales RESET y NMI para en un futuro (requiere un cambio en el código del microcontrolador que está por hacer) poder resetear o generar una NMI desde el teclado.
Kyp, pásame el código del microcontrolador y le metemos un alt-control-del para el reset :-]
Los tienes en la web de Jrok: http://www.jrok.com/project/speckey/speckey_avr_src.zip

El código del uC no lo he mirado mucho (es ensamblador :o ). Esto es lo que espera la CPLD:
- Hay tres líneas de salida desde el uC (entradas en la CPLD), RESET, CLOCK y DATA.
- La CPLD tiene una 'memoria' de 40 bits y un contador que va incrementando en el flanco de bajada de CLOCK.
- En el flanco de subida de CLOCK lee el dato de la tecla correspondiente indicado por el valor del contador.
- El uC pone RESET a 1 para poner a 0 el contador.
- La frecuencia a la que se actualiza el estado del teclado la controla el uC.
- La CPLD simplemente guarda el estado de la matriz y pone el valor que corresponda en el bus de datos cuando se accede al puerto del teclado.

Mi idea es que el uC envíe dos 'teclas' más para indicar si hay que activar el RESET o la NMI en el EDGE.

La combinación de Ctr+Alt+Del/Backspace no está mal pero es un rollo de usar porque hacen falta las dos manos. Yo prefiero usar F12 (reset) y F5 (nmi). Se pueden poner las dos posibilidades como hago en mi core del ZX-Uno :|
Avatar de Usuario
dandare
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3718
Registrado: 09 Feb 2016, 15:09
Ubicación: I Register
Been thanked: 6 times

Re: SpecKey v2

Mensaje por dandare »

Ricardo, hay una tabla de lookup en el código que se llama speccy_LUT.
Esta tabla dice literalmente:
; form of the table is
;
; value to set A
; value to set B
;
; depending on the key pressed it can set 5 bits on upto TWO
; spectrum rows ( A or B )
;
; the bit format of the 'keybits':
;
; Bit#
; 7 speccy key bit 4
; 6 speccy key bit 3
; 5 speccy key bit 2
; 4 speccy key bit 1
; 3 speccy key bit 0
; 210 speccy key row ( 0 to 7 )

y este es un ejemplo de lo que manda para el espacio:
.db 0b00001111 ,0 ;0x29 Space
o para la , que usa dos teclas pulsadas:
.db 0b00010111 ,0b01000111 ;0x41 ',' -- (symbol shift) 'N'

para el resto de las entradas del teclado sin usar, tienes algo como esto:
.db 0 ,0 ;0x40
Donde dice que saque 2 ceros, que la CPLD interpretará como "nada" para el código de teclado PS/2 0x40, en este ejemplo.

tienes que elegir un formato de mensaje, el que quieras, que signifique RESET y NMI para tu CPLD.
o una combinación que no existe y que sea facilmente identificable en el código CPLD. Un ejemplo es todas las teclas pulsadas, las 10 en el keyrow 0 y en el 6 para reset y en el 1 y el 7 para NMI.

Si necesitas algo más elaborado, se puede tocar la rutina "output_the_keys" pero creo que con tocar la tabla de Lookup (LUT) vale.
Imagen
Imagen
Avatar de Usuario
sinclair200 España
Moderador
Moderador
Mensajes: 9988
Registrado: 28 Mar 2014, 18:25
Ubicación: Madrid
Has thanked: 8 times
Been thanked: 177 times

Re: SpecKey v2

Mensaje por sinclair200 »

Kyp escribió:He vuelto a usar PostImages y ya funcionan las fotos.

Apuntados Mikes y Sinclair200
Muchas gracias Ricardo.....
Imagen
Z80 INSIDE.........
WANTED:…………. CPC 6128 british
Avatar de Usuario
Kyp !Sinclair 1
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3376
Registrado: 30 Sep 2013, 14:54
Ubicación: Madrid
Has thanked: 28 times
Been thanked: 146 times

Re: SpecKey v2

Mensaje por Kyp »

dandare escribió: tienes que elegir un formato de mensaje, el que quieras, que signifique RESET y NMI para tu CPLD.
o una combinación que no existe y que sea facilmente identificable en el código CPLD. Un ejemplo es todas las teclas pulsadas, las 10 en el keyrow 0 y en el 6 para reset y en el 1 y el 7 para NMI.
La opción de usar una combinación que no existe no es posible. Todas las combinaciones de teclas son válidas. Por ejemplo, hay juegos de Ultimate como SabreWulf que usa una semifila completa para jugar con teclado.
He modificado el código para crear una semifila 'extra' y enviar 5 teclas más a la cpld, aunque solo use dos. Para no complicarme mucho voy a usar F5 y F12 para la NMI y el RESET.

Solo me falta probarlo pero eso es un poco lío al ser el uC smd.

Os iré contando....
Responder

Volver a “Proyectos de hardware abiertos”