Se ha completado el cambio de version del foro. Podeis comunicar los problemas que encontreis o lo que echeis de menos. Se han añadido mas temas de colores claros al foro. El proflat es muy adecuado para móviles, pruebalo y nos comentas.

SpecKey v2

Moderador: Fundadores

Avatar de Usuario
Kyp
Demonio segundo orden
Demonio segundo orden
Mensajes: 1531
Registrado: 30 Sep 2013, 14:54
Ubicación: Madrid
Contactar:

SpecKey v2

Mensaje por Kyp » 22 Sep 2017, 11:50

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, R: recibido):
2 - kit     -    - Kyp
1 - montado - P  - Mikes
1 - montado - P  - Sinclair200
1 - kit     - PE - BCH
1 - kit     - P  - Flopping
1 - kit     - P  - Wilco
1 - kit     -    - Julitium
1 - kit     - PE - Jzx

Última edición por Kyp el 11 Oct 2017, 16:26, editado 9 veces en total.

Avatar de Usuario
Kyp
Demonio segundo orden
Demonio segundo orden
Mensajes: 1531
Registrado: 30 Sep 2013, 14:54
Ubicación: Madrid
Contactar:

Re: SpecKey v2

Mensaje por Kyp » 22 Sep 2017, 11:51

Unas fotos:

Imagen

Imagen

Imagen

Imagen
Última edición por Kyp el 23 Sep 2017, 16:47, editado 4 veces en total.

Avatar de Usuario
wilco2009
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 6714
Registrado: 01 Abr 2013, 23:47
Ubicación: Valencia
Contactar:

Re: SpecKey v2

Mensaje por wilco2009 » 22 Sep 2017, 16:10

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
Demonio segundo orden
Demonio segundo orden
Mensajes: 1916
Registrado: 08 Nov 2013, 14:15
Ubicación: Benaguasil (València)
Contactar:

Re: SpecKey v2

Mensaje por Mikes » 22 Sep 2017, 20:13

Apúntame va.. Yo no soy valiente, quiero el pack completo (como siempre) :)

Avatar de Usuario
sinclair200
Moderador
Moderador
Mensajes: 7217
Registrado: 28 Mar 2014, 18:25
Ubicación: Madrid
Contactar:

Re: SpecKey v2

Mensaje por sinclair200 » 22 Sep 2017, 23:43

Yo aunque tampoco veo las fotos, quiero uno también, que sino me gana el cartero..... :D :D
Imagen
Z80 INSIDE.........
WANTED: SINCLAIR ZX80, DRAGON 200 :D

Avatar de Usuario
dandare
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 2904
Registrado: 09 Feb 2016, 15:09
Ubicación: Madrid, Córdoba, Luanco
Contactar:

Re: SpecKey v2

Mensaje por dandare » 23 Sep 2017, 02:19

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

Avatar de Usuario
Kyp
Demonio segundo orden
Demonio segundo orden
Mensajes: 1531
Registrado: 30 Sep 2013, 14:54
Ubicación: Madrid
Contactar:

Re: SpecKey v2

Mensaje por Kyp » 23 Sep 2017, 16:26

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: 2904
Registrado: 09 Feb 2016, 15:09
Ubicación: Madrid, Córdoba, Luanco
Contactar:

Re: SpecKey v2

Mensaje por dandare » 23 Sep 2017, 17:36

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

Avatar de Usuario
sinclair200
Moderador
Moderador
Mensajes: 7217
Registrado: 28 Mar 2014, 18:25
Ubicación: Madrid
Contactar:

Re: SpecKey v2

Mensaje por sinclair200 » 23 Sep 2017, 19:40

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

Apuntados Mikes y Sinclair200
Muchas gracias Ricardo.....
Imagen
Z80 INSIDE.........
WANTED: SINCLAIR ZX80, DRAGON 200 :D

Avatar de Usuario
Kyp
Demonio segundo orden
Demonio segundo orden
Mensajes: 1531
Registrado: 30 Sep 2013, 14:54
Ubicación: Madrid
Contactar:

Re: SpecKey v2

Mensaje por Kyp » 23 Sep 2017, 20:35

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

¿Quién está conectado?

Usuarios navegando por este Foro: Google [Bot] y 2 invitados