[APORTE] Programar diferentes memorias en un TL866CS

1, 2, 3, 4, 526
Nanths
MegaAdicto!!!
4.143 mensajes
desde may 2001
en lejos de Ikebukuro :_
Editado 6 veces. Última: 17/04/2016 - 11:43:04 por Nanths.
No sabía muy bien donde poner esta información así que he decidido crear este hilo; no como guía o tutorial sino como aporte.

Todo empezó cuando me dispuse a programar las memorias 29F032 con el Willem. Tenía que comprar el adaptador y, viendo los problemas y la lentitud de grabar las EPROM 27C801, pensé que me ahorraría problemas comprando un programador USB como el QG-4X, pero claro, este programador sin adaptadores ya cuesta cerca de 100 euros y el adaptador para TSOP48 ya son cerca de 30 euros o más... Como no hago negocio con esto busqué una alternativa, quizás de menor calidad y prestaciones pero más económica. Entonces encontré el MiniPRO (TL866 para los amigos) y vi que podía cumplir con los requisitos que buscaba, es decir: rapidez, comodidad (no hay jumpers), económico y con la posibilidad de tener menos problemas con las 27C801. Lo busqué en aliexpress y me ha costado 62,38 euros puesto en casa, incluye adaptadores para SOP8, PLCC44, PLCC32, TSOP40 8bits, TSOP40 16bits, TSOP32 y TSOP48.

Ahora viene lo malo. El programador es compatible con 13.138 circuitos integrados pero no puedes modificar la base de datos para incluir los que realmente necesitas... así que la primera sorpresa que me llevé es que en la base de datos del software no esta incluida la memoria AM29F032B... que es la principal razón por la que compré el programador. :sadpanda: Busqué una solución por la red, en un foro anglosajón comentaban que no se podía modificar la base de datos sin ingeniería inversa, en un foro alemán explicaba como crearse un adaptador un poco rebuscado para el uso en repros de Super Nintendo y en un foro chino pensaban en utilizar un editor hexadecimal dividiendo la rom y engañando al software... Ya pensaba que había tirado el dinero (otra vez) cuando por no se qué razón encontré en la base datos del programador las memorias MBM29F033C de Fujitsu, que tienen las mismas características y pinout que las AM29F032B de AMD y, en efecto, puedo grabar las memorias de AMD con la opción de las Fujitsu :D
Como no encontré esta información por internet quise compartirla con vosotros (y los otros) pero ya que indico como se graban estas memorias, quisiera aprovechar el hilo y explicar cómo grabar las diferentes memorias que se utilizan para repros en este foro (Super Nintendo, Game Boy, NES...) con el TL866CS. Creo que es una información útil para los poco iniciados.

Foto del programador, veréis que solo lleva un ZIF de 40 pines así que por eso son necesarios los adaptadores:

Imagen

Memorias que pueden grabarse:
-M27C801 (DIP32), AM290F32B (TSOP40), PIC 16F630, PIC 12F629, AM29F040B (PLCC32), AM29F800B (SOP44), AM29F080B (TSOP40), AM29F016D (TSOP40).

Memorias que no pueden grabarse (que yo sepa):
-M27C322 (DIP42)*, M27C160 (DIP42)*, MX29L3211 (SOP44).

*Ahora sí con el adaptador de 16 bits.

Un vistazo al software:

Imagen

He numerado los pasos a seguir cuando vamos a programar una memoria en general:

1.- Comprobar que el software detecta el programador.
2.- Elegir en la base de datos la memoria a programar.
3.- Pulsar en Information para comprobar cómo se coloca la memoria o que adaptador es necesario.
4.- Hacer un blank check para asegurarnos que la memoria esté vacía.
5.- Elegir la ROM. a grabar.
6.- Programar la memoria con la ROM.


Programando M27C801:

La EPROM debe de colarse tal y como indica en la imagen:

Imagen

La palanca del ZIF primero debe de estar subida y luego la bajamos para presionar la memoria. Es importante ajustarla para que los pines hagan buen contacto.

En el siguiente video veréis los pasos a seguir:

http://youtu.be/92m_Vtif8kM


Programando AM29F032B:

Debe de colocarse en este adaptador de 8 bits:

Imagen

La flash debe de colocarse en la parte más alta del zócalo:

Imagen

Y el pertinente video de cómo se programa con el “truquito” de desactivar Check device ID.

http://youtu.be/m9Ujbb2kF98


Utilizando el adaptador de 16 bits.

Gracias a los amigos de circuit-board.de, ahora tenemos la posibilidad de programar las EPROMs 27C400, 27C800, 27C160 y 27C322 con el nuevo adaptador de 16 bits. No está a la venta y hemos tenido que acabar el diseño de los alemanes aquí, en EOL, y éste es el zip con los archivos gerber para que cada uno pueda fabricarlo por su cuenta. El susodicho adaptador:

Imagen

Programar con este adaptador no es tan sencillo como se pueda pensar, bueno no es complicado pero sí que puede resultar tedioso con las 27C322, es por ello que en el foro alemán no tenían claro si valía la pena hacer compatible estas últimas por el tiempo que consume programarlas.

El funcionamiento de este adaptador es engañar al TL866 eligiendo como EPROM a programar la 27C4002, que tiene un tamaño de 256 kbytes en modo 16 bits (512 kbytes en 8 bits) y programando la rom divida en partes de 512 kbytes, tantas partes como tamaño tenga la EPROM de destino. Es decir, si una EPROM 27C800 tiene una capacidad de 1024 kbytes dividiremos la rom en dos partes de 512 kbytes, si una EPROM 27C160 tiene una capacidad de 2048 kbytes dividimos la rom en cuatro partes y si la 27C322 tiene una capacidad de 4096 kbytes, dividimos la rom en ocho partes.

