grabador eproms para atari

Upload: yuvitza23

Post on 14-Jul-2015

98 views

Category:

Documents


8 download

TRANSCRIPT

GRABADOR DE EPROMS PARA ATARIPor ZZT Es un agrado publicar este circuito que permite grabar o leer eproms. Este se conecta al puerto de los joysticks y al cartridge de cualquier computador Atari, de preferencia el modelo 800XL. No se preocupen si usan otro modelo (65XE o 130XE), el programa trabaja con bloques de 8K y por lo tanto no importa la cantidad de RAM.

En mi caso, por comodidad y debido al poco espacio disponible en mi taller, prefer atornillar el circuito directamente en un noble Atari 800XL que estaba en desuso, pero comprendo que no todo el mundo tiene varios Atari, como para llegar y perforarles la carcaza, as que es ms recomendable ponerlo en una caja aparte. Yo mismo, anteriormente, desarroll una versin que fue ensamblada en la carcaza de una casetera Atari XC12 y otra versin "light" la realiz en un cartridge.

El circuito en cuestin sirve para grabar o leer la eprom ms popular del mundo, me refiero a la 27C512 de 64K. Esta puede ser encontrada en placas madres de PC-XT y en una gran cantidad de artefactos electrnicos, por lo tanto es ideal a modo de ejemplo.

Aunque no todas las eproms se graban de la misma manera, sta se acerca bastante al promedio y en todo caso, el sistema aqu propuesto pueden adaptarlo a otros tipos de eprom, redirecionando las funciones de cada pin mediante dip-switch.

El circuito consta de 2 contadores binarios 74LS393, que es un contador binario doble. Ellos proveern las direcciones de la eprom desde A0 hasta A15. Los datos fluirn desde el puerto de los joysticks por el chip 74LS245, que es un buffer paralelo de 8 bits. Las seales de control provienen del chip 74LS259, que es un latch direccionable controlado por unas NAND 74LS00, que solo son unas compuertas lgicas que se usan para detectar los pokes correspondientes. Por que usar el puerto de los joysticks para enviar o leer el dato? Por que el puerto de los joysticks nos aliviana el diseo del circuito. Esto se debe por que al enviar el dato, ste permanece sin cambiar hasta que enviemos el siguiente (latch). As nos evitamos tener que poner un Latch externo y circuitos que lo controlen, fcilmente nos ahorramos 3 chips y varios cables. Y lo ms importante es que puerto de los joysticks es bidirecional, por eso podemos leer o grabar. Breve descripcin del dispositivo EPROM 27C512: Eprom significa Erasable Programable Read Only Memory (Memoria solo de lectura borrable y programable). Esto quiere decir que en una eprom podemos guardar informacin para luego leerla y/o borrarla (por si queremos volver a grabarla). Su estructura interna es una matrix de celdas que se cargan al aplicarle un voltaje de 12.5V y 6V y as quedan hasta que por medio de una ventana en su parte superior le aplicamos luz UV de una longitud de onda especfica.

La eprom 27C512 almacena 64KB, osea 1024x64=65535 direcciones, de 8 bits cada una. Las cuales son seleccionadas en los pines marcados "A" (address) y van desde A0 a A15. El bus de datos es de 8 bits y corresponde a los pines marcados "Q" (Data) y van desde Q0 a Q7. La alimentacin del dispositivo es de 5V para el modo normal de lectura y 6V en el modo de grabacin. Esa alimentacin entra por el pin 28 "Vcc" (positivo 5v-6v) y el pin 14 "Vss"" es GND o tierra. El pin 20 "E" tiene 2 funciones: en el modo de lectura solo habilita (0) o deshabilita (1) el dispositivo, pero en el modo de grabacin es el que indica grabar el dato. El pin 22 "GVpp" tambin tiene 2 funciones: en el modo de lectura debe estar a 0 (gnd), pero en el modo de grabacin debe recibir 12.5V. Esta eprom se borra aplicndole luz UV de un largo de onda de 253,7 nanometros a unos 2.5cms. encima de la ventana transparente. De donde saco 12V y 6V? Para solucionar el problema de los voltajes, debern hacer una fuente doble con un integrado LM7812 y un LM7806, para los 12 y 6 volts respectivamente. Como se graba una eprom? En el caso particular de la eprom 27C512, sta graba un dato siempre y cuando la pata 28 (Vcc) este alimentada por 6V, la pata 22 reciba 12.5V y la pata 20 pase de estar en 1 a 0 (Este es el famoso pulso de grabacin). Reitero: el dato NO se graba hasta que la pata 20 es 0. Ahora cada eprom tiene una data sheet en la cual se indica el "tamao" o duracin de ese pulso, expresado en mili segundos (ms). Eso es realmente crtico, pues si no lo respetamos al final del proceso de grabacin lo ms probable es que tengamos una eprom en blanco o bien una eprom con muchos errores de grabacin. Como se borra una eprom? Ac tenemos un punto que desalentar a muchos. Las Eproms una vez grabadas se pueden borrar (en el caso que queden mal grabadas), pero para tal efecto deben ser expuestas a una luz UV de una longitud de onda especifica generada en un borrador de eproms. No sirven los aparatos para detectar billetes falsos ni los tubos de luz "UV" utilizados en discotecs. La luz del sol y tubos fluorescentes normales las borran, pero en un lapso de varias semanas. Hay versiones comerciales de estos, aunque por el precio no son recomendables. En el peor de los casos, debern fabricarse o comprar uno.

