Clonando un FDC765/SED9540 - Codificación MFM

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
wilco2009 !Sinclair 1
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 8156
Registrado: 01 Abr 2013, 23:47
Ubicación: Valencia
Has thanked: 47 times
Been thanked: 107 times

Clonando un FDC765/SED9540 - Codificación MFM

Mensaje por wilco2009 »

Llevo tiempo dándole vueltas al tema de clonar la pareja, FDC765 y SED9540, que para el que no lo sepa son los chips que forman el núcleo de una controladora de floppy disk para Spectrum o para Amstrad.

Por raro que parezca aun nadie ha desarrollado una descripción hardware para implementar estos chips con una CPLD, o al menos no la ha compartido.
Cansado de buscar una descripción ya realizada en verilog, me he decidido a intentar hacerla yo, y entonces he comprendido porqué todavía no lo ha hecho nadie.
El chip FDC765 parece sencillo de implementar, ya que únicamente controla los comandos de lectura y escritura de la disquetera, además de los registros de estado y cosas así, pero el el SED9540 es algo más complicado, ya que es el que se encarga de interpretar la ristra de datos que llegan desde la disquetera y separar los datos de la señal de reloj, reajustando el reloj (clock recovery) cuando es necesario, y enviando al 765 las señales de datos y del reloj ya separadas.

La codificación que usan las disqueteras es la conocida como MFM, que permite albergar la señal de reloj junto con la de datos, permitiendo además reajustar dicha señal, ya que las lecturas provenientes de la disquetera no son siempre constantes debido a factores mecánicos, por lo que es necesario un mecanismo de reajuste.

Para el que quiera profundizar algo más en el tema puede leer este artículo de la Wikipedia, en el que se explica la codificación, que es bastante sencilla, aunque no se explica como podemos decodificar la señal aprovechándola para reajustar el reloj, por lo que esto me ha llevado más de un dolor de cabeza.

Tras mucho pelearme con el tema he conseguido un éxito parcial, ya que consigo decodificar y reajustar la señal en una CPLD, pero todavía no acabo de entender quién se encarga de gestionar el "sync mark" y como se usa.

Doy por supuesto que dicha marca de sincronización la debe gestionar el SED9540, pero para poder tener claro como lo hace creo que voy a tener que tirar de analizador lógico.

Si alguien conoce el tema en profundidad y me quiere echar un cable, bienvenido sea.

Os dejo aquí el listado funcional en Verilog que decodifica la señal MFM y reajusta el reloj utilizando un reloj auxiliar de 16MHz exactamente igual que se hace en el SED9540.
► Mostrar Spoiler
"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
Pachuquin
Demonio tercer orden
Demonio tercer orden
Mensajes: 828
Registrado: 18 Ene 2014, 00:51
Ubicación: Septem fratres

Re: Clonando un FDC765/SED9540 - Codificación MFM

Mensaje por Pachuquin »

wilco2009 escribió:Si alguien conoce el tema en profundidad y me quiere echar un cable, bienvenido sea.
Yo no conozco el tema ni en profundidad ni en superficie :D , pero te doy un pdf con el esquema de un clon rumano del Interface I que en vez de microdrives gestiona disquetes, para ello lleva un 8272, que es compatible con el FDC765 y el separador de datos lo implementa con lógica discreta.

Clon del HC IF1
Imagen
Avatar de Usuario
flopping
Fundador
Fundador
Mensajes: 9974
Registrado: 29 Mar 2013, 15:26
Ubicación: Valencia
Been thanked: 124 times
Contactar:

Re: Clonando un FDC765/SED9540 - Codificación MFM

Mensaje por flopping »

Pachuquin escribió:
wilco2009 escribió:Si alguien conoce el tema en profundidad y me quiere echar un cable, bienvenido sea.
Yo no conozco el tema ni en profundidad ni en superficie :D , pero te doy un pdf con el esquema de un clon rumano del Interface I que en vez de microdrives gestiona disquetes, para ello lleva un 8272, que es compatible con el FDC765 y el separador de datos lo implementa con lógica discreta.

