Editor Version ×
Standard

1.Easy to use and quick to get started

2.The process supports design scales of 300 devices or 1000 pads

3.Supports simple circuit simulation

4.For students, teachers, creators

Profession

1.Brand new interactions and interfaces

2.Smooth support for design sizes of over 5,000 devices or 10,000 pads

3.More rigorous design constraints, more standardized processes

4.For enterprises, more professional users

Ongoing

STD FPGA CYC1000 MAX1000 ATLAS MINI DIY SBC

License: CERN Open Hardware License

Mode: Editors' pick

Cloned from CARRIER_IO_BOARD_ATLAS_MINI

  • 30.2k
  • 0
  • 2
Update time: 2024-07-09 17:45:19
Creation time: 2023-04-03 16:59:45
Description
Para las comunicaciones de CYC1000 & MAX1000 de la plataforma ATLAS, se usa el foro oficial de Trenz.
 
   Max1000:
 
   Cyc1000:
 
   El resto de placas soportadas se discuten en la iniciativa Atlas en télegram.
 
 Mejoras que forjaron la creación de la plataforma más minimalista en el retro/entrenadora lúdica en Español, "sin incorporar ningún integrado":
 
  1. Disponer de "VIDEO DIGITAL" es decir "DVI/HDMI".
  2. Incorporar una SD con 4Bit manteniendo la compatibilidad con SPI 1Bit.
  3. Conexión directa de 6 pines de la FPGA a un SBC/Microcontrolalor.
  4. No perder el  bus DB9 siguiendo una norma ATARI, con cuatro direcciones y dos disparos.
  5. No perder la salida estereo permitiendo un  "SIGMADELTA"  con resolución máxima de 12bits o un "PWM" con un máximo de 10bits de resolución. Se trata de una simple red resistencia-condensador.
  6. Dos modalidades de "USB-DIRECTO" en el puerto de teclado.
  7. No perder los buses PS2, permitiendo que el bus de teclado sea un "USB-DIRECTO" con los pines K1&L1 a cero voltios usando un adaptador pasivo PS/2 a USB.
  8. Con el uso del "EUROCONECTOR128" suprimir recolocadores de paletas en las descripciones, proporcionando al usuario un ajuste analógico.
  9. Video compuesto de 512 Colores usando 2 pines de la fpga, actualmente en pines del bus 2x20.  
  10. Uso de diseños con licencias compatibles, Caso del puerto de escucha de cinta "EAR" del ZXUNO.
 
   Recorrido por los logros de la I/O BOARD ATLAS con CYC1000 mostrando el core Minimig AGA UnAMIGA V5:
 
 
   La versión mini es una "I/O BOARD ATLAS" de coste reducido que tiene mejor "VÍDEO DIGITAL" es decir "DVI/HDMI" se puede observar en el serpenteo de los pares diferenciales que compensan la distancia.
   También se dipone de mejor sensibilidad en el puerto de escucha de la casete, comúnmente llamada "ear", en dicho puerto hemos usado el mismo esquema que el del ZXUNO, se puede ver la mención del equipo del ZXUNO en la serigrafía de la placa de la  "I/O BOARD ATLAS MINI".
 
   El diseño tiene características interesantes, como luchar la correcta sincronización de los pares diferenciales del "VIDEO DIGITAL" con y sin sonido "PCM" el objetivo es incorporar todo el diseño en el interior de la fpga usada, en este caso la CYC1000, esta fpga dispone de 25Kles y 66 bloques de 9Kbits ya que la placa "I/O Board ATLAS" únicamente dispone de puertos de entrada/salida, el diseño desarrollado fue una opción de minimalismo del equipo formado por @Nabateo/@Subcritical/@Thesonders/@agnuca, también el futuro nos dirá como podemos usar las matrices de teclado en las implementaciones descritas mediante lenguajes de descripción de hardware, para ello tenemos dos módulos propios el "USB-DIRECTO" así como video compuesto "PAL" de @Thesonders.
 
 
   Imagen del DAC externo VGA64.
 
   Se ha diseñado varios conversores digital a analógico "DACs" sencillos para aprender a usar la señal VGA y RGB y se diseñarán más añadidos, el vídeo puede ser adaptado a 64 colores siendo su esquema de color válido para un número considerable de máquinas de 8bit, la información RGB de video 222+hs+vs digital viaja por el excelente cable usado en el HDMI/DVI, el primer DAC resistivo del que dispone la comunidad es externo a la "I/O BOARD ATLAS" y se llama "VGA64".
 
   El proximo DAC será un "SCART" que tendrá filtrado por condensadores, con un esquema RGB 232, este esquema dispone de una mayor profundidad de color en el verde, alcanzando sin ningún tipo de modulación de señal de video los 128 colores,se usarán potenciómetros soldados en superficie para crear el "EUROCONECTOR128", en dicho DAC queda libre una de las señales de sincronismo al usar únicamente la sincronía compuesta, esto permite 128 colores efectivos, en la serigrafia estan indicadas la correspondencia de las señales de los dos DACs.
 
   Uso de los pines PIN_K1 y PIN_L1 en el diseño de la I/O BOARD ATLAS:
 
   
   Este diagrama para la CYC1000 esta disponible en la siguiente dirección:
 
    Para habilitar el "TECLADO-USB" los pines K1 y L1 al ser pines internos en el esquema, se usan para colocar unas resistencias 4k7Ω  en modo pull-up o pull-down, el pin K1 "pull seleccionable" recae sobre la salida K2, y el pin L1 "pull seleccionable"  recae sobre la salida L2. Como así se observa del diagrama de la fpga CYC1000,
    Para activar el USB  se ponen a cero voltios L1 y K1 dejandolos fijos en "pull-down".
    El siguiente paso es usar el envoltorio propio del Teclado USB si hablamos de familias soportadas de teclados, esta toda la gama de dispositivos inhalambricos de Logitech que usen este identificador USB "Logitech Unifying Receiver (VID:046D, PID:C52B)".
 
   El "TECLADO-USB" siempre esta en funcionamiento usando su modo arranque o modo "BOOT", un modo especial que incorporan todos los teclados de PC, este aparece siempre en la inicialización del PC cuando arrranqua la bios.
   Una vez activado el modo "BOOT", Hay dos vias posibles de funcionamiento,en el primer modo al teclado se le interpone una máquina ultrarápida de estados finitos para generar las señales "Key_CLK" y "Key_DATA" transformando el teclado USB en un teclado con señal AT o PS/2,el segundo modo  genera una matriz configurable para usar en los micro ordenadores de 8BIT, un ejemplo de este tipo de teclado matricial aparece en el ZX Spectrum, en este micro computador se utiliza direcciones de memoria así como de datos del procesador Z80, para poder leer la teclas pulsadas.
    

 

  También dispomemos de un modo de 512 colores en formato PAL con vídeo compuesto mediante un envoltorio en verilog.   
 
 
   Al final tener esquemas de muy poco color con la VGA64 permite desarrollos como el PC_XT con paleta CGA o Tandy teniendo en cuenta que el marrón en las "CGA" tiene un tratamiento especial electrónicamente hablando (Este color tiene en los monitores CGA y EGA  un tratamiento diferente), las resoluciones de los sistemas gráficos así como sus sincronismos al mostrar la imagen en la era pre "VGA" son muy parecidos, y usan señales digitales TTL "Lógica transistor transistor"
 
   Referencias a wikipedia de donde extraemos los gif animados de las topologías de las paletas de color aplicables a casi todos los sistemas de visualización preexistentes:
 
   Mostramos cubos de color RGB:
 