CIRCUITO ESQUEMTICO

MATERIALES2 1 1 1 1 1 x 1 1 74LS393 74LS245 74LS259 74LS00 EPROM 27C512 (o varias) Placa perforada para montar el circuito Bases porta integrado para cada chip Interruptor de doble accin Resistencia de 1K

ARMADOPlanea una placa para contener todos los chips. Puedes usar una perforada o hacer una personalizada. Recuerda poner bases porta integrado para todos los chips.

Se recomienda esta distribucin de los componentes. Como se puede apreciar es bastante simple. No trates de hacer un circuito muy complejo, con lneas que pasen a travs de pines de los integrados. Si es necesario realizar varios "puentes" no te precocupes, a nadie le va a importar eso. Lo realmente importante es que el circuito funcione bien.

Con ms experiencia se puede llegar a realizar un circuito ms complejo como el presentado a continuacin:

Se que les va a llamar la atencin que en este circuito hay muchos LEDS. Estos son muy tiles para controlar las funciones del sistema, adems se ve muy bonito. Tambin hay unos dip-sw para poder grabar diferentes tipos de eproms, un contador extra para eproms ms grandes y un plug para la entrada de los 12.5v.

Para la eprom recomiendo una base ZIF (Zero Insertion Force), pero sabiendo que son caras y/o difciles de encontrar puedes usar una normal de 28 pines. Yo no pude conseguirla, as que use una comn y corriente, la que me ha dado buenos resultados, aunque se desgasta bastante dependiendo del uso. Las seales marcadas J1 y J2 van a los joystick 1 y 2 respectivamente. Hay otras seales que provienen de conector del cartridge: CCTL, 02, A0, A1, A2, D0, Vcc y Gnd. Tendrs que usar un cartridge para enchufar al conector del mismo o bien usar el puerto paralelo del Atari, que se encuentra en la parte de atrs, excepto que la seal CCTL no est presente ah y debers cablearla.

Aqu est el detalle de la ranura del cartridge de un 800XL mirado desde arriba y teniendo el teclado hacia adelante.

1=S4 2=A3 3=A2 4=A1 5=A0

6=D4 7=D5 8=D2 9=D1 10=D0

11=D6 12=S5 13=+5V 14=RD5 15=CCTL

A=RD4 B=GND C=A4 D=A5 E=A6

F=A7 G=A8 H=A9 J=A12 K=D3

L=D7 M=A11 N=A10 O=R/W P=02

En est imagen se puede apreciar la distribucin de las datos en el puerto de los joysticks de un noble Atari 800XL. Para los voltajes de grabacin VccEprom y Vpp recomiendo colocar un interruptor doble que conmute los voltajes, ya que en modo de lectura VccEprom debe ser 5V y Vpp debe conectarse a GND. Todos los chips son TTL, muy baratos y se encuentran en el comercio o placas antiguas.

Eventualmente puedes colocar el circuito en una casetera (como el de la imagen), que es uno de los primeros que realiz. Quedo bastante cool y soluciona el problema de comprar una caja de plstico o metalica. Funcionamiento: El lector/grabador se maneja de la siguiente manera: Puerto de los joy modo de escritura o entrada de datos: POKE 54018,60 Puerto de los joy modo de grabacin o salida de datos: POKE 54018,43 Borrar los contadores: POKE 54600,1/POKE 54600,0 (debe permanecer en 0 para contar) Pulso de reloj POKE 54601,1 + POKE 54601,1 (aumenta en uno al pasar de 1 a 0) Pulso para grabar la eprom POKE 54602,0 + POKE 54602,1 Para enviar los datos al puerto de los joy POKE 54016,DATO Para recibir los datos del puerto de los joy DATO=PEEK(54016) Para setear lectura al buffer POKE 54603,1 Para setear grabacin al buffer POKE 54603,0

