Proyecto ZDP-80 - Nuestro microordenador desde cero [#01]

BBC, Dragon, Sam Coupé, Oric ...
Avatar de Usuario
radastan
Amiga 2500
Amiga 2500
Mensajes: 4542
Registrado: 11 Jun 2007, 19:29
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Sega Genesis/Megadrive
Primera consola: TV Games/Pong Clone
Ubicación: Córdoba
Gracias dadas: 9 veces
Gracias recibidas: 40 veces
Contactar:

Re: Proyecto ZDP-80 - Nuestro microordenador desde cero [#01

Mensajepor radastan » 03 Oct 2012, 12:43

¡Ops! es lo que pasa por estar siempre pensando en una señal de TV, tienes razón en todo.

En vídeo compuesto sólo tenemos la señal de retrazo vertical y la horizontal, la forma de representar una línea si es correcta (salvo los niveles que correctamente pasan a ser 0 para el sincronismo, 0.3 para negro y 0.7 para blanco).

De todas formas el circuito es el mismo que el del Jupiter Ace para obtener las señales de sincronismo, ¿no?

PD: por algo pedía ayuda para el proyecto, estoy verdecillo en ciertas cosas como esta
Yo tengo una máquina del tiempo, se llama ZX Spectrum, siempre me devuelve a los buenos momentos.
(\.../) (\.../) (\.../) (\.../)
( *.*) ('.'= ) ('.'= ) ('.'= )
(")_(") (")_(") (")_(") (")_(")
╔═══╦═══╦═══╦══╦══╗
║╔═╗║╔═╗║╔═╗╠╣╠╩╣╠╝
║║─║║╚══╣║─╚╝║║─║║
║╚═╝╠══╗║║─╔╗║║─║║
║╔═╗║╚═╝║╚═╝╠╣╠╦╣╠╗
╚╝─╚╩═══╩═══╩══╩══╝

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: 54 veces
Contactar:

Re: Proyecto ZDP-80 - Nuestro microordenador desde cero [#01

Mensajepor mcleod_ideafix » 03 Oct 2012, 12:46

radastan escribió:¡Déjanos ir poco a poco McLeod!

Ups! Lo siento :) Creo que hasta ahora no he captado el espíritu de este proyecto. No caí en que la idea es aprender desde 0 cómo se hace el microordenador. Vamos, que podeis usar como libro de texto el de Chris Smith :D

Bueno, aclarado el tema, os dejo hacer. No daré la solución al tema del video :P Es mejor que lo averigüeis por vosotros mismos. Eso sí: yo con el Jupiter ACE ZdP y el clon Harlequin-Superfo estoy servido en lo que a lógica discreta se refiere. No me motiva el diseñar algo nuevo usando chips TTL. Me retiro a un segundo (o tercer) plano, y en el hipotético caso de que os atascárais, pues igual puedo echar una mano :)
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
radastan
Amiga 2500
Amiga 2500
Mensajes: 4542
Registrado: 11 Jun 2007, 19:29
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Sega Genesis/Megadrive
Primera consola: TV Games/Pong Clone
Ubicación: Córdoba
Gracias dadas: 9 veces
Gracias recibidas: 40 veces
Contactar:

Re: Proyecto ZDP-80 - Nuestro microordenador desde cero [#01

Mensajepor radastan » 03 Oct 2012, 12:53

mcleod_ideafix escribió:
radastan escribió:¡Déjanos ir poco a poco McLeod!

Ups! Lo siento :) Creo que hasta ahora no he captado el espíritu de este proyecto. No caí en que la idea es aprender desde 0 cómo se hace el microordenador. Vamos, que podeis usar como libro de texto el de Chris Smith :D

Bueno, aclarado el tema, os dejo hacer. No daré la solución al tema del video :P Es mejor que lo averigüeis por vosotros mismos. Eso sí: yo con el Jupiter ACE ZdP y el clon Harlequin-Superfo estoy servido en lo que a lógica discreta se refiere. No me motiva el diseñar algo nuevo usando chips TTL. Me retiro a un segundo (o tercer) plano, y en el hipotético caso de que os atascárais, pues igual puedo echar una mano :)


Hombre, te rogaría que si ves gazapos (como los que has mencionado antes) nos lo digas para no meter la pata. Que hace ya bastantes años de la FP y la carrera y en electrónica digital estoy algo oxidado.

