Fuente: MSX Resource Center.
Introducción
En el verano de 2007, el programador de Infinite, Edwin Velds estaba trasteando con su One Chip MSX, añadiendo y ajustando el código de VHDL, para ser exactos. Durante un rato, todo fue bien, ¡desarrollar para el One Chip MSX parecía algo fácil de hacer! Pero como siempre, cuando algo parece que es demasiado bueno para ser cierto, lo es. En un momento dado el One Chip MSX no arrancó más. Un fallo se había colado, y sin poder arrancar el One Chip MSX, no hay manera de resetear la máquina a través de software. Un cable sería la solución, si no fuera tan caro. Buscando una solución barata, Edwin intento crear él mismo el cable usando componentes de bajo coste. Al principio no funcionó y el One Chip MSX siguió siendo un One Ladrillo MSX durante medio año. Sin embargo, recientemente, consiguió crear un cable perfecto. ¡La propia historia de edwin y las directrices para el éxito se pueden leer justo aquí debajo!
Resucitando un One Chip MSX
Investigué un poco en la programación del OCM después de subir una configuración con fallos. Para hacer esto sin demasiado presupuesto, quise hacer yo mismo un cable en lugar de comprar otros relativamente caros. Para ello me descargué un esquema desde Internet. Pero nunca conseguí que funcionara. Parecía que las cosas no estaban tan claras como pensaba.
Algo de antecedentes. La placa FPGA admite tres modos a través de los cuales se puede meter una actualización: JTAG, puerto de serie pasivo (Passive Serial) y puerto de serie activo (Active Serial). Cuando examinas los esquemas puedes determinar que los pines del JTAG del chip de la FPGA no están ni siquiera conectados, así que esta opción no funciona. Los otros modos se seleccionan mediante el estado de los pines MSEL de la FPGA. Sin embargo, en el OCM, estos pines parece estar soldados al puerto de serie activo (Active Serial). Por lo tanto, cualquier solución pasa por la configuración del puerto de serie activo (Active Serial).
El cable que fabriqué inicialmente (y cuyo esquema es muy fácil de encontrar) es el ByteBlaster MV. Sin embargo, este cable solamente puede trabajar a través de JTAG o puerto de serie pasivo (Passive Serial). Esta es la razón de por qué nunca me funcionó. Afortunadamente, investigando un poco, encontré una solución para convertir este cable en un ByteBlaster II con un poco de cableado. El cable ByteBlaster II es capaz de realizar la configuración a través de puerto de serie pasivo (Passive Serial). Aquí hay un esquema que funciona si alguien lo necesita. Hay que tener en cuenta que es una solución por puerto paralelo. Los cables USB son mucho más difíciles.
La programación se realiza a través de la aplicación de programación. El programador es parte de la aplicación Quartus II (Menú de herramientas), pero también existe por separado y de hecho no necesita ninguna licencia para funcionar. Antes de que puedas trabajar con el programador necesitas instalar manualmente el driver para los cables paralelos (ver aquí). Una vez hecho esto, tienes que seleccionar «Hardware setup» y añadir el hardware «ByteBlasterMV o el ByteBlasterII» en el puerto paralelo correcto. Si tienes un USB Blaster podría haber sido ya detectado, pero no te lo puedo asegurar porque no tengo ninguno.
Si todo está conectado, el tipo de cable correcto debería ser detectado. Ahora la programación se puede realizar con los siguientes pasos:
- Encender el OCM.
- Seleccionar el modo Active Serial.
- Escoge la opción Add File… y selecciona desde el CD el archivo ESEMSX3/pld/emsx_top.pof.
- Verificar que bajo el archivo existe Page_0 y debajo del mismo hay un bloque que reza emsx_top.hex.
- Marca la columna Program/Configure en todas las líneas. Y la columna Verify si quieres, también.
- Pulsa Start y espera hasta que termine el proceso.
- Ahora puedes apagarlo, desconectar el cable y volverlo a encender para ver al OCM en su esplendor original.
Si instalaste la versión de Quartus que se suministra con el CD, entonces el paso de verificación no debería ser un problema. Sin embargo, si tienes una versión más nueva (yo tengo la 7.1), entonces el bloque de datos hexadecimales tiende a desaparecer, lo cual dejará fuera de la configuración los archivos ROM y fallará al arrancar.
Para corregir esto, tienes que crear un archivo .pof nuevo. Sin embargo, los archivos necesarios no están en el CD y necesitas construir el proyecto primero. Asumo que la razón por la que necesitas seguir estos pasos es porque estás haciendo más con el OCM y que has realizado tu propia compilación en este punto.
Para crear el archivo ve a File-> Convert Programming Files … Puedes intentar primero abrir el archivo original emsx_top.cof pulsando Open Conversion Setup Data. Esto debería hacerte todo el trabajo. Puedes hacerlo también manualmente siguiendo estos pasos:
- Selecciona Programmer Object File como tipo de archivo de programación.
- Selecciona EPCS4 como dispositivo de configuración (el modo debería ponerse de color gris).
- Selecciona un archivo donde guardarlo.
- Deja marcado la opción Keep memory map.
- Ahora necesitas añadir dos bloques, pero la manera de mostrarlo en pantalla difiere entre versiones.
- Versión 6
- Empiezas con dos bloques, uno principal y un Page_0. Si el bloque Page_0 no está, puedes añadirlo con Add Data.
- Selección el bloque Page_0, escoge Add File y selecciona el emsx_top.sof.
- Pulsa sobre la línea del archivo, haz click en Propeties y selecciona la opción Compression.
- Selecciona el bloque Main Block, y luego Add File. Selecciona emsx_top.hex.
- Pulsa sobre la línea del archivo, selecciona Properties y cambia set addressing a relative.
- Version 7
- Selecciona la línea SOF Data/Page_0, escoge luego Add File y selecciona emsx_top.sof.
- Selecciona la línea del archivo, haz click sobre Properties y marca Compression.
- Haz click sobre Add hex data para abrir la ventana de propiedades para los nuevos datos hexagesimales.
- Selecciona Relative addressing.
- Marca la opción set start address e introduce el valor 0x40000.
- Añade el archivo emsx_top.hex.
- Después de pulsar OK el archivo debería aparecer en la lista.
- Haz click en Generate.
- En el mismo directorio donde seleccionaste el archivo .pof a guardar, debería haber un archivo .map. Ábrelo con el bloc de notas y comprueba donde tienes un bloque Page_0 que comience en 0x00000000 y un bloque hexagesimal en 0x00040000.
Ahora puedes programar el nuevo archivo como se describió anteriormente.
Espero que todo esto te sirva de ayuda para empezar a trastear con tu One Chip MSX.
Mis disculpas por la traducción que quizá no sea tan técnica ni exacta como su autor quiso plasmar en el texto.
Al menos espero que os sirva por si algún día convertís el OCM en un precioso ladrillo.
Una reflexión sobre mi experiencia con la one chip;
Muy agradecido por el articulo, pero honestamente no entiendo nada.
He tenido dos one chips, una primera paso a mejor vida por un desgraciado incidente infantil y la segunda, que funciona muy bien, jamás he atendido ni como actualizarla ni sé como meterle juegos por la tarjeta Sd, nada de nada…. En la practica solo la uso por las combinaciones de cartuchos de konami dado que el msx2plus que tengo está fastidiado en su slot 2.
Lo único que puedo aportar es; que se corrigen todos los males de visión, desde que usa como cable a la TV uno de supervideo, por la toma correspondiente. Que el cable costó algo caro, lo cogí en Corte Ingles de Las Palmas, y es de punta chapada en oro.
Ah! y conectarle un teclado, lo cual fue muy facil.
Lo demás es que no entiendo ni jota, no entiendo el manual, sigo sin comprender para que sirve el Cd que viene con la maquina, tampoco logró saber como incorporarle un rerpoductor de Cd. Así las cosas, o yo soy el usuario más tonto de la comunidad msx, o se hace necesario una publicación, que gustosamente pagaría , redactada cual simple manual para persona no expertas en informatica. Saludos a todos
Muchas veces, los productores de este y otros HARD, se les olvida que lo que para ellos es una obviedad gracias a sus grandes conocimientos, para otros pueden resultar horas de infructuosas experiencias.
Quizás la forma mas sencilla muchas veces es preguntarle al autor directamente, pero pienso que tenemos muchísimas herramientas en nuestras manos como un vídeo tutorial en youtube en los que muchas veces solo hay que repetir lo que hace el del vídeo.
Hay servidores gratuitos donde subir tutoriales específicos sobre una acción o sobre la instalación de un soft o hardware.
Una documentación muy detallada y muy técnica hará las delicias de los mas expertos, pero se agradecería también una versión mas simple, para gente con menos conocimientos.
Estoy de acuerdo contigo. La documentación de cómo arreglar/configurar/instalar un hardware específico es muchas veces inexistente y si no como ocurre aquí, se utiliza un lenguaje no apto para nóveles.
Si ahora mismo se me quedara mi OCM convertido en un ladrillo no sé cómo haría para resucitarlo… a pesar de este tutorial.