SD2IEC PUNGA GUIA HAGALO USTED MISMO

Si lo que necesitas es armarlo sin PCB y de forma más sencilla usando un módulo arduino que simplifica el armado hay un nuevo tutorial al que se accede haciendo click aquí.

Paso a paso en castellano

 

Porque somos sudacas y no nos alcanza para el Ultimate o el Chameleon, pero queremos algo digno para cargarles cosas a nuestras commodores sin tener que estar dandole play al casetito. Porque nos cabe hacerlo con nuestras manos, ahorrando  dinero (tal vez) y aprendiendo.
Este proyecto está basado en el que se encuentra en
este sitio realizado por solo761 a su vez basado sobre la versión de SD2IEC de Lars Pontoppidan. Soporta el último firmware SD2IEC al momento y toda la funcionalidad de los SD2IEC que se compran armados por ebay, compatible con C64, C128, VIC-20 (C16 y Plus/4 con adaptaciones). La idea es que se pueda armar con componentes que se consiguen en Argentina y la filosofía es arreglarse con lo que uno tiene y tratar de comprar la menor cantidad de partes posible. Por ejemplo, usando cables, conectores y componentes de equipos electrónicos rotos, favoreciendo el reciclado y reutilización dentro de lo posible y razonable. El modelo de esta guía utiliza el regulador LM1117T porque es el que conseguí. En el proyecto original hay dos versiones, la otra es con el regulador LF33CV, y el esquema del circuito impreso es diferente, si lo quisieran hacer con el otro regulador sigan la guía original en inglés de solo761.
Se muy poco o digamos nada de electrónica así que si yo lo pude hacer, lo puede hacer cualquiera prestando atención y empleando la lógica.
IMPORTANTE: No me hago responsable de daños que pudieran ocurrir a tus equipos por realizar este proyecto siguiendo esta guía, hacelo bajo tu propio riesgo.

EL PCB

El PCB que vamos a utilizar es el que figura en el proyecto en el cual nos estamos basando:

 lmt1117t pcb

EL ESQUEMA SE DESCARGA EN PDF DESDE AQUÍ
Y los archivos para EAGLE PCB acá

Algunas consideraciones: Podemos obviar toda la parte de los pines con jumpers para configurar el DEVICE NUMBER. Ya que eso se puede hacer por un comando BASIC desde la C64 e incluso que persista al reiniciar el SD2IEC. O sea esa parte del PCB recomiendo no utilizarla porque es medio al pedo, está en cada uno usarla o no.  El conector de borde para alimentar por el puerto de datasette se puede reemplazar por otros conectores que conecten a algún lugar en el que la C64 entregue corriente. La fuente de energía si o si tiene que venir de la C64: puerto datassette o puerto de expansión. No se recomienda utilizar el conector joystick o, puerto de usuario ya que entregan poco amperaje y puede dañar la commodore. IMPORTANTE: ESTE DISEÑO NO ESTA PENSADO PARA RECIBIR CORRIENTE DE UNA FUENTE EXTERNA, SOLO DE LA C64. 
Otra cosa que no puse son los "headers" de power y para el cable IEC, podés ponerlos o no como todo, es a "gusto", si vas a estar conectando y desconectando con frecuencia te conviene ponerlos, yo preferí soldar directamente las conexiones ya que no veo el motivo para estar desconectando.
Lo importante es que conectemos bien los pines de energía a lo que sea que usemos para alimentarlo respetando los voltajes y la polaridad. No requiere mucho amperaje.

Cómo hago el PCB (circuito impreso): esto depende de cada uno, hay tutoriales en youtube muy buenos que te enseñan a hacerlo. (Por ejemplo este, este, este o esta idea interesante que es hacer el pcb con plástico reciclado) Es todo un arte en sí mismo. Tuve la suerte de que lo hicieran por mí y gentilmente el amigo punga Rico (@ricoC64) me lo facilitó.
rico pcb

