Programar manualmente una PROM

Hola,

Soy nuevo en el foro, ya he dejado mi presentación en el hilo de prensentaciones, espero que me podais ayudar en el siguiente tema:

Tengo una maqueta de tren, ésta maqueta tiene un enclavamiento que regula la circulación de los trenes y los aspectos de las señales. El caso que para éstas señales necesito un pequeño "decoder" de 4 entradas y 4 salidas correspondientes a los LEDs de las señales, el caso es que el decoder se encargaría de convertir el valor de sus entradas a una combinación luminosa de los LEDs. Inicialmente pensé en implementar el decoder con integrados discretos y funciones lógicas, pero tengo muchas señales, por lo tanto necesito algo mas compacto y mas barato, por lo tanto pensé en usar una memoria ROM. Buscando por internet topé con la PROM AM27S13, es una PROM de 2048*4 bits, con encapsulado DIP de 16 pines, algo muy adiente para mi diseño.

El caso es que en el datasheet no queda claro como hay que programarla o si se puede programar, de momento he comprado 3 para provarlas en la protoboard, de momento las cosas no va bién pues la he montado en configuración de lectura, he conectado 4 LEDs a las Outputs y luego el enable a 0 para que esté habilitada. La respuesta es que no se enciende nada y es raro pues es una memoria de fusibles, por lo tanto debería todos los bits de todas las direcciones a 1, y aun más raro pues se calienta un poco y el consumo es de unos 80mA. Entonces, mi pregunta es si alguien ha trabajado alguna vez éstas memorias, si se pueden programar manualmente o si a alguien se le ocurre una solución parecida con otro tipo de memoria? Muchas gracias! Saludos!;)
 
Hola Amigo, cuentanos de cuantas señales de entrada dispones y cuantas salidas necesitas actuar y veremos si existe alguna mejor alternativa, aun asi, si estas decidido a utilizar una memoria para tu cometido, utiliza una del tipo, 28CXX, te ofrece la posibilidad de modificar datos, en cambio una memoria del tipo PROM no es posible revertir algun estado!.
 
Última edición:
Hola Nixie

Según entiendo esa memoria es programada en las líneas de producción del fabricante.
Busca en Google.com la especificación militar MIL-STD-883 para que lo descubras.

saludos
a sus ordenes
 
Por lo que he leído, cuando están "Virgenes" todas las salidas están a nivel lógico "0" ya que hay unos fusibles que cortocircuitán a masa una tensión.
Para poner un "1" hay que fundir ese fusible, pero no encuentro la expecificación para hacer esto.
Supongo y digo supongo, que habrá que diricionar la posición que queremos programar y de alguna manera introducir tensión por las salidas que queramos poner "1" fundiendo el fusible.
Seguiré investigando. :unsure:

Sal U2
 
Aquí esta la tabla de la verdad que quiero implementar. Con componentes descretos necesito 3 integrados, el 4069, 4071 y 4081.



Por lo que he leído, cuando están "Virgenes" todas las salidas están a nivel lógico "0" ya que hay unos fusibles que cortocircuitán a masa una tensión.
Para poner un "1" hay que fundir ese fusible, pero no encuentro la expecificación para hacer esto.
Supongo y digo supongo, que habrá que diricionar la posición que queremos programar y de alguna manera introducir tensión por las salidas que queramos poner "1" fundiendo el fusible.
Seguiré investigando. :unsure:

Sal U2

En el Data sheet, en Absolute Maximum Ratings, pone algo de tensión máxima en las salidas durante la programación, y ésta es de 21V
 

Adjuntos

  • senyals_veritat.JPG
    senyals_veritat.JPG
    12 KB · Visitas: 22
Última edición:
Hola Nixie

Efectivamente, por leer superficialmente las hojas de datos que adjuntaste para el AM27S13 no visualicé que se puede programar en el campo o en las líneas de producción del fabricante.
Lo mencionan, como dices, en Absolute Maximum Ratings (DC Voltage Applied To Outputs During Programming 21 V) y también donde describen como formar el número de parte.
Además menciona que la máxima corriente aplicada a las salidas puede ser de 250mAmp. Por un periodo de tiempo Máximo de 1 Seg. Cuando se está programando.
Y, mencionan en las hojas de datos, que si se exceden esos parámetros se puede dañar permanentemente o disminuir la confiabilidad(Reliability) del dispositivo.