Programas para usar el sistema: Necesitaras una imagen .atr con MYDOS, y otra que contenga un archivo .ROM en el caso que quieras grabarlo en la eprom o bien solo el MYDOS en caso que quieras leer una eprom y pasarla a archivo. Recomiendo utilicen una .atr vaca para insertar la imagen de la eprom. Conecta el cable SIO2PC al Atari, arranca con el MYDOS, tipea y graba los siguientes programas en la imagen .atr. Si no tienes el cable puedes usar el sistema solo con cualquier disketera y DOS 2.5, aunque este DOS tiene muchas limitaciones. Para grabar una eprom: 10 POKE 764,255: GR.0: PRINT "MODO GRABACIN" 11 POKE 54018,43:REM PONE EL PUERTO DE LOS JOYSTICK EN MODO DE SALIDA DE DATOS 12 POKE 54600,1:POKE 54600,0 : REM BORRA LOS CONTADORES Y DEJA LISTO PARA COMENZAR A CONTAR 13 POKE 54601,1: REM DEJA EL PULSO DE RELOJ DE LOS CONTADORES EN 1 14 POKE 54602,1: REM DEJA EL PULSO DE GRABACIN EN MODO DE ESPERA 15 POKE 54603,1: DEJA EL GRABADOR EN MODO GRABACIN 16 PRINT "CONECTE Vpp Y VccEPROM Y PRESIONE UNA TECLA PARA COMENZAR" 17 IF PEEK(764)=255 THEN GOTO 16 30 OPEN#1,4,0,"D:NOMBRE.ROM" : ABRE EL ARCHIVO QUE QUEREMOS TRASPASAR A LA EPROM 40 TRAP 90: GET#1,DATO: REM TOMA UN DATO DEL ARCHIVO Y LO DEJA EN LA VARIABLE "DATO" 50 POKE 54016,DATO : ENVA EL DATO AL PUERTO DE LOS JOYSTICKS 60 POKE 54602,0:POKE 54602,1 : REM PULSO DE GRABACIN 70 POKE 54601,1:POKE 54601,0: REM AUMENTA LOS CONTADORES EN UNO 80 GOTO 40: VAYA A TOMAR EL SIGUIENTE DATO (HASTA QUE SE ACABEN) 90 CLOSE#1 : REM CIERRE EL ARCHIVO DEL CANAL 1 100 PRINT ".:: HAVE A NICE DAY:.": REM MENSAJE DE FINALIZACIN SAVE"D:GRABADOR.BAS" Para leer una eprom: 10 POKE 764,255: GR.0: PRINT "MODO LECTURA" 11 POKE 54600,0:POKE 54600,1 : REM BORRA LOS CONTADORES Y DEJA LISTO PARA COMENZAR A CONTAR 12 POKE 54601,1: REM DEJA EL PULSO DE RELOJ DE LOS CONTADORES EN 1 13 POKE 54602,0: REM DEJA EL PULSO DE GRABACIN EN MODO DE LECTURA 14 POKE 54603,0: REM DEJA EL GRABADOR EN MODO DE LECTURA 30 OPEN#1,8,0,"D:NOMBRE.ROM" : REM CREA EN EL DISKETE EL ARCHIVO QUE RECIBIR LOS DATOS 35 FOR CONTADOR=0 TO 65535: REM CANTIDAD DE BYTES QUE SERAN LEIDOS 40 DATO=PEEK(54016): REM LEE EL DATO DESDE EL PUERTO DE LOS JOYSTICKS 50 PUT#1,DATO: REM TOMA EL DATO Y LO GRABA EN EL ARCHIVO

70 POKE 54601,1:POKE 54601,0: REM AUMENTA LOS CONTADORES EN UNO 80 NEXT CONTADOR: REM VAYA A TOMAR EL SIGUIENTE DATO HASTA QUE SE ACABEN 90 CLOSE#1 : REM CIERRE EL ARCHIVO DEL CANAL 1 100 PRINT ".: HAVE A NICE DAY:.": REM MENSAJE DE FINALIZACIN SAVE"D:LECTOR.BAS" REM: Los REM pueden ser borrados si gustan. :-) Esto es lo ms bsico, vern que los programas son sencillos y esto es debido a que el hardware diseado por mi le ayuda en ese sentido. Espero que les sea de utilidad. Los invito a implemententar mejoras o hacer los programas en otro lenguaje para una mayor perfomance del sistema. Cualquier duda pueden consultar en el foro.