Sustituto de PLA para C64 basada en CPLD ATF1502


Quería compartir mi experiencia fabricando un sustituto para la PLA del C64 usando uno de los esquemas que hay en Internet, y todo ello según la Ley del Ingeniero Ratonil, es decir invirtiendo el menor dinero posible aunque al final acabemos echándole más horas que un tonto con el soldador :D





Mi anterior experiencia fue un engendro casero de PLA basado en una Flash de Atmel pero con el SD2IEC + Fastload Reloaded no funciona :( Los juegos no cargan, salen caracteres raros en la pantalla y cuelgues cada 2x3. La SD2IEC suelta (sin cartucho) tampoco va mucho mejor. A veces los directorios salen corruptos y también se cuelga. Así que decidí cambiar la PLA-Flash por algo más fiable.

Hay varios fabricantes particulares que venden PLAs ya hechas, pero como la gracia está en hacérsela uno mismo, veamos qué hay en Internet:

Básicamente ahora mismo hay 2 opciones "libres", y digo libres porque los autores de las placas han publicado generosamente los esquemas, PCBs y el PLD/VHDL para que cada cuál se las haga, en contraposición a PLAs como la "PLAnkton", que se venden ya hechas y tanto el esquema como el VHDL están considerados "secreto comercial" (20 años después de la quiebra de Commodore y en plena era de la información).

1. Opción "MattisLind":
- Placa: https://oshpark.com/shared_projects/fJN4h1Z9
- Explicación y código: https://github.com/mattisLind/82S100replacement

2. Opción "mcleod_ideafix":
- Placa: http://dirtypcbs.com/store/designer/details/7073/483/pla-replacement-module-for-c64
- Explicación y código: http://www.zonadepruebas.com/viewtopic.php?t=3852

Para la placa de mcleod se puede usar una XC9536 (5V, obsoleta) o una XC9536XL (3.3V, tolerante a 5V) si le añadimos un regulador LDO como explica él mismo en su página de dirtypcbs.

Para la de MattisLind se usa una CPLD ATF1502ASL-25AU44, que es de las pocas CPLD de 5V que no está obsoleta (¡¡aún!!).

Yo al final me decidí por la de MattsLind. Las CPLD andan igual de precio, pero en el mundo de las CPLD hay que mirar toda la cadena compilador - programador - cable - CPLD porque es todo muy privativo y una CPLD de Atmel no se puede programar con un cable USB Blaster de Altera, por ejemplo.

En el caso de Atmel, el software para "compilar" se llama WinCUPL, es gratis y está aquí: http://www.atmel.com/tools/wincupl.aspx. El WinCUPL genera un fichero JEDEC que subimos a la CPLD con otro programa gratuito, el ATMISP (http://www.atmel.com/tools/atmisp.aspx).

El programador es un tal ATDH1150USB que cotiza a 60€, a mí me parece demasiado teniendo en cuenta que solo sirve para programar la familia de CPLDs de Atmel (son solo 3). Afortunadamente si tenemos un ordenador con puerto LPT podemos hacernos este cable LPT MUY sencillo con un conector DB-25 macho y una resistencia de 33 ohm:



Pues nada, manos a la obra, lo primero fue pedir el material:
  • 3x placas (OSHPark, $5.50). Tiempo en llegar: 23 días.
  • ATF1502ASL-25AU44, $2.38 en http://arrow.com (pedido de $20 para envío gratuito), tiempo de llegada 2 días con DHL, y sin parada en aduanas.
  • C 220nF cerámico 0805, Aliexpress, cinta de 200 por 2,18€ (tengo condensadores de 220 nF para TODA la vida).
  • 20x tira de 40 pines macho-macho de 0.33 mm de diámetro para que entre en todo tipo de zócalos sin demasiada presión, 8.56€

El conector DB-25 y la resistencia de 33 ya las tenía de proyectos arcaicos.

Poco a poco fue llegando todo... El premio al embalaje más absurdo y anti-ecológico fue para Arrow:



Las placas con su CPLD lista para montar:



El programador (los 5V para el VREF los cojo de un cable USB cortado por la mitad). Más información en este post en un foro de Amiga: http://eab.abime.net/showthread.php?t=64218&page=5



Obligada mención al autor original:



Aspecto final:



Montado:



Y funcionando!!!



Autor: este artículo es una colaboración de mjj
Publicado en el foro de Commodore manía http://commodoremania.com/foro/index.php/topic,1207

Publicar un comentario

3 Comentarios

  1. The PCB published on:
    http://dirtypcbs.com/store/designer/details/7073/483/pla-replacement-module-for-c64
    contains an error because the TDO signal with GND is short-circuited! I do not understand why nobody reports it. Do not buy that PCB.

    ResponderEliminar