Paleta 111 -> 8 colores
 
   Se muestra la paleta de 8 Colores configuración 111.
 
Paleta 222 -> 64 Colores
 
    Se muestra la paleta de  64 colores usada en la VGA64 configuracion 222.
 
 
   Se muestra la paleta de 4096 Colores usado en el ZXUNO configuración 333.
  
   En las matrices siguientes se muestran las paletas de 444 y 555, indicando que cuando se usa un 888 que es la paleta típica en la "I/O BOARD ATLAS" al usar el  "VÍDEO DIGITAL" es decir "DVI/HDMI" su cubo es sólido.
 
 
    Paleta 444 usada en muchas entrenadoras mediante dac resistivos con ramas R-2R.
 
   
   Aquí se va viendo como con un RGB  555, el cubo de color casi se va haciendo sólido.
 
   Muestra del core PC-XT con  sus créditos en la plataforma "I/O BOARD ATLAS" usando el modo de video compuesto con formato PAL el cual llega a 512 Colores.
 
 
 
   Cuando se usen los DAC externos tanto el "VGA64" y el "EUROCONECTOR128", que en modelos futuros dispondrán de potenciómetros y filtros de naturaleza totalmente analógica, permitirán al usuario un ajuste de color de la forma más clásica posible, un destornillador de punta fina que incrementa o decrementa el valor en Ohmnios de potenciómetros y de microfaradios de los capacitores variables del dac.
   La "I/O BOARD ATLAS" al poder disponer de estos modos de poco color puede incluso ahorrar la paleta en BRAM la cual en modos "DVI/HDMI" aparece como una memoria síncrona.
 
   La grandeza de manejar aunque sea relativamente dificil, las señales DVI/HDMI.  Es que podemos generar señales de 24bit es decir un RGB de 888.
   Y aún más, podemos agregar sonido PCM, desde la configuración base del HDMI que parte del 2.0 a la versión 7.1. La dificultad está en como de complejo es el móludo hardware "HDL" que gestiona el paso de RGB+SONIDO(PCM) a HDMI.
 
   
   Para ver la mejor implementación de un ordenador retro en código Verilog, mostramos parte del diagrama RTL "DIAGRAMA LÓGICO DE RESISTENCIA TRANSISTOR" del ZX Spectum de Ricardo @KYP el cual es uno de los primeros ZX Spectrum Con soporte SDHC, usando el navegador de Bob Fossil con salida DVI/HDMI.
   En Él aparece una memoria sincrona SYNC_RAM RADDR, la cual es una "matriz de color" fácilmente visualizable, con nombre "palette", esta recoloca los 15 colores de salida de la ULA del ZX Spectrum (son necesarios 4 bits para describir 15 colores), y los recoloca en un rango de colores de 24Bits que luego es conducido mediante la codificación 8b/10b al "SERDES" serializador, terminando las señales de pares diferenciales "LDVS" en el conector DVI/HDMI.
    El serializador "SERDES" es una "IP" o propiedad intelectual de ALTERA/INTEL.
    En realidad se trata de colocar 15 colores que actuan a modo de entrada, como direcciones de la memoria síncrona de la memoria "palette" entre un abanico "Es en realidad un dato" de 24 bits (16777216 colores). Este es el funcionamiento que realiza esta memoria sincrona "palette" es decir la paleta.
  
   Una forma intuitiva de saber cuando se usa memoria "BRAM" en un diseño con "DVI/HDMI" es si el sistema permite transformaciones como giros o aumentar/disminuir el tamaño de la imagen a elección de un menú en pantalla, Esta caraterística no aparece en las descripciones de la CYC1000 con la "I/O BOARD ATLAS", todos y cada uno de sus envoltorios actuales para poder tener salida digital "DVI/HDMI", cumplen esta característica.
   Ninguno consume bloques de BRAM, esto no sería lógico, dado que el modelo de integrado que tiene la CYC1000, el Cyclone 10 LP FPGA 10CL025YU256C8G dispone en su configuración base de 66 bloques de 9Kbits.
 
   Aún así la memoria de celular SDRAM WINBOND W9864G6JT usada en la cyc1000 en su configuración base (La usada en las muestras) de 166Mhz si podría a futuro usarse para relizar transformaciones, pero dudo que pueda aplicarse a simulaciones de retro computadoras por mucho tiempo. 
 
   También nos planteamos en el grupo - The Experiment -  que al fragmentar aún más las plataformas Retro-FPGA con la creación de la plataforma "ATLAS" incorporar una SD de formato completo (el formato SD si hablamos de la I/O BOARD ATLAS MINI) que pudiera servir en un futuro para la conexión WIFI, y sobre todo,con un bus de 4Bit, consideramos en su tiempo que a largo plazo las implementaciones de SPI de 1bit darán paso a mejores y más veloces implementaciones con el protocolo SD Nativo a +3V3, tanto aumentando el ancho del bus de 1 a 4 bits y la velocidad típica del spi desde los 25Mhz a los 100Mhz, lo que da un teórico de x16 veces más velocidad.
 
   El paso a disfrutar de x16 la velocidad de un qpi ya es una realidad en el 2024, dado que en la conocida placa Tang Nano 20K, dispone de un qpi a mayor velocidad y aparece este modo x16 en la definición de su implementación "MiSTery on Tang Nano 20K" - el MiSTery implementa varios modelos de la familia ATARI ST. 
 
   Para descargar los cores y sus fuentes, así como los esquemas de los recolocadores y sus emuladores o aplicaciones, también el software fijo"Firmware", y El marco de programación "Framework":
 
 
   Uno de los grandes puntos a favor de usar tanto CYC1000 como MAX1000 es la incorporación del excelente componente FTDI FT2232H lo que las hace ideales para desarrollar así como los tiempos reducidos de compilación con QUARTUS II Lite.
 
   Los actuales "MULTICORES" sobre los que se trabaja:

   STM32F103C Usado por Victor Trucco en su segundo sistema retrofpga Multicore2.

   ESP32 Deuteros76 dispone en sus fuentes de "ALMA" el poder usar este microcontrolador.

   MAIX-BIT Microcontrolador risc-v inicial de "ALMA".

   PI-PICO Microcontrolador de coste muy reducido y rentimiento muy alto, usando como solución final por "ALMA".

   Colocación de un "SBC" directamente sobre el bus 2x20 normalizado de la fundación Raspberry PI, los pines sobre este bus son dos pines rx "recepción" tx "transmisión" del serie, y los pines asociados al puerto spi de dicho bus, Estos pines son pines directos entre fpga y bus, si en algún momento hay que colocar una resistencia a 0 voltios o +3V3 existe la posibilidad de hacerlo en el interior de la FPGA, la colocación en la placa ATLAS de un SBC siempre es de forma invertida, mirando la placa y el bus 2x20 macho hacia abajo.

 

 
   Bus normalizado por la fundación Raspberry PI, sólo hay 6 pines de interconexión fpga-sbc:
 
 
   GPI014,GPIO15,GPIO11,GPIO10,GPIO9,GPIO8 y quedó fuera el otro chip select del bus el GPIO7.
 
   Probando RP2040/PI-PICO/PI-PICO-W con un core propio y marco de trabajo "ALMA" que usa la pantalla y puede usar una pantalla lcd como opción, @Deuteros76 usa la CYC1000.

   Vídeo de una conexión de una PI3A+ con una Terminal con capacidades gráficas VT105 usa en realiddad una infraestructura de pdp11, el código es de sytse, https://pdp2011.sytse.net/wordpress/pdp-11/fpga-boards/cyc1000/:

   Mostramos el programa fijo "Firmware" de Victor Truco´ que usa el microcontrolador "STM32F103C" en la placa de entradas/salidas ATLAS con la CYC1000; carga un flujo de datos que implementa un core APPLE I,el core de APPLE I es una creación de Andrew Holme:
 

    Core MSX I de Fabio Belavenuto, si se lée su código en VHDL ¡Es magistral!


    Core ATARI800XL de http://www.scrameta.net/ creado por AlSp (extmail _at_ alsp.net):

 

    En el siguiente vídeo se prueba la conexión del core MiniMIG "UnAMIGA" a Internet con una CYC1000, en la cual se usa el puerto serie RX y TX y se une a un servidor implementado por un chip de Espressif:


   Primer contacto con el core Minimig "UnAMIGA" con la placa fpga CYC1000 usando la placa ATLAS:


   PC 80186 (Con caché y VGA) a la velocidad de un 486 - Next186 de Nicolae Dumitrache:

 
   Diseño e implementación del chip VIN_9340 usado en la Videopac-G7000 rediseñado por @TheSonders.
   Consola de videojuegos GAMEBOY adaptada de los fuentes del proyecto SameBoy        https://github.com/LIJI32/SameBoy/

   Agradecimientos:

   Lo más importante a todos los usuarios de ATLAS.

   Y como nó mencionar a los creadores de cores y contenidos como @somhic, @Shaeon, @Kyp069, @RAMPA, @diswave81 y futuros usuarios y desarrolladores que se unan a esta iniciativa.

   Mención especial a las creaciones de contenidos de @Invertigo y @desUBIKado que tan buenos ratos nos han hecho pasar, en infinidad de plataformas FPGA.

 

   Licencia usada para ATLAS MINI, la CERN Open Hardware Licence Version 2 -
Strongly Reciprocal:

   https://ohwr.org/project/cernohl/wikis/Documents/CERN-OHL-version-2

 

EAR DIGITAL VIDEO DELTA SIGMA

 

 

PS2/USB PS2 DB9-PULLUPS

 

TOP IO BOARD ATLAS

 

- The Experiment -

@Nabateo

@TheSonders

@agnuca

@Subcritical

 

Design Drawing
schematic diagram
1 /
PCB
1 /
The preview image was not generated, please save it again in the editor.
Target complaint
Related Projects
Change a batch
Loading...
Add to album ×

Loading...

reminder ×

Do you need to add this project to the album?

服务时间

周一至周五 9:00~18:00
  • 0755 - 2382 4495
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 立创EDA微信号

    easyeda

  • QQ交流群

    664186054

  • 立创EDA公众号

    lceda-cn