De igual forma, cuando terminemos esto, agradecería que dieras tu particular solución compacta, ya que a mucha gente seguro que le va a interesar tener en plan baratito un chisme de estos para cacharrear (eso de meternos en un equipo sin software y crear TODO desde cero es emocionantísimo, es como volver a los 80). No espero que la gente se vuelque con el proyecto como si fuera la nueva Meca pero seguro que a más de 4 o 5 le interesa tener un chisme físicamente funcionando.

Y por supuesto habrá segundo modelo más potente, pero ese habrá que tirar de PLD's si o si para no volvernos locos.
Yo tengo una máquina del tiempo, se llama ZX Spectrum, siempre me devuelve a los buenos momentos.
(\.../) (\.../) (\.../) (\.../)
( *.*) ('.'= ) ('.'= ) ('.'= )
(")_(") (")_(") (")_(") (")_(")
╔═══╦═══╦═══╦══╦══╗
║╔═╗║╔═╗║╔═╗╠╣╠╩╣╠╝
║║─║║╚══╣║─╚╝║║─║║
║╚═╝╠══╗║║─╔╗║║─║║
║╔═╗║╚═╝║╚═╝╠╣╠╦╣╠╗
╚╝─╚╩═══╩═══╩══╩══╝

Avatar de Usuario
EdgeM
Atari 1040 STf
Atari 1040 STf
Mensajes: 803
Registrado: 01 Feb 2008, 12:55
Gracias dadas: 2 veces
Gracias recibidas: 5 veces

