Montando un SD2IEC

Con un SD2IEC podemos almacenar juegos y programas en una tarjeta SD y cargarlos en nuestros Commodores (C16, C64, C128 o VIC-20) como si de una disquetera 1541 se tratara. Por su sencillez lo convierte en una de las mejores opciones de almacenamiento masivo para nuestras máquinas.

Partiendo de los trabajos de garvidal y mad3001 en Va de Retro y páginas como la de 16Bit Dust, vamos a intentar montar un SD2IEC plenamente funcional, primero en placa de prototipado y posteriormente (si todo funciona correctamente) en placa perforada con los componentes soldados.

El corazón del SD2IEC es el microcontrolador ATMega1284P de Atmel. Para este montaje hemos comprado uno con el bootloader de Arduino ya instalado (Optiboot), que nos va a facilitar la tarea de programarlo. Este bootloader nos permite flashear un nuevo programa con un simple adaptador USB-RS232, y además configura el microcontrolador para usar un reloj exteno de entre 8 y 16MHz. En el caso de usar un 1284P sin bootloader será preciso instalarlo previamente con un programador dedicado, y en ese caso podemos optar por usar el propio bootloader del SD2IEC, que nos permite actualizar a nuevas versiones del firmware desde la tarjeta SD.

Para programar el microcontrolador vamos a utilizar un adaptador USB a RS-232 con niveles TTL de este estilo:

Montamos el 1284P en su configuración mínima, con un reloj de 16MHz, un par de condensadores de 22pF y un pulsador para llevar el pin de RESET a tierra a través de una resistencia de 10K. Siguiendo el datasheet de este chip, vemos que los pines 14 (RX) y 15 (TX) nos van a servir para enviarle un nuevo programa desde nuestro PC usando el cable USB. Conectamos el cable verde (TX) al pin 14 y el cable blanco (RX) al pin 15, sin olvidarnos de llevar el cable negro a GND.

En ese momento podemos bajarnos el firmware para el SD2IEC, y tras descomprimirlo quedarnos con el archivo sd2iec-xxxxxxxx-larsp-m1284p.bin correspondiente a nuestro microcontrolador. Si usamos Linux y tenemos avrdude instalado, podemos conectar el cable USB y lanzar un comando como este:

avrdude -v -patmega1284p -carduino -P/dev/ttyUSB0 -b115200 -D -Uflash:w:/home/usuario/sd2iec-xxxxx-larsp-m128p.bin

El truco aquí es pulsar y soltar el reset en la placa mas o menos al mismo tiempo que lanzamos el comando, hasta que veamos que el avrdude empieza a transmitir el firmware al microcontrolador. Es un proceso que dura unos cuantos segundos, así que veremos enseguida cuando lo hemos hecho bien. Puede costar mas de un intento, pero probando unas cuantas veces lo acabamos consiguiendo.

Con el firmware ya instalado, pasamos a montar el circuito definitivo. Vamos a utilizar un slot para tarjetas Micro SD que ya viene preparada para usar señales de 5V, en lugar de los niveles de 3.3V que necesitan estas tarjetas. De esa forma nos evitamos tener que usar divisores de tensión para las líneas de datos y control, simplificando el circuito.

El firmware está preparado para funcionar con un reloj externo de 8MHz. Necesitaremos también un par de leds indicadores de color verde y rojo junto con sus respectivas resistencias limitadoras, y un par de pulsadores para cambiar de disco (además de un pulsador para resetear el microcontrolador, que siempre viene bien). Partiendo del circuito original mostrado en 16Bit Dust, vamos a simplificarlo hasta obtener este esquema, eliminando también los jumpers para seleccionar el ID del dispositivo (quedará como 8 siempre):

Vemos que los pines 5, 6, 7 y 8 del ATMega comunican con la tarjeta SD y los pins 22, 23 y 24 irían hacia el Commodore que estemos usando, a través de un cable con conector DIN-6 igual que el usado con las disqueteras 1541. Si miramos nuestro Commodore desde atrás, tenemos que conectar estos pines del puerto serie al microcontrolador:

Ahora formateamos nuestra micro SD en FAT16/32 nos descargamos el programa CBMFileBrowser. Descomprimimos en la tarjeta el contenido del subdirectorio PROGRAMS, y creamos un nuevo subdirectorio C64 donde guardar nuestros programas e imágenes de disco .D64. Conectamos el circuito a nuestro C64, le damos corriente y probamos a listar el contenido de la tarjeta:

LOAD”$”,8

LIST

Si todo está correcto…

Cargamos el FileBrowser para el C64:

LOAD”FB64″,8

RUN

Y desde ahí podremos movernos por las distintas imágenes almacenadas en la tarjeta:

Seleccionamos el PRG que queramos lanzar y lo ejecutamos.

Una vez testeado el circuito podemos soldar los componentes en una placa perforada, para asegurar las conexiones y dar por terminado el montaje:

Deja un comentario

Tu dirección de correo electrónico no será publicada.