Entonces ya podríamos programar esa PROM manualmente. Sin embargo en el primer párrafo de tu mensaje #7 haces mención de una tabla de verdad, que aparece al calce de ese mensaje y que necesitas 3 integrados: el 4069, 4071 y 4081.
Esos integrados para qué se utilizarían ??. Para hacer un circuito que cumpla con la tabla de verdad ??. No vas a utilizar la PROM ??.

En las tablas de verdad hay que definir cuales son entradas y cuales salidas.
Si MC, MS, A, AP son entradas y las restantes salidas se puede hacer el circuito fácilmente con el Boole-Deusto, es un Software que por aquí en el foro lo puedes encontrar.
https://www.forosdeelectronica.com/f25/display-555-a-67604/#post592374

pero si aquellas no son las entradas entonces falta definir el estado de las entradas para que el circuito cumpla con esa tabla de verdad

saludos
a sus ordenes
 
Hola,

En la tabla de la verdad que he adjuntado, la parte de la izquierda corresponde a las entradas, mientras que la derecha son las salidas. Originalmente pretendía realizar el circuito con los 3 integrados que he citado, ya que al hacer el diseño necesitava 4 NOT, 4 OR y 4 AND, pero luego pensé de provar con una PROM, porque era mucho mas simple conectar un solo integrado que no 3.

Respecto a la PROM, he montado el esquema que adjunto en la protoborad, tanto el direccionamiento como los interruptores de programación son cables sueltos que voy puenteando. El caso es que introduzco los 20V en una de las salidas y lo único que sucede es que por las otras sale un '1' logico, es decir, se encienden todos los LEDs. Al quitar los 20V todo sigue igual. En alta impedancia no sucede nada.
 

Adjuntos

  • Memoria_AM27S13.JPG
    Memoria_AM27S13.JPG
    46.4 KB · Visitas: 26
Hola Nixie

Veo en la imagen que adjuntaste que la entrada G de la PROM la tienes conectada a Tierra.
Creo que para programarla esa entrada debe ser falsa, Nivel Alto.
Prueba de ese modo.

saludos
a sus ordenes
 
Hola...disculpe que me meta pero es tan sencillo hacerlo con un PIC que en 10 minutos hice el esquema , el programa y corrí la simulación ene el Proteus.

Les adjunto los archivos.

Saludos.


Ric
 

Adjuntos

  • SemaTren.zip
    30.8 KB · Visitas: 19
Última edición:
Respeto lo de desconectar la patilla G, en el anterior post ya he dicho que no sucede nada, tan sólo se enciende el LED, y ya no se me ocurre nada mas...

Respecto al uso de un PIC, pienso que son desestimar los recursos que ofrece el PIC, en todo caslo que que podría provar es de hacer un decoder para varias señales, lo tendré que estudiar...
 
Hola Nixie

No se trata de desconectar la patilla(PIN) llamada G sino de conectarla al Vcc.
En la mayoría de los casos una desconexión de algún PIN no es igual a aplicarle un nivel alto(1)
Prueba conectando ese PIN(G) al Vcc.

saludos
a sus ordenes
 
Pues finalmente lo he conseguido!:)

Buscando por google he topado con un PDF con las especificaciones tecnicas de fabricación de las memorias y microcontroladores de ésta famíla y entre ellas cuenta cómo se programan: hay que colocar 20V a la salida que se quiera poner en estado alto, y luego aplicar 15V a la patilla G, es entonces cuando se funde el fusible y queda un '1' a la salida. Hay que ir en cuidado de que toda la operación dure menos de 1s. Adjunto link:

http://www.o2xygen.com/photo/AM27S13-BEA/AM27S13-BEA_001.pdf
 
Atrás
Arriba