Clon del HC IF1
Tambien lleva una eprom, que si no tenemos el contenido, quiza no valga de mucho ese esquema, :~( :~( :~( :~(
No me hago responsable de mis post pues estan escritos bajo la influencia del alcohol y drogas psicotropicas, por la esquizofrenia paranoide.
(C) 1982-2024, 42 años de ZX Spectrum.
http://www.va-de-retro.com/ un foro "diferente".

Mi juego, que puedes descargar desde aqui
Avatar de Usuario
alvaroalea España - Asturias
Demonio segundo orden
Demonio segundo orden
Mensajes: 1094
Registrado: 25 Oct 2014, 12:49
Ubicación: Asturias, Paraiso Natural
Has thanked: 14 times
Been thanked: 52 times
Contactar:

Re: Clonando un FDC765/SED9540 - Codificación MFM

Mensaje por alvaroalea »

Como mola lo de los rumanos, ¿hay roms o mas info?
Por otro lado, yo tampoco entiendo nada de eso, pero aprobecho para recordar que el tio del "Back to the +3" se habia echo el interface de disco SIN el SED9540, usando logica discreta, por si eso es de ayuda, toda la info esta en WOS
Tenia una prom de 8bits o algo asi, y el contenido de ella.
Avatar de Usuario
Pachuquin
Demonio tercer orden
Demonio tercer orden
Mensajes: 828
Registrado: 18 Ene 2014, 00:51
Ubicación: Septem fratres

Re: Clonando un FDC765/SED9540 - Codificación MFM

Mensaje por Pachuquin »

flopping escribió:Tambien lleva una eprom, que si no tenemos el contenido, quiza no valga de mucho ese esquema, :~( :~( :~( :~(
No llores tanto, hombre, que más se perdió en Cuba y volvieron cantando. :D :D

De todas formas, si la tenemos. Bueno, la tengo, aunque no creo que para echarle un vistazo a como implementa el separador de datos necesite la eprom, pero si alguien la quiere, que la pida y le será concedida.
Imagen
Avatar de Usuario
Pachuquin
Demonio tercer orden
Demonio tercer orden
Mensajes: 828
Registrado: 18 Ene 2014, 00:51
Ubicación: Septem fratres

Re: Clonando un FDC765/SED9540 - Codificación MFM

Mensaje por Pachuquin »

alvaroalea escribió:Como mola lo de los rumanos, ¿hay roms o mas info?
Por otro lado, yo tampoco entiendo nada de eso, pero aprobecho para recordar que el tio del "Back to the +3" se habia echo el interface de disco SIN el SED9540, usando logica discreta, por si eso es de ayuda, toda la info esta en WOS
Tenia una prom de 8bits o algo asi, y el contenido de ella.
Pues ahí está más sencillo todavía y se ve mucho mejor.

De aquí saqué la información.

https://sites.google.com/site/georgechirtoaca/home
Imagen
Avatar de Usuario
flopping
Fundador
Fundador
Mensajes: 9974
Registrado: 29 Mar 2013, 15:26
Ubicación: Valencia
Been thanked: 124 times
Contactar:

Re: Clonando un FDC765/SED9540 - Codificación MFM

Mensaje por flopping »

Pachuquin escribió:
flopping escribió:Tambien lleva una eprom, que si no tenemos el contenido, quiza no valga de mucho ese esquema, :~( :~( :~( :~(
No llores tanto, hombre, que más se perdió en Cuba y volvieron cantando. :D :D

De todas formas, si la tenemos. Bueno, la tengo, aunque no creo que para echarle un vistazo a como implementa el separador de datos necesite la eprom, pero si alguien la quiere, que la pida y le será concedida.
Bueno, no sé si sería necesaria la rom o no para entender el funcionamiento del separador de datos, pero como proyecto no está mal, a mí me inetesaria esa rom para ver cómo va él interface, :) :)
No me hago responsable de mis post pues estan escritos bajo la influencia del alcohol y drogas psicotropicas, por la esquizofrenia paranoide.
(C) 1982-2024, 42 años de ZX Spectrum.
http://www.va-de-retro.com/ un foro "diferente".

Mi juego, que puedes descargar desde aqui
Avatar de Usuario
Pachuquin
Demonio tercer orden
Demonio tercer orden
Mensajes: 828
Registrado: 18 Ene 2014, 00:51
Ubicación: Septem fratres

Re: Clonando un FDC765/SED9540 - Codificación MFM

Mensaje por Pachuquin »

flopping escribió:Bueno, no sé si sería necesaria la rom o no para entender el funcionamiento del separador de datos, pero como proyecto no está mal, a mí me inetesaria esa rom para ver cómo va él interface, :) :)
Pues aquí la tienes.

Rom de clon IF1 rumano
Imagen
BCH
Demonio tercer orden
Demonio tercer orden
Mensajes: 973
Registrado: 06 Sep 2014, 12:10
Ubicación: Barcelona
Been thanked: 4 times

Re: Clonando un FDC765/SED9540 - Codificación MFM

Mensaje por BCH »

wilco2009 escribió:
Si alguien conoce el tema en profundidad y me quiere echar un cable, bienvenido sea.
McLeod planea desarrollar lectura de archivos DSK desde la SD del ZX-UNO. Para esto tiene que implementar el FDC765/SED9420 en la FPGA. Quizas vale la pena que contactes con el para intercambiar informacion/ideas.
Avatar de Usuario
otivax
Aspirante a demonio
Aspirante a demonio
Mensajes: 425
Registrado: 22 Ene 2015, 11:05
Ubicación: Alcoy
Been thanked: 1 time

Re: Clonando un FDC765/SED9540 - Codificación MFM

Mensaje por otivax »

Hola.
EN el proyecto Back to the +3, http://www.worldofspectrum.org/BackToThePlus3/ el separador de datos también se implementa con un BPROM 74s188 y el contenido es sencillo:
address 00H 11H 11H 22H 22H 33H 33H 44H 44H DDH DDH EEH EEH FFH FFH 00H 00H
address 10H 11H 22H 33H 44H 55H 66H 77H 88H 99H AAH BBH CCH DDH EEH FFH 00H
Échale un ojo a ver si te sirve algo.
Salu2.
Responder

Volver a “Proyectos de hardware abiertos”