Esto quiere decir que si tenemos ocho partes tenemos que programar la EPROM ocho veces… por eso puede resultar tedioso. La alternativa es comprarse un programador de 300 euros. [carcajad]

El segundo problema es que el software del TL866 tiene un bug que al cargar el archivo a programar en la interfaz se muestra el código con los bytes intercambiados, que sería lo correcto, pero en realidad no cambia el archivo y lo programa tal cual. Es por eso que el primer paso es intercambiar los bytes con un programa externo como el que está disponible en este hilo. (aquí).

El adaptador y sus conmutadores.

El adaptador lleva dos tipos de conmutadores para poder configurar el tipo de EPROM a programar y la dirección a la que vamos a programar dentro de la EPROM. No voy a liarme con la teoría, este tutorial es para solo para saber cómo usar el adaptador.

El primer conmutador, deslizande de dos posiciones, sirve para elegir si la EPROM a programar es una 27C322 o cualquier otra. Aviso: la serigrafía está invertida. Como tuve que redireccionar todas las pistas para el nuevo conmutador no me fijé y puse al revés la leyenda… No es nada grave, simplemente si queréis programar una 27C322 la posición correcta del conmutador es “resto” y para las demás EPROM lo dejáis en “27C322”. Esto lo cambiare antes de colgar los gerber. (Ya está cambiado.)

El segundo conmutador de tres circuitos es el que más usaremos durante el proceso. Antes de programar cada sección del archivo tendremos que configurarlo tal y como indico en cada imagen.

Preparando los archivos.

Si optáis por usar el programa que se encuentra en el hilo para cambiar el orden de los bytes, abrimos una ventana de comandos en windows:

swapendian.exe archivo.ext


Después hemos de dividir el archivo en partes de 512 kbytes. Yo uso la herramienta de dividir que tiene el editor hexadecimal HxD.

Programando.

La posición de la EPROM en el ZIF siempre es en la parte inferior del conector, dejando cuatro filas de espacio en la parte superior del ZIF, en caso de la 27C400, o tres filas vacías para el resto.

Los siguientes pasos aparecen en el video del final, donde se programa una 27C322. Como programar esta memoria incluye todos los pasos de las anteriores, solo he puesto un video.

  1. Elegimos en el menú del software MiniPro la memoria 27C4002.
  2. Cambiamos los valores de los voltajes para estar dentro de un margen de seguridad.
  3. Elegimos el archivo a programar según la EPROM:

    -27C400: Solo es un archivo de 512 kbytes. La posición de los conmutadores no se altera:
      Imagen

    -27C800: Conmutadores según sección:
    • 1ª sección: Imagen
    • 2ª sección: Imagen

    -27C160: Conmutadores según sección:
    • 1ª sección: Imagen
    • 2ª sección: Imagen
    • 3ª sección: Imagen
    • 4ª sección: Imagen

    -27C322: Aquí cambia el primer conmutador con respecto al resto de EPROM y también el segundo conmutador tal que así:
    • 1ª sección: Imagen
    • 2ª sección: Imagen
    • 3ª sección: Imagen
    • 4ª sección: Imagen
    • 5ª sección: Imagen
    • 6ª sección: Imagen
    • 7ª sección: Imagen
    • 8ª sección: Imagen

Y a continuación un video para que tengáis más claro todo el proceso:

https://youtu.be/5VD4RIPihyI


Hasta la próxima... [bye]
Prometius
What´s for dinna
2.806 mensajes
desde abr 2008
en Gamelon
Muchas gracias por el aporte. Una duda un poco tonta... ¿Con ésto podría crearse el cartucho de famicom multijuegos definitivo?
Nanths
MegaAdicto!!!
4.143 mensajes
desde may 2001
en lejos de Ikebukuro :_
Bueno, no se como se hace el cartucho famicom multijuegos definitivo pero sumando el programador, el donante, la memoria o diferentes memorias... creo que sale más a cuenta y da menos problemas un everdrive, que ya sería multijuego. :)
1985a
MegaAdicto!!!
2.500 mensajes
desde nov 2012
en /home/$USER/tmux
Bueno, te la haz curado y muy bien.

Aun no he hecho mi primera repro, por lo caro que me va salir todo el equipamiento, pero creo que con este ya me estaré ahorrando algunos $$$.

Voy a probarlo, en cuanto pueda.
salvor70 mod
MegaAdicto!!!

Staff
Moderador
13.254 mensajes
desde jun 2008
en Bilbao
lito69
MegaAdicto!!!
3.024 mensajes
desde ene 2007
en Barcelona
Editado 1 vez. Última: 26/11/2015 - 02:14:14 por lito69.
Muchas gracias por el tutorial @nanths , las 16f630 como las grabas?
Nanths
MegaAdicto!!!
4.143 mensajes
desde may 2001
en lejos de Ikebukuro :_
Los PIC 16F630, si es tipo DIP, solo tienes que ponerlo según indica el programa (dando a information), seleccionar en IC el 16F630, cargar el programa, darle a programar... y si te pregunta de modificar el OSCAL le dices que no. Vamos, todo esto lo digo de memoria pero no tendrías que tener ningún problema. :)
lito69
MegaAdicto!!!
3.024 mensajes
desde ene 2007
en Barcelona
O´Neill
Retirado
11.419 mensajes
desde sep 2004
en Abydos
Oscilador interno del pic.
lito69
MegaAdicto!!!
3.024 mensajes
desde ene 2007
en Barcelona
Velocidad? Bueno, le pongo que no y fuera ;)
1, 2, 3, 4, 526