Cómo perforarlo: Lo ideal es tener un taladro dremel, pero sale como $1500, así que si no te dedicás a la electrónica no da. Directamente compré la mecha que conseguí de 0,75mm (de 1mm va bien también) y la metí en un corcho, con eso hice los agujeros a mano. También existe el taladro con motor casero, que lo podés hacer, para eso hay tutoriales en youtube (como este hecho con el motor de una impresora en desuso). Cuando perfores tené cuidado de no perforar al pedo. Todos los pines que no van a ninguna parte, los podés dejar sin perforar. También podés dejar sin perforar la parte de los jumpers para cambiar el device number, que ya dijimos que no lo íbamos a utilizar. Y también en un lugar hay unos pulsadores que tienen 4 pines, los que yo conseguí tienen sólo 2 pines así que solo perforé los que van a alguna parte, los pines que están aislados los dejé sin perforar.

no perforar2

Perforado manual rebusque latino...

perforado  

 

COMPONENTES, MONTAJE Y SOLDADURA

Lista de componentes

1x ATMEGA1284P-PU (o ATMEGA644A-PU si no consiguen el 1284, también ATMEGA644P-20PU)
1x socket DIP 40
1x LED verde
1x LED rojo
2x 560 ohm
1x 100nF capacitor cerámico
3x pulsador
3x 1800 (1k8) ohm resistencia
3x 3300 (3k3) ohm resistencia
1x 10000 (10k) ohm resistencia
1x 8MHz cristal
2x 22pf o 33pF capacitor cerámico
2x 10uF capacitor electrolítico
1x LM1117T 3.3V regulador
1x Zócalo tarjeta SD
1x conector DIN 6 macho
1x conector de borde 6 pines paso 3.96mm

HERRAMIENTAS: Soldador de electrónica 30-40W (el más barato), esponja metálica para limpiar la punta del soldador, alambre de estaño para soldadura electrónica con flux, alicate, mecha/broca de 0,75mm/1 mm.

Los cables no los incluyo porque los podés reciclar de basura electrónica. No reemplazar componentes esenciales por otros (salvo que sepas). El regulador LM1117T de 3.3v es el  ideal pero yo conseguí el LM1117MPX-3.3 y me anduvo. Ese es de montaje superficial pero lo que hice fue soldarle las patitas para poder pasarlas por los agujeros del PCB. Lo importante es que sea 1117 y 3.3 volts.
El socket para tarjeta SD es todo un tema conseguirlo localmente, yo no lo conseguí. Lo que hice fue reciclar el de un lector de tarjetas viejo que no funcionaba. Creo que todos tenemos varios de esos... Sino otra opción es soldarle directamente un adaptador SD card a micro SD (solo Dios sabe cómo). Y también encontré un tutorial sobre cómo reciclar un viejo cable de floppy 5 1/4 de PC en un socket SD, interesante.
Para el conector de borde que obtiene la energía del puerto cassette (que no conseguí) lo que hice fue reciclar un conector de un viejo cable de floppy 5 1/4, lo corté a medida y eliminé los contactos que no eran necesarios. También lo que podés hacer es reciclar el conector de datassette de algún datassete que ya no funcione y no uses.
Una opción diferente es sacar energía del puerto de expansión, para eso se requiere fabricar un PCB a medida que conecte en ese puerto usando los pines correspondientes a 5V y GND.

Soldadura: De electrónica y soldadura se poco y nada pero me las arreglé con los tutoriales que hay en youtube que son muy didácticos (por ejemplo este, este o este), te recomiendo que los mires si estás como yo. Conviene primero montar los componentes de menor altura (resistencias, puentes) y después ir montando y soldando los de mayor altura (socket, regulador, capacitores electrolíticos). Prestar atención especialmente a los componentes que tienen polaridad como los LED, los capacitores, el regulador, etc. montar todo bien según el plano. El regulador si lo ves con cuidado tiene una marquita que te indica el lado para el que va, tiene que coincidir con el circulito en el plano.

Al socket en el que irá inserto el Atmega. Le saqué los pines que no están conectados a nada para ahorrarme trabajo:
socket sin pines

Los componentes y puente que van debajo del socket en este diseño:
componentes bajo socket

 Cortando el excedente de cable de los componentes con un alicate nuevo y reluciente:

emprolijado alicate

El regulador que no debería ir por que es para montaje superficial, pero va y cumple su función:
regulador cabeza


Sobre el zócalo SD

