Autor Tema: PLA basada en CPLD ATF1502... ¡¡funciona!!  (Leído 8981 veces)

mjj

  • Commodore Master
  • *****
  • Mensajes: 456
  • SYS 0
    • Ver Perfil
PLA basada en CPLD ATF1502... ¡¡funciona!!
« en: Octubre 14, 2017, 04:42:04 »
¡¡Buenas!!

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

¿Os acordáis que este verano resucité mi C64 con este engendro casero de PLA basado en una Flash de Atmel?



Pues lo último de esta PLA es que 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!!!






josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13630
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:PLA basada en CPLD ATF1502... ¡¡funciona!!
« Respuesta #1 en: Octubre 15, 2017, 01:06:35 »
Impresionante! tú te lo guisas y tú te lo comes.

Si no te molesta, ¿podría reproducir esta entrada en mi blog?
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

mjj

  • Commodore Master
  • *****
  • Mensajes: 456
  • SYS 0
    • Ver Perfil
Re:PLA basada en CPLD ATF1502... ¡¡funciona!!
« Respuesta #2 en: Octubre 15, 2017, 11:53:32 »
Jaja claro, ¿en cuál? Tienes varios :D  El mérito es de los autores de las placas.

Hay otra opción más con una CPLD de Altera, pero el acabado final es más matojo de cables y yo quería una PCB ya hecha, pero el artículo está muy currado y explicado. Lo bueno de Altera es que el programador clónico chino vale 2€, y el software tiene prueba de 30 días, incluso una versión "lite" gratuita que no sé si servirá para programar las CPLD, así que en conjunto también es bastante low cost:

http://ezcontents.org/commodore-64-pla-chip-replacement

Naibor

  • Commodore Master
  • *****
  • Mensajes: 1108
  • LOAD "*",8,1
    • Ver Perfil
    • Commodore 64 Full
Re:PLA basada en CPLD ATF1502... ¡¡funciona!!
« Respuesta #3 en: Octubre 15, 2017, 13:01:41 »
Qué gran trabajo mjj muchas gracias por compartir !!!
Jack Tramiel - "If there's one thing a Commodore 64 can't do, it's nothing"

https://www.youtube.com/@commodore64full

Naibor

  • Commodore Master
  • *****
  • Mensajes: 1108
  • LOAD "*",8,1
    • Ver Perfil
    • Commodore 64 Full
Re:PLA basada en CPLD ATF1502... ¡¡funciona!!
« Respuesta #4 en: Mayo 12, 2018, 20:15:56 »
Estoy esperando esta placa que lleva una PLANKTON y me gustaría saber si es totalmente compatible con la original, y qué pruebas pudo hacerle para saber si realmente lo es.

Si alguno ya la tenéis instalada por favor dadme vuestra opinión, os lo agradecería mucho.

Jack Tramiel - "If there's one thing a Commodore 64 can't do, it's nothing"

https://www.youtube.com/@commodore64full

mjj

  • Commodore Master
  • *****
  • Mensajes: 456
  • SYS 0
    • Ver Perfil
Re:PLA basada en CPLD ATF1502... ¡¡funciona!!
« Respuesta #5 en: Mayo 13, 2018, 00:24:06 »
Quédate tranquilo porque esa PLA es la que más se parece a la original ahora mismo y además consume 1/5 que la original. Ante una PLA rota, yo JAMÁS la sustituiría por otra PLA original, con el tiempo volverá a fallar.

Si te quieres quedar más tranquilo, los problemas de compatibilidad suelen aparecer con cartuchos tiquis-miquis que usan técnicas especiales para mapearse/esconderse en memoria. Uno bastante problemático es el Fastload de Epyx (y sus derivados modernos), que usa la carga de un condensador como "temporizador" para mantenerse mapeado y requiere histéresis en las entradas y que los niveles lógicos sean lo más parecidos a los originales para mantenerse en memoria el tiempo necesario y no más ni menos.

Los cartuchos que usan biestables para conmutar entre 2 bancos de ROM también pueden dar problemas, por ejemplo el Super Zaxxon. El motivo es que no todas las entradas a la PLA conmutan a la vez, y por tanto la salida puede ser inestable hasta que todas las entradas han terminado de conmutar. Durante ese tiempo de inestabilidad puede presentarse una salida "absurda" que haga conmutar de banco al cartucho y corromper el juego.

La 1541 Ultimate también puede dar problemas, también si no se respetan los voltajes originales, aunque no sé muy bien por qué.

Precisamente esa PLA está diseñada con esos caso concretos en mente, así que no creo que tengas ningún problema con ellos (ni con nada).

Hay una charla interesante de su autor explicando todos los criterios de diseño partir del minuto ~5:

https://www.youtube.com/watch?v=ofg33zk9uCA

Naibor

  • Commodore Master
  • *****
  • Mensajes: 1108
  • LOAD "*",8,1
    • Ver Perfil
    • Commodore 64 Full
Re:PLA basada en CPLD ATF1502... ¡¡funciona!!
« Respuesta #6 en: Mayo 13, 2018, 00:30:11 »
Muchas gracias mjj, eso es lo que esperaba pir :).

Haré las pruebas que comentas cuando la reciba y os cuento.
Jack Tramiel - "If there's one thing a Commodore 64 can't do, it's nothing"

https://www.youtube.com/@commodore64full

Naibor

  • Commodore Master
  • *****
  • Mensajes: 1108
  • LOAD "*",8,1
    • Ver Perfil
    • Commodore 64 Full
Re:PLA basada en CPLD ATF1502... ¡¡funciona!!
« Respuesta #7 en: Mayo 17, 2018, 19:43:42 »
Llevo un rato probando la placa con la PLAnton y todo parece funcionar correctamente.

Demos Uncensored, Comma Ligt, Oxitron 13

Y juegos Super Zaxon, Moon Cresta y Perince of Persia , jugando un buen rato y todo perfecto.

Todo ello cargado desde la 1541U2+

El motivo por el cual me he agenciado esta placa es porque va zocalizada en los chips grandes y creo que en caso de fallo siempre y cuando sea de un chip en zócalo, será fácil de reparar.

Una cosa que he detectado con este modelo de panera, es que si no apagas y enciendes  después de ejecutar una demo se suele bloquear en medio de la ejecución de la siguiente demo que cargues con el U2+, no sé si me he explicado...

Con el C64C (placa corta) no me pasa, puedo cargar demos de forma indefinida sin apagar y encender el C64 y no se bloquea.

Jack Tramiel - "If there's one thing a Commodore 64 can't do, it's nothing"

https://www.youtube.com/@commodore64full

mjj

  • Commodore Master
  • *****
  • Mensajes: 456
  • SYS 0
    • Ver Perfil
Re:PLA basada en CPLD ATF1502... ¡¡funciona!!
« Respuesta #8 en: Mayo 17, 2018, 20:03:20 »
Una cosa que he detectado con este modelo de panera, es que si no apagas y enciendes  después de ejecutar una demo se suele bloquear en medio de la ejecución de la siguiente demo que cargues con el U2+, no sé si me he explicado...

Qué curioso... Me puedes decir un par de demos de una sola carga con las que te pase eso? (lo de una sola carga es para probarlo con el sd2iec, no tengo 1541U).

Naibor

  • Commodore Master
  • *****
  • Mensajes: 1108
  • LOAD "*",8,1
    • Ver Perfil
    • Commodore 64 Full
Re:PLA basada en CPLD ATF1502... ¡¡funciona!!
« Respuesta #9 en: Mayo 17, 2018, 20:50:02 »
Después de jugar a Bomberland
he cargado:
Chorus Rockerty
Daa Thoose Acid Pills
Lft Field Sort
2 of 5 Swirler

Y no se ha bloqueado, igual es algo que pasa con los multi carga o con algún turbo...
Jack Tramiel - "If there's one thing a Commodore 64 can't do, it's nothing"

https://www.youtube.com/@commodore64full

Naibor

  • Commodore Master
  • *****
  • Mensajes: 1108
  • LOAD "*",8,1
    • Ver Perfil
    • Commodore 64 Full
Re:PLA basada en CPLD ATF1502... ¡¡funciona!!
« Respuesta #10 en: Mayo 17, 2018, 22:34:46 »
Efectivamente confirmo que en mi caso, cuando llevas varias cargas sin apagar el C64, ejecutando Uncensored se bloquea un poco antes de pedir el cambio al disco 2, justo después de las figuras cuadriculadas 3d.

Otra diferencia que he notado entre panera y C64C es que funciona el reset del User Port aún teniendo conectado el U2+.

Con el 64C no funciona el reset del User Port si tienes conectado el U2+.

También, como es lógico la fuente (ladrillo blanco) se calienta mucho, pero mucho más con la panera que con el 64C, esto ya lo había notado con mi vieja panera y la cuña marrón que se pone al rojo vivo y hasta huele a resina chamuscada (esto no pasa con el ladrillo blanco)

Lo cual entiendo que es normal porque consume más que el 64C

Por cierto @mjj ¿como haces para cargar otro programa sin apagar con el SD2IEC?

Yo también tengo un SD2IEC y cada vez que quiero cargar algo diferente tengo que apagar o resetear el C64, cosa que con el U2+ no es ecesario, ya que accedes al menu con el botón central.
Jack Tramiel - "If there's one thing a Commodore 64 can't do, it's nothing"