Re: Proyecto ZDP-80 - Nuestro microordenador desde cero [#01

Mensajepor EdgeM » 03 Oct 2012, 13:13

Sólo quiero decir que la idea me parece cojonuda. Por desgracia no voy muy sobrado de tiempo como para aportar cosas, pero seguiré este hilo con interés.

Por cierto, me da pena que no se hable más por aquí del V6Z80p. Me parece un proyecto "similar" (aunque más parecido a lo que quiere hacer mcleod_ideafix), y muy completo. Lo único que le falta es software...

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: 54 veces
Contactar:

Re: Proyecto ZDP-80 - Nuestro microordenador desde cero [#01

Mensajepor mcleod_ideafix » 03 Oct 2012, 13:21

radastan escribió:De todas formas el circuito es el mismo que el del Jupiter Ace para obtener las señales de sincronismo, ¿no?

Si usas el mismo reloj que el ACE, sí, es el mismo. Si usas un reloj diferente, tendrás que cambiar la parte de lógica combinacional que detecta cuándo se ha llegado a una cierta cuenta, para resetear los contadores en el momento oportuno (cuando hayas llegado a tantas cuentas como sean necesarias para obtener 64uS en el caso del contador de píxeles)

De hecho, una vez que se elige la frecuencia de pixel (llamémosla Fp), el número de cuentas de píxeles total (Npt) que hay que hacer en el contador de píxeles para llegar a 64uS viene determinado por: Npt = 64 * Fp
Este valor, Npt, tienes que descomponerlo en la suma de los siguientes valores (que tendrás que calcular o elegir, en su caso):
- Np : el número de píxeles por línea de pantalla (lo tienes que elegir)
- Nb : el número de píxeles que habrá en total entre ambos bordes derecho e izquierdo (se calcula en base a los demás)
- Nfp : el número de cuentas que dura el front porch de la señal de video (el front porch dura 5.8uS, así que Nfp = 5.8 * Fp . Como saldrá un número con decimales, se coge el entero más próximo)
- Nbp : el número de cuentas que dura el back porch (el back porch dura 1.5uS, así que Nbp = 1.5 * Fp . Como saldrá un número con decimales, se coge el entero más próximo)
- Nhs : el número de cuentas que dura el pulso de sincronismo horizontal (dura 4.7uS, así que tenemos Nhs = 4.7 * Fp. Mismas consideraciones que con las señales anteriores)

Debe cumplirse, por tanto que: Npt = Np + Nb + Nfp + Nbp + Nhs

La suma de los valores Nbp + Nhs + Nfp nos da el número de cuentas del intervalo de blanking horizontal. Detectar este intervalo es importante porque la señal de video debe valer 0 durante este período. Si no, pasará como pasó con el ZX80 y los primeros modelos de ZX81, que ponían la señal de video a blanco antes de tiempo.
Este tiempo debe sumar 5.8 + 1.5 + 4.7 = 12uS (de ahí viene que la señal activa de video dure 64 - 12 = 52uS) así que los valores de Nfp, Nhs y Nbp deberán ajustarse en +/-1 unidad de forma que la suma de los tres sea lo más parecida posible al valor Fp * 12

Por último, se calcula el valor Nb despejándolo: Nbp = Npt - (Np + Nfp + Nbp + Nhs). Conviene que sea un valor par, para que al dividirlo entre el tiempo de borde izquierdo y borde derecho, salgan bordes simétricos (aunque un pixel de diferencia en la anchura no se va a notar demasiado)

Con todos estos valores ya puedes construir el circuito que deriva la frecuencia de linea, y genera las señales que indican cuándo estamos pintando "paper", cuándo pintamos "border", cuándo no estamos pintando nada "horizontal blanking" y cuándo ha de generarse el pulso de sincronismo horizontal.

El resultado, para el Jupiter ACE, es la mitad del circuito que has puesto antes en este hilo (la mitad de arriba)

Para un hipotético sistema en el que se quieran representar 320 puntos por línea de pantalla, y que va a trabajar con una frecuencia de reloj de pixel de 8MHz, tendrías:

Npt = 64 * 8 = 512 cuentas
Np = 320 (usamos un ciclo de reloj por pixel. Si en dos ciclos sucesivos se repite la misma información, el resultado es que la resolución horizontal se divide a la mitad -¿a quienes se les ha venido a la cabeza los ladrillopíxeles del Amstrad?- )
Nfp = 5.8 * 8 = 46.4 (tomaremos 46)
Nbp = 1.5 * 8 = 12
Nhs = 4.7 * 8 = 37.6 (tomaremos 38)

Nfp + Nhs + Nbp = 46 + 38 + 12 = 96 (número de cuentas que dura el intervalo de blanking horizontal). Debe ser lo más parecido posible a: 12 * 8 = 96 (¡se cumple!)

Por último, Nb = 512 - (320 + 96) = 96 . Esto significa un borde izquierdo y derecho de 96/2 = 48 píxeles cada uno.

El tamaño horizontal en píxeles de la pantalla, incluyendo los bordes, sería de 320 + 96 = 416 píxeles.

-- 03 Oct 2012, 13:33 --

EdgeM escribió:Por cierto, me da pena que no se hable más por aquí del V6Z80p. Me parece un proyecto "similar" (aunque más parecido a lo que quiere hacer mcleod_ideafix), y muy completo. Lo único que le falta es software...

Bueno, en mi caso es que no tengo esa placa, así que no puedo contar mucho de ella, salvo lo que uno mismo puede leer en su Wiki. Según veo, está pensada para clonar máquinas basadas en el Z80 (tiene uno "de verdad"). En su diseño veo que han pensado sobre todo en usarla para clonar un Spectrum. Cosas como que la FPGA pueda interrumpir la señal de reloj a la CPU, o que las líneas A14 y A15 vayan exclusivamente a la FPGA me recuerdan a cómo es el Spectrum. No sé si eso dificultaría clonar otros micros como el Amstrad o el MSX. La Spartan que lleva es ya antigua, y creo que no se fabrica. Puedes meter dentro de ella un AY-3-8912 si quieres (creo que cabe) pero igual no cabe junto con el TMS9918.

Sale por más de 100 euros... ¡buffff! Se me sale de presupuesto :(
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
radastan
Amiga 2500
Amiga 2500
Mensajes: 4542
Registrado: 11 Jun 2007, 19:29
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Sega Genesis/Megadrive
Primera consola: TV Games/Pong Clone
Ubicación: Córdoba
Gracias dadas: 9 veces
Gracias recibidas: 40 veces
Contactar:

Re: Proyecto ZDP-80 - Nuestro microordenador desde cero [#01

Mensajepor radastan » 03 Oct 2012, 13:40

mcleod_ideafix escribió:Sale por más de 100 euros... ¡buffff! Se me sale de presupuesto :(


Acabas de descubrir porqué no me pillé ese chisme, el cual llevaba siguiendo desde hace tiempo cuando se anunció (yo viví toda la parte en que iba contando progresos del diseño de la placa). Sumando portes se monta en 150 euros, muy caro para un capricho.

No es mala máquina, pero creo que no está bien enfocada, por ese precio te pillas un Minimig (el clon del Amiga 500).
Yo tengo una máquina del tiempo, se llama ZX Spectrum, siempre me devuelve a los buenos momentos.
(\.../) (\.../) (\.../) (\.../)
( *.*) ('.'= ) ('.'= ) ('.'= )
(")_(") (")_(") (")_(") (")_(")
╔═══╦═══╦═══╦══╦══╗
║╔═╗║╔═╗║╔═╗╠╣╠╩╣╠╝
║║─║║╚══╣║─╚╝║║─║║
║╚═╝╠══╗║║─╔╗║║─║║
║╔═╗║╚═╝║╚═╝╠╣╠╦╣╠╗
╚╝─╚╩═══╩═══╩══╩══╝

Avatar de Usuario
EdgeM
Atari 1040 STf
Atari 1040 STf
Mensajes: 803
Registrado: 01 Feb 2008, 12:55
Gracias dadas: 2 veces
Gracias recibidas: 5 veces

Re: Proyecto ZDP-80 - Nuestro microordenador desde cero [#01

Mensajepor EdgeM » 03 Oct 2012, 15:52

Yo la verdad es que lo tengo un poco muerto de risa al invento, igual que al 1chipMSX, la placa Altera DE1, el FIGnition, y otros muchos cacharros :P

Ojalá pudiese comprar TIEMPO xDDDD

weirdocollector
ZX Spectrum 16
ZX Spectrum 16
Mensajes: 3
Registrado: 02 Oct 2012, 23:27

Re: Proyecto ZDP-80 - Nuestro microordenador desde cero [#01

Mensajepor weirdocollector » 03 Oct 2012, 16:07

radastan escribió:Jepalza, TODO se va a diseñar con lógica discreta. Salvo el tema del PS/2 y el sonido que irán en un PIC (que es tope de divertido de programar) el circuito se podrá ensamblar como dices. Es más, yo voy a crearme una placa de esta forma, ya que es más divertido y se tiene más control sobre lo que pasa (puedes medir señales intermedias y ver como son).


En mi mini ordenador he usado una PIC prgramada para recibir la señal del teclado PS/2, y convertirlo en una carácter ASCII de 8-bit (7-bit + uno para reconocer los caracteres especiales), que se envía en el bus de datos del Z80 a través de un búfer 74HC244.

Para leer el buffer, la misma PIC genera la señal de interrupción al INT del Z80, al pulsar de un botón del teclado.

lo siento por el mal español, pero soy italiano, y no suelo escribir en este idioma... :(

Avatar de Usuario
zitror
Amiga 2500
Amiga 2500
Mensajes: 5349
Registrado: 02 Jul 2006, 00:16
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
Ubicación: El interior de un Z80
Gracias dadas: 248 veces
Gracias recibidas: 104 veces
Contactar:

Re: Proyecto ZDP-80 - Nuestro microordenador desde cero [#01

Mensajepor zitror » 03 Oct 2012, 17:31

Chavales, ¡qué nivel, acojonante! =D> Os sigo con atención compañeros :D

weirdocollector escribió:lo siento por el mal español, pero soy italiano, y no suelo escribir en este idioma... :(


Al contrario, gracias por el esfuerzo en escribir en nuestro idioma :)

Salu2 ;)
(C) 1.982 Sinclair Research Ltd

La buhardilla de Zitror

winston
Amstrad PCW 8256
Amstrad PCW 8256
Mensajes: 204
Registrado: 19 Sep 2009, 11:42
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: ZX81
consola_favorita: Vectrex
Primera consola: Vectrex

Re: Proyecto ZDP-80 - Nuestro microordenador desde cero [#01

Mensajepor winston » 03 Oct 2012, 17:33

Si yo fuera el diseñador de este ordenador, usaría una CPLD (en lugar de chips de 74xx). El Xilinx XC95144XL tiene recursos muy similares de la ULA del Spectrum (es decir, no es bastante lejos de las ULA de los 80) y tiene las mismas ventajas que la ULA - no tienes que usar un montón de chips o tener una placa enorme. Los ventajas que tienen las CPLD sobre las ULA es que es posible corregir los errores con un cable JTAG :-)


Volver a “Otros microordenadores”

¿Quién está conectado?

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