Algunas cuestiones a tener en cuenta. En la imagen debajo vas a ver los pines que conectan el zócalo SD con la placa. El pin 9 no tiene función, por eso en este diseño está conectado a masa (GND). Prestar atención a los pines 10 y 11. El pin 10 es el que detecta si la tarjeta está metida en el zócalo o no. Si la tarjeta no está le avisa al microcontrolador y la commodore nos va a decir FILE NOT FOUND ERROR cuando querramos acceder a los archivos. A veces pasa que los zócalos SD se rompen y aunque la tarjeta está conectada, igual toma como si no estuviera. El pin 11 es el de protección contra escritura. En el zócalo hay una patita que detecta si está accionada la patita de la tarjeta que prohíbe la escritura y le pasa esta información al microcontrlador. Si está bloqueado contra escritura no nos va a dejar grabar. A veces pasa que por accidente se nos corre la patita o el zócalo no anda bien y no permite grabar. La protección contra escritura es bastante innecesaria ya que el SD2IEC no sobreescribe archivos. Para evitar esto problemas lo que podés hacer es soldar los pines 10 y 11 a MASA con un puente de estaño. Esto va a hacer que el SD2IEC piense que la tarjeta está siempre conectada y habilitada para grabar.
El plano de abajo también te va a servir de guía si en vez de zócalo soldás el adaptador SD a micro SD directamente. El pin 9 no es necesario soldarlo, y 10 y 11 no van a estar, así que en ese caso obligatoriamente los pines 10 y 11 se tienen que soldar a MASA.

zocalo sd 

Soldadura casi terminada (sí, como ven hice perforaciones al pedo, vos no las hagas):
soldadura detras terminada

Si Rico! ZAFA MUY BIEN!!

 

Armar la ficha DIN 6 de acuerdo a este plano:  
data cable

Acá el cable está así nomás, después lo fijé para evitar que rote y se dañe la soldadura:

cable iec

 Armar los conectores a la fuente de energía teniendo en cuenta este plano:
power cable

 

Este es el montaje terminado, te tendría que quedar más o menos así, desaliñado, chueco y de aspecto rústico (pero digno) como todas las cosas pungas: 
sd2iec terminado

 

PROGRAMAR EL IC ATMEGA

Para programar el IC lo ideal es tener un "programador" que es un circuito ya preparado en el que insertamos el chip y lo conectamos por usb a una PC. Pero como éste es el SD2IEC del tercer mundo y no pensamos comprar nada, hay una alternativa económica que es programarlo por el antiguo puerto de impresora que tenían las computadoras hasta hace algunos años (LPT).

Lo que necesitamos es:

