Amiga 500 "minimig" funcionando en placa genérica
Publicado: 29 Abr 2018, 08:59
Llevaba meses (y ademas, de verdad de la "buena", meses laaaaargos) tratando de meter el A500 del Minimig en las FPGA de Xilinx (las Spartan).
Quedaba claro, que en una Spartan LX9 (la del ZXUNO) era imposible colarlo. En la LX16, anda muy pelado, tanto, que diría que tampoco se puede. Quest ya lo ha intentado, y de momento, no lo ha logrado, por lo justo de los recursos.
Mínimo era necesario una LX25. Por eso, hace ya tiempo, me compré una LX45, una "bestia" en la que entran no uno, sino dos amigas de golpe, de la cantidad de espacio que tiene. Pero Luego llegaron los problemas de velocidad y accesos a memoria. Fui capaz de cargar el núcleo del minimig y el menu de arranque, pero se quedaba "pillado" siempre al cargar el fichero principal de control de la SD. Al final, tiré la toalla, aburrido de hacer pruebas.
Hace un mes, busqué una alternativa al Mist y a los Altera DE0, DE1 y DE2, típicos del Minimig, dado que son carísimos (a excepción del Nano-DE0, pero aún así, son 100 y pico euros mas luego añadir periféricos).
Encontré en Aliexpress una placa Altera con chip Cyclone IV EP4CE22F17 que es lo mas parecido a las EP2 y EP3C25 que emplean los Cores de las diferentes versiones del Minimig que circulan por la red (hay al menos una decena de versiones). Con la que he comprado, la EP4CE22 tengo 22000 y pico celdas para meter el A500, y entra de sobras, ya que se gastan unas 18000 celdas lógicas, y sobran aún 4000 para lo que pudiera venir. Además, lleva 32 mb. de SDRAM, necesaria para el proyecto.
Junto con la placa Altera, he cogido también la de desarrollo que va debajo de ella (el "zapato" como diría Quest ) que viene con absolutamente todo lo necesario para hacer andar el A500 nada mas llegar. A falta tan solo de un segundo puerto PS2 para el ratón, que ye he resuelto, como se ve en las fotos, por que he puesto un cable extra en el conector de expansión de esta placa.
Ambas placas, puestas en casa, me han salido unos 55€ al cambio (5 de gastos, y 50 de ambas placas), y ha tardado unos 40 días. Me llegó el miércoles, y hoy domingo, he logrado hacerlo andar "porfín", tras , digamos, un año detras del proyecto A500 Minimig. Como es un Altera, y tiene todo lo necesario, solo ha sido aprender a manejar el Quartus (para programar el Altera) que es MUY diferente al ISE de Xilinx, y ha sido como volver a nacer, aprender todo otra vez. En un par de días, tenía controlado el Quartus, y con el proyecto del Minimig para Nano-DE0 (el de esta página --> http://www.minimig.net/viewtopic.php?f=9&t=647 ) y algunos cambios necesarios, como pines, velocidad y colores VGA, lo he puesto en marcha. El Minimig original emplea el sistema de colores VGA888, o sea, 8 bits por color, (no he dicho nada, es el DE0 el que lo emplea, no el minimig) y en mi placa "solo" tengo VGA 565, por lo que he tenido que reducir los colores, pero no lo he hecho bien del todo, y los rojos y azules han quedado muy fuertes, demasiado saturados, es un mal menor, iré ajustando. Otro fallo es la velocidad de la SDRAM, que no está bien ajustada, y se nota en el refresco de la pantalla (ver la foto con el granulado). Este problema no he sido capaz de solucionar. He hecho una docena de pruebas, y todas malas. Espero solucionarlo, sino, realmente, me da igual, no soy un "pijotero" de la calidad, sino de la utilidad.
También tengo problemas al leer discos duros (imagenes de HDD del A500), por que no soy capaz. He probado con varios formatos de imagen de HDD y ninguna la coge, solo coge discos ADF. Estoy en ello, a ver si doy con el fallo. (puede ser por problemas de acceso a la SD)
Un detalle curioso, es la salida de información de arranque del Minimig por el RS232. Como esta placa también lleva integrado un MAX232, el envío de info al "hiperterminal" de windows es directo, y eso permite ver todo lo que ocurre dentro del Minimig, para depurar fallos.
La placa también tiene un altavoz, pero es mas bien un simple "biiip" (o "beeper" que dirían los angloparlantes), y a pesar de que se oye el amiga por ahí, es como escuchar a 100 grillos cantando a la vez. La placa tiene conversores AD y DA, tengo que probar a sacar el sonido por ellos, a ver si consigo un sonido fiel.
Pues bien, a falta de los detalles indicados (HDD, colores, granulado y sonido) el A500 es funcional.
La idea, cuando lo tenga bien, es hacer una placa para poner arriba de la "Altera", que sea justo del mismo tamaño, con las cuatro cosas necesarias (sonido, PS2, VGA, un par de botones y algún led, y la mini-sd) y hacer un A500 compacto. Pero de momento, me conformo con esto.
Comentar, que esto del Minimig está muy, pero muy desinformado, muy descontrolado. Nadie dice cómo "compilar" tu propio Minimig con pasos del 0 al 10. Está tan liado, que es un infierno de horas de estudio y pruebas. Solo para encontrar el fichero CRTL_BOOT.BIN correcto (por el tema de versiones) y el DE1_BOOT.BIN, que es el que arranca el menu OSD del minimig, ya he necesitado mas horas que las usadas para compilarlo. Muchas horas de pruebas de versiones buscadas por la red, para encontrar las ROMS necesarias para inicarlo, de forma que una se entienda con la otra. En contreto, estoy usando las ROM de la versión Minimig del "Chameleon64" (o Fampiga).
Dejo unas fotos del invento.
Grupo Telegram sobre la placa: https://t.me/joinchat/FDjURBAeiE1hmVZbMWfGWg
Quedaba claro, que en una Spartan LX9 (la del ZXUNO) era imposible colarlo. En la LX16, anda muy pelado, tanto, que diría que tampoco se puede. Quest ya lo ha intentado, y de momento, no lo ha logrado, por lo justo de los recursos.
Mínimo era necesario una LX25. Por eso, hace ya tiempo, me compré una LX45, una "bestia" en la que entran no uno, sino dos amigas de golpe, de la cantidad de espacio que tiene. Pero Luego llegaron los problemas de velocidad y accesos a memoria. Fui capaz de cargar el núcleo del minimig y el menu de arranque, pero se quedaba "pillado" siempre al cargar el fichero principal de control de la SD. Al final, tiré la toalla, aburrido de hacer pruebas.
Hace un mes, busqué una alternativa al Mist y a los Altera DE0, DE1 y DE2, típicos del Minimig, dado que son carísimos (a excepción del Nano-DE0, pero aún así, son 100 y pico euros mas luego añadir periféricos).
Encontré en Aliexpress una placa Altera con chip Cyclone IV EP4CE22F17 que es lo mas parecido a las EP2 y EP3C25 que emplean los Cores de las diferentes versiones del Minimig que circulan por la red (hay al menos una decena de versiones). Con la que he comprado, la EP4CE22 tengo 22000 y pico celdas para meter el A500, y entra de sobras, ya que se gastan unas 18000 celdas lógicas, y sobran aún 4000 para lo que pudiera venir. Además, lleva 32 mb. de SDRAM, necesaria para el proyecto.
Junto con la placa Altera, he cogido también la de desarrollo que va debajo de ella (el "zapato" como diría Quest ) que viene con absolutamente todo lo necesario para hacer andar el A500 nada mas llegar. A falta tan solo de un segundo puerto PS2 para el ratón, que ye he resuelto, como se ve en las fotos, por que he puesto un cable extra en el conector de expansión de esta placa.
Ambas placas, puestas en casa, me han salido unos 55€ al cambio (5 de gastos, y 50 de ambas placas), y ha tardado unos 40 días. Me llegó el miércoles, y hoy domingo, he logrado hacerlo andar "porfín", tras , digamos, un año detras del proyecto A500 Minimig. Como es un Altera, y tiene todo lo necesario, solo ha sido aprender a manejar el Quartus (para programar el Altera) que es MUY diferente al ISE de Xilinx, y ha sido como volver a nacer, aprender todo otra vez. En un par de días, tenía controlado el Quartus, y con el proyecto del Minimig para Nano-DE0 (el de esta página --> http://www.minimig.net/viewtopic.php?f=9&t=647 ) y algunos cambios necesarios, como pines, velocidad y colores VGA, lo he puesto en marcha. El Minimig original emplea el sistema de colores VGA888, o sea, 8 bits por color, (no he dicho nada, es el DE0 el que lo emplea, no el minimig) y en mi placa "solo" tengo VGA 565, por lo que he tenido que reducir los colores, pero no lo he hecho bien del todo, y los rojos y azules han quedado muy fuertes, demasiado saturados, es un mal menor, iré ajustando. Otro fallo es la velocidad de la SDRAM, que no está bien ajustada, y se nota en el refresco de la pantalla (ver la foto con el granulado). Este problema no he sido capaz de solucionar. He hecho una docena de pruebas, y todas malas. Espero solucionarlo, sino, realmente, me da igual, no soy un "pijotero" de la calidad, sino de la utilidad.
También tengo problemas al leer discos duros (imagenes de HDD del A500), por que no soy capaz. He probado con varios formatos de imagen de HDD y ninguna la coge, solo coge discos ADF. Estoy en ello, a ver si doy con el fallo. (puede ser por problemas de acceso a la SD)
Un detalle curioso, es la salida de información de arranque del Minimig por el RS232. Como esta placa también lleva integrado un MAX232, el envío de info al "hiperterminal" de windows es directo, y eso permite ver todo lo que ocurre dentro del Minimig, para depurar fallos.
La placa también tiene un altavoz, pero es mas bien un simple "biiip" (o "beeper" que dirían los angloparlantes), y a pesar de que se oye el amiga por ahí, es como escuchar a 100 grillos cantando a la vez. La placa tiene conversores AD y DA, tengo que probar a sacar el sonido por ellos, a ver si consigo un sonido fiel.
Pues bien, a falta de los detalles indicados (HDD, colores, granulado y sonido) el A500 es funcional.
La idea, cuando lo tenga bien, es hacer una placa para poner arriba de la "Altera", que sea justo del mismo tamaño, con las cuatro cosas necesarias (sonido, PS2, VGA, un par de botones y algún led, y la mini-sd) y hacer un A500 compacto. Pero de momento, me conformo con esto.
Comentar, que esto del Minimig está muy, pero muy desinformado, muy descontrolado. Nadie dice cómo "compilar" tu propio Minimig con pasos del 0 al 10. Está tan liado, que es un infierno de horas de estudio y pruebas. Solo para encontrar el fichero CRTL_BOOT.BIN correcto (por el tema de versiones) y el DE1_BOOT.BIN, que es el que arranca el menu OSD del minimig, ya he necesitado mas horas que las usadas para compilarlo. Muchas horas de pruebas de versiones buscadas por la red, para encontrar las ROMS necesarias para inicarlo, de forma que una se entienda con la otra. En contreto, estoy usando las ROM de la versión Minimig del "Chameleon64" (o Fampiga).
Dejo unas fotos del invento.
Grupo Telegram sobre la placa: https://t.me/joinchat/FDjURBAeiE1hmVZbMWfGWg