https://www.youtube.com/@commodore64full

Naibor

  • Commodore Master
  • *****
  • Mensajes: 1108
  • LOAD "*",8,1
    • Ver Perfil
    • Commodore 64 Full
Re:PLA basada en CPLD ATF1502... ¡¡funciona!!
« Respuesta #11 en: Mayo 17, 2018, 23:16:23 »
Sólo añadir que igual el tema del bloqueo en algunas demos no es una característica del C64, es posible que pase igual en el C64C, pero que ha dado la casualidad de que no he hecho la misma secuencia.

Hoy es que estoy probando esta placa de forma intensiva, y dándole toda la caña que puedo a la PLAncton, que por cierto va fenomenal.
Jack Tramiel - "If there's one thing a Commodore 64 can't do, it's nothing"

https://www.youtube.com/@commodore64full

mjj

  • Commodore Master
  • *****
  • Mensajes: 456
  • SYS 0
    • Ver Perfil
Re:PLA basada en CPLD ATF1502... ¡¡funciona!!
« Respuesta #12 en: Mayo 17, 2018, 23:33:53 »
Efectivamente confirmo que en mi caso, cuando llevas varias cargas sin apagar el C64, ejecutando Uncensored se bloquea un poco antes de pedir el cambio al disco 2, justo después de las figuras cuadriculadas 3d.

Pues te diría de probarlo pero si es multicarga dudo que funcione con el sd2iec.

Con el 64C no funciona el reset del User Port si tienes conectado el U2+.

Anda, ¿y qué hace el reset en ese caso? ¿Nada? Me suena que el reset del userport iba directo al reset de la CPU, así que no sé qué brujería hará el U2+ para ignorarlo.

Por cierto @mjj ¿como haces para cargar otro programa sin apagar con el SD2IEC?

Yo también tengo un SD2IEC y cada vez que quiero cargar algo diferente tengo que apagar o resetear el C64, cosa que con el U2+ no es ecesario, ya que accedes al menu con el botón central.

Apagando o reseteando, no queda otra. Siempre tengo enchufados o el Easyflash3 o el Epyx Fastload, y ambos llevan botón de reset. A veces incluso hay que resetear el sd2iec también, pero solo si se ha quedado pillado con algún turbo, en general se da cuenta de que el C64 se ha reiniciado y se reinicia él también.

Naibor

  • Commodore Master
  • *****
  • Mensajes: 1108
  • LOAD "*",8,1
    • Ver Perfil
    • Commodore 64 Full
Re:PLA basada en CPLD ATF1502... ¡¡funciona!!
« Respuesta #13 en: Mayo 18, 2018, 07:21:58 »
Es un reset casero, de los que van al pin 1 y 3 del User Port si no recuerdo mal, y con El 64C con U2+ cuando pulsas no hace nada.

He cargado varias demos más como Wonderland , y nuvie y el test VSP durante 10 minutos, y todo correcto.

Así que entiendo que esta placa con PLAncton funciona de maravilla. De todas formas es el C64 que voy a usar a diario.

Así que ahora toca comprar unos disipadores para los chips que más se calientan, y también quiero hacerme de una fuente de alimentación .
Jack Tramiel - "If there's one thing a Commodore 64 can't do, it's nothing"

https://www.youtube.com/@commodore64full

mjj

  • Commodore Master
  • *****
  • Mensajes: 456
  • SYS 0
    • Ver Perfil
Re:PLA basada en CPLD ATF1502... ¡¡funciona!!
« Respuesta #14 en: Mayo 18, 2018, 10:01:58 »
Es un reset casero, de los que van al pin 1 y 3 del User Port si no recuerdo mal, y con El 64C con U2+ cuando pulsas no hace nada.

Ah, puede ser que tu botón de reset tenga un pequeño circuitillo resistencia+condensador, en ese caso es normal que teniendo otras cosas conectadas no vaya bien.

He cargado varias demos más como Wonderland , y nuvie y el test VSP durante 10 minutos, y todo correcto.

Pues excelentes noticias, lo de tener una placa con los zócalos ya montados si vas a cacharrear/diagnosticar es un lujo, si no pregúntaselo a @Angel_64 :D :D

Así que ahora toca comprar unos disipadores para los chips que más se calientan, y también quiero hacerme de una fuente de alimentación .

¿Tienes vista alguna? Yo creo que al final voy a optar por hacerme dos o tres. He visto varios esquemas bastante sencillos con reguladores eficientes para que no se caliente y protección de sobrevoltaje. Lo más caro es el transformador, que son unos 20€. Con el resto de componentes creo que por 30€ o 40€ se podría construir una fuente digna y segura.