- Una PC con puerto de impresora (normalmente en las pentium III o más antiguas, yo tengo una máquina de 2007 que lo tiene, para que te des una idea)
- Un cable paralelo para puerto de impresora de 25 pines (tal vez tengas tirado el cable con el que conectabas tu impresora en los 90's, ese sirve)

Lo que hay que hacer es conectar los pines del chip Atmega a los pines del cable paralelo según este diagrama:

grafico programmer

El cable tiene que medir menos de 30 cm, porque el largo puede generar problemas. No es necesario ponerle resistencias como sugieren otros diagramas. Si estás usando un cable reciclado chequeá con el tester pin por pin a ver qué cable corresponde a cuál pin. Usualmente los pines 18 a 25 están todos conectados al mismo cable y son GND (masa). Prestar atención que hay unos pines que van puenteados entre sí, con juntar esos cables y ponerle cinta aisladora para que no jodan, basta. El conector paralelo por lo general tiene escritos los números de pin muy chiquitito, guiarse por eso. Sólo 5 pines van conectados al Atmega: MOSI, MISO, SCK, RESET, GND. Prestar atención a la muesca que tiene el chip para identificar bien los pines del Atmega. Lo que hice fue soldar por la parte de atrás de PCB los cables correspondientes con mucho cuidado y pensando que después lo iba a tener que desoldar.

Me quedó así, parece un quilombo pero son sólo 5 cables soldados y funca:
cable lpt conectores

cable lpt1

 

A tener en cuenta:
Para programar mediante puerto paralelo el SD2IEC tiene que estar alimentado y armado (no es necesaria la tarjeta SD). La alimentación tiene que ser de 5V para no dañar el puerto paralelo. Lo más seguro es tomar la alimentación directamente desde el puerto USB, PS/2 o Joystick de la PC en la que estás haciendo la programación. El programa con el que vamos a programar es AVRDUDE, funciona en Linux y en Windows XP 32 bits y los Windows viejos 98/NT, etc. Yo lo hice en windows XP, así que voy a dar esas instrucciones solamente.
Si no tenés una PC con Windows XP instalado podés bootear el CD Hiren's boot y usar la opción de booteo "Mini Windows XP". Yo hice eso y anduvo.
Lo primero que hacemos es preparar la PC en la que vamos a programar. Todavía no enchufamos nada del SD2IEC.
Tenemos que descargar e instalar el WINAVR (link), que por defecto se instala en el disco C:\ en una carpeta WINAVR seguida de la fecha de versión.
En esa carpeta encontramos el subdirectorio BIN, ahí copiá la imagen que vamos a flashear descargada de http://www.sd2iec.de del archivo
sd2iec-current-binaries.zip del cual vas a utilizar la versión LARSP para el chip correspondiente 1284 o 644.
También el autor del proyecto original nos proveyó un firmware con la versión 10.0.3 y un "bootloader" que permite cargar versiones nuevas de firmware a medida que van saliendo, esto es solo para el Atmega1284 (si lo armaste con el 644 ese firmware especial no funciona)  se puede descargar desde acá
Yo no lo usé, terminé flasheando el 10.0.3 y dejándolo así por el momento. 
Luego apagá la PC y preferentemente desenchufala.
 Una vez que ya tenemos el SD2IEC conectado, alimentado y con el cable paralelo conectado a la PC, enchufala y encendela.

Entrá en Windows XP, allí abrí una consola con ejecutar/run > CMD

runcommand

Ingresá a disco C:\

C:
CD\WINAVR (presionar tab para completar el nombre y enter)
CD BIN 
Allí tipeá la instrucción
INSTALL_GIVEIO
giveio

Esto lo que hace es instalar un controlador que necesita para acceder al puerto de impresora.
Tendría que dar un mensaje de OK como en la imagen.

Luego ingresá este comando reemplazando "sd2iec.bin" por el nombre de la imagen que estamos instalando (varía con la versión)

PARA ATMEGA1284
avrdude -p m1284p -P lpt1 -c pony-stk200 -U flash:w:sd2iec.bin -U lfuse:w:0xEF:m -U hfuse:w:0x99:m -U efuse:w:0xFF:m

PARA ATMEGA644
avrdude -p m644p -P lpt1 -c pony-stk200 -U flash:w:sd2iec.bin -U lfuse:w:0xEF:m -U hfuse:w:0x99:m -U efuse:w:0xFF:m

comando avrdude

Entonces tendrían que aparecer unos textos indicando el progreso, aproximadamente en 49 segundos se tiene que completar la grabación en el chip Atmega1284p y la verificación más o menos en el mismo tiempo. Esta línea la podés copiar en un archivo .bat (por ejemplo programar.bat) y meterla en la carpeta para no perder tiempo tipeando todo, directamente ejecutás PROGRAMAR.BAT Listo, si el proceso es exitoso termina con un mensaje de que está todo OK, entonces apagamos la PC y desconectamos todo.

Si hiciste todo bien el SD2IEC tendría que estar funcionando.

 

TESTEO SD2IEC

Conectá el SD2IEC a la fuente de energía y a la C64. Encendé la C64.
Allí tipeá este programa:

10 OPEN15,8,15:INPUT#15,A$,B$,C$,D$
20 CLOSE15
30 PRINT A$,B$,C$,D$

Tipeá RUN <return> y tendría que aparecer un mensaje como éste:
sd2iec exito

Si sale eso quiere decir que funciona bien. Ahora tendrías que probarlo con una tarjeta SD formateada como FAT16 o FAT32 con algunos archivos adentro.

tipeá:
LOAD"$",8
LIST <return>

y nos tiene que dar la lista de directorio

pungasd2iec pituca 800px

 

Eso es todo! Espero que lo puedas hacer y te salga lindo.

Agradecimientos:

Rico por el PCB
Riq por haberme traido el Atmega1284P
Naku por haber elegido sabiamente el diseño más realizable
Si te querés comunicar conmigo mandame un email a mi gmail uctumi arroba etc etc.

 

ANEXO MANEJO DEL SD2IEC

Para darle comandos al SD2IEC debemos abrir un canal de comandos hacia el dispositivo (número 15), darle el comandocon PRINT y después opcionalmente cerrar el canal de nuevo. Para hacerlo se hace de esta manera:

OPEN 15,8,15 PRINT#15,”ingresá tu comando aquí” CLOSE 15

También se puede escribir en una sola línea:

OPEN 15,8,15,”tu comando”:CLOSE 15

También podés dejar el canal 15 abierto y escribir más comandos. Tené en cuenta que si usás otro comando de disco luego de abrir el canal 15 (como LOAD o SAVE) todos los canales, incluido el 15 se cierran automáticamente. Los comandos como DIRECTORY no cierran el canal.

Directorios

El comando CD te permite navegar la estructura de directorios tal como lo harías bajo Windows o Linux en línea de comandos.

// cambiar al directorio raíz

CD//

// ingresar al sub-directorio “midir” (relativo a tu ubicación actual)

CD/midir/

// ingresar al sub-directorio “midir” (absoluto desde el directorio raíz)

CD//midir/

// subir de nivel (como en DOS o Linux el comando CD.. )

CD:←

También podés crear sub-directorios sin necesidad de utilizar herramientas especiales. Para eso se usa el comando MD:

// crear sub-directorio en la ubicación actual

MD:midir

// crear sub-directorio dentro de otro sub-directorio

MD/midir/:otrodir

// crear sub-directorio desde la ubicación raíz

MD//midir/:otrodir

Para borrar un sub-directorio podés usar el comando RD. Sólo directorios vacíos se pueden borrar, de lo contrario te dará un error "FILE EXISTS".

// Remover dentro del directorio actual

RD:midir

// Remover en referencia al directorio raíz

RD//midir/:otrodir

 

Montando imágenes de disco

El comando CD también se puede usar para montar imágenes D64/D71/D81, como si fueran directorios comunes. Se usa la misma sintaxis que al montar directorios

// montar “imagen.d64” en directorio actual

 CD:imagen.d64

// montar "imagen.d64” en sub-directory /midir (relativo)

CD/midir/imagen.d64

// o absoluto

CD//midir/imagen.d64

// desmontar una imagen de disco (volver al directorio de la tarjeta SD en el que está la imagen)

CD:←

No necesariamente se deben utilizar imagenes sino que podés utilizar una tarjeta SD formateada para FAT o FAT32 como si fuera un disco floppy. Sin embargo, el sistema de la commodore sólo permite un máximo de 144 archivos en cada directorio, lo que significa que una tarjeta de 4GB tendrá todavía mucho espacio libre cuando lleguemos a los 144 archivos.

 

Cambiando el número de unidad del dispositivo

Por defecto el SD2IEC está configurado para el número de unidad 8. Pero como si fuera una disquetera real podés cambiarlo a 9,10 u 11 usando este comando:

// cambiar de unidad 8 a 9

OPEN 15,8,15

PRINT#15,“U0>"+CHR$(9)

CLOSE 15

Reemplazá el valor CHR$ con el valor de unidad deseado. Como una unidad 1541 real, el SD2IEC no recordará el cambio luego de ser reiniciado. Sin embargo podés guardar la configuración en memoria EEPROM para que sobreviva los reinicios.

// guardar el número de unidad en la EEPROM

OPEN 15,9,15

PRINT#15,“XW"

CLOSE 15

Reemplaza 9 con el número de tu unidad.

DETECCION DE FALLAS

Si hay luces titilantes (rojas sobretodo) es porque el SD2IEC te quiere decir algo.
En la C128 y Plus/4 podés leer el canal de errores mirando la variable d esistema DS$:

// Mostrar canal de errores en C128 yPlus/4
PRINT DS$

Esto te mostrará cuál es el problema (ARCHIVO EXISTENTE, ARCHIVO NO ENCONTRADO, etc)
En la C64 es un poco más difícil, y requiere escribir un pequeño programa para leer esos valores. Es necesario porque el comando INPUT no se puede utilizar en forma directa:

// Leer canal de errores en la C64
10 open 15,8,15
20 input#15,a,b$,c,d
30 print a;b$,c,d
40 close 15

 

Navegador de archivos
Para manejarte por la estructura de archivos de la tarjeta SD, y facilitar el montaje de las imágenes de disco y carga de ejecutables es recomendable usar un "File browser" o "navegador de archivos". Hay varios y diversos con más y menos funcionalidades. El más simple y usado es el CBM File browser.

AUTOSWAP

El SD2IEC tiene 3 botones. El del centro es el REINICIO, que sirve para poner en cero el dispositivo sin tener que apagar la C64 o desconectarlo, lo deja en el directorio raíz. Los otros dos botones se utilizan con la función de SWAP. La función de Swap (cambio) de imágenes nos permitirá usar la botonora de nuestro SD2IEC para cambiar de imagen de disco mientras estamos ejecutando un programa o juego. Nosotros podemos indicarle al SD2IEC mediante un comando que utilice una lista de imágenes previamente definida para que al presionar los botones pase de una a otra. Eso se hace con el comando XS:nombreswaplist.lst
Cuando apretamos un botón va a utilizar la SWAP LIST que tenemos definida, y si no tenemos definida ninguna va a buscar el archivo AUTOSWAP.LST
La lista puede contener imágenes de disco o sub-directorios (carpetas), es indistinto. Por ejemplo si tengo en mi ubicación cuatro sub-directorios: carpeta1, carpeta2, carpeta3, carpeta4. En mi swaplist pongo:
carpeta1
carpeta2
carpeta3
carpeta4
si quiero que estén referenciadas con el directorio raíz
//carpeta1
//carpeta2
//carpeta3
//carpeta4

Acelerador de carga

SD2IEC soporta varios cartuchos de aceleración de carga, pero también hay un acelerador por software llamado SJLOAD que funciona con algunos ejecutables, especialmente los que no tienen fastloaders propios. Esto se carga una vez encendida la C64, y una vez cargado queda activado y todo lo que carguemos después lo va a cagar mediante ese sistema.
El archivo ! es por defecto el que se usa para SJLOAD (pero se puede cambiar a cualquier otro si se desea)
Para cargarlo se usa
LOAD”!″,8,1
También se puede cargar un ejecutable y el SJLOAD en una sola operación, por ejemplo si lo cargamos junto a CBM File Browser para C64:
LOAD”!*FB64″,8,1

 

Packs para descargar


Pack con juegos y File browsers de Sander Souza

Pack con juegos, file browser y tools de Beamrider (Foro Retrocomputación)

Megapack con juegos y tools de The Future was 8 bit



ANEXO REBUSQUES: Case, herramientas, conexiones

Este es el conector de borde hecho con parte de un cable de floppy 5 1/4 reciclado, simplemente corté un extremo, eliminé uno de los contactos del medio y le soldé el cable que va a la alimentación del SD2IEC. Esto va conectado al puerto datassette de la C64, como la parte que entrega energía está dividida por una muesca este conector se ajusta perfectamente y como no es simétrico no permite invertir la polaridad.  No quedó muy elegante, de hecho bastante hecho pelota, pero funciona.

conector borde
conector borde 02

Sujetador para mecha usando mango de cutter de precisión (estilo "exacto knife"). Es lo que mejor me funcionó para perforar el PCB a mano, sujeta muy bien. Lo que hago es sostener el centro del "lápiz" con algún objeto que permita la rotación, arandela, lo que sea, y con el lápiz presiono y perforo.

sujetador mecha01

sujetador mecha 02

Sujeción del cable IEC, simplemente perforé a los lados y sujeté con un cable de un sólo hilo, así las conexiones no se dañan al mover el SD2IEC.
sujecion cable 01

 

Este es el "gabinete" por ahora provisorio hecho con un bundle de CD reciclado. Esta cajita reciclada ya la estaba usando con unos potenciómetros que sirven para tocar música con Cynthcart conectado al puerto de joystick de la C64 entonces me pareció razonable usar el espacio sobrante para alojar el SD2IEC, ya que son dos cosas que me sirve llevarlas juntas. Otras opciones para gabinete que se me ocuren serían reciclado botellas de enjuage bucal o shampoo, que suelen tener forma achatada. Hay miles de maneras de hacerle un gabinete a nuestro SD2IEC casero.

 

 











Joomla templates by a4joomla