Haz una pregunta
  Foros de Electrónica » Diseño digital » Circuitos lógicos combinacionales y secuenciales
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

10/08/2014 #1


Copiar datos de una ram a otra ram
Hola amigos deseo implementar un circuito que copie los datos de una ram que contiene 32768 direcciones y pasarla a otra memoria ram de la misma cantidad de direcciones osea una memoria ram de 32k,por el momento pienso en implementar un contador que cuente hasta esa cantidad para acceder a todas las direcciones de la memoria pero seria de gran ayuda alguna sugerencia de como implementarlo, de-repente alguiien hizo algo similar.
10/08/2014 #2


es una memoria ram o una eepron i2c?
10/08/2014 #3

Avatar de Sr. Domo

Hola y Bienvenido al Foro!

Si lo piensas hacer con lógica cableada, pues sí es un tanto fácil. Ahora una breve descripción:

Las memorias paralelas, RAM o EEPROM cuentan con unas líneas que sirven para seleccionar el chip, leer/escribir datos y para habilitar/deshabilitar la salida para leer o escribir datos. Estas líneas son CS, #WE y #OE
Además de estas líneas, están las líneas de direcciones y datos, las de direcciones son las que varían, pueden ir de A0 a A12 por ejemplo y las de datos por lo regular son de D0 a D7 o hasta D15.

Ahora, para leer un dato, debes introducir primero la dirección a leer, ésta dirección puede generarse desde un contador como el CD4040 donde las introduces en las líneas de dirección (obviamente).

Luego, para leer un dato, la línea CS debe estar en alto, la línea #WE también y la línea #OE debe estar en bajo, de esta forma la memoria sabrá que quieres leer un dato.

Con la línea CS le "avisas" que va a hacer algo, con la línea #WE en estado alto le indicas que quieres leer un dato y con la línea #OE en bajo le indicas que puede colocar los datos en sus salidas D0-D7.

Entonces al enviarle estas señales de control, la memoria te dará el dato que tenga en la dirección que le indicaste.

Ahora, para escribir un dato, necesitas introducirle la dirección donde quieres escribir, introduces de una vez el dato que quieres escribir en la dirección deseada, luego envías una señal alta a CS y a #OE, y a #WE le envías una señal baja para indicarle que le vas a enviar un dato.

De esta forma la memoria almacena el dato que le pusiste previamente en el bus de datos.

-------

Ahora, ya que tienes una idea de como leer y escribir en ellas, lo que necesitas hacer es leer una memoria y al mismo tiempo escribir ese dato en la otra, empleando la misma direeción del CD4040 y circuitos distintos para generar las señales de lectura en una memoria y escritura en la otra.

Lee el datasheet de las memorias que usarás para asegurarte que las líneas de control son iguales a las que te mencioné.

Salu2!!
10/08/2014 #4

Avatar de miguelus

Buenas noches.

Tienes que tener en cuenta que las Memorias RAM necesitan alimentación, si pierde la Alimentación, los datos que se hayan grabado se perderán

Tendrás que ingeniar una forma para asegurarte que haya alimentación permanentemente.

Sal U2
10/08/2014 #5

Avatar de Sr. Domo

miguelus dijo: Ver Mensaje
Buenas noches.

Tienes que tener en cuenta que las Memorias RAM necesitan alimentación, si pierde la Alimentación, los datos que se hayan grabado se perderán

Tendrás que ingeniar una forma para asegurarte que haya alimentación permanentemente.

Sal U2
Batería? recargable en paralelo con la fuente + regulador?

Podría funcionar?
10/08/2014 #6

Avatar de Gudino Roberto duberlin

Hola, pregunto!, de que tipos son las memorias que comentas? Estáticas o dinámicas, ya que el circuito cambia radicalmente para poder manejarlas.
11/08/2014 #7

Avatar de Sr. Domo

Gudino Roberto duberlin dijo: Ver Mensaje
Hola, pregunto!, de que tipos son las memorias que comentas? Estáticas o dinámicas, ya que el circuito cambia radicalmente para poder manejarlas.
En caso de ser DRAM, es imprescindible un micro, pero para estas aplicaciones convienen las memorias NVRAM estáticas. Se ahorrará mucho hardware.

O lo que se puede hacer es conseguir el controlador de memorias DRAM y el circuito básico usaría la misma idea que sugerí.

Salu2!
11/08/2014 #8


Hola el tipo de memoria qUE voy a usar es una ram estatica de 32k. direcciones por 16 bit de palabra la idea es copiar todos los datos de la memoria ram y pasarlo esos datos a otra ram de las mismas caracteristicas
Por el momento estoy pensando en usar 2 contadores 74ls163 para que pueda leer todas las direcciones de la ram estatica pero al mismo tiempo escribir en otra ram dichos datos
Ahora ya entendi con claridad el funcionamiento de la ram,la pregunta es si hay otro integrado que cuente todas las direcciones de dicha ram y si se podria usar directamente esas mismas direcciones para escribir simultaneamente en la otra ram? esta bien usar una bateria de litio de 3v para la alimentacion de la ram sabiendo qUE es una memoria ram statica cmos,la idea es que el circuito cuente con su propio clock que sincronice al contador para que pueda leer las direCciones De la ram
11/08/2014 #9

Avatar de Sr. Domo

Hola!

2 CD4040 en cascada para contar hasta 16.777.216 posiciones, si es que con uno solo no te alcanza.

Con ese mismo contador puedes enrutar varias memorias a la vez, de eso no debe haber problema.

Salu2!
11/08/2014 #10


Ok, gracias Domonation por la sugerencia. ¿pero aún tengo la duda de si se requiere de-repente alguna compuerta para retrasar el bus de direcciones del contador al momento de escribir en la ram que va a ser copiada o no es necesario?
11/08/2014 #11

Avatar de Sr. Domo

Pues en sí si requieres un circuito que genere todos los retrasos necesarios a la hora de hacer una operación de "lectoesctritura" ya que para leer una memoria cualquiera (paralela, SRAM o EEPROM) necesitas colocar primero la dirección y enseguida las señales de control para indicarle que quieres leer un dato (CS=1, #WE=1, #OE=0)

Y al mismo tiempo debes colocar la dirección en la otra memoria, pero esto se ahorra por el mismo contador, pero también, debes enviarle las señales de control una vez la memoria anterior tenga los datos en el "exterior", una vez los tenga disponibles, tienes que habilitar la escritura a la otra memoria RAM.

En pocas palabras, necesitas el contador de direcciones y otro circuito divisor para sincronizar las operaciones realizadas en el proceso de "lectoescritura". Es simple, pero debes saber qué memorias vas a usar, menciona cuales son y veremos más detalladamente como sería la parte del control de las memorias

Salu2!
13/08/2014 #12


bueno gracias por el aporte ,voy a implementar el clok el contador y la memoria ram luego les comento
31/08/2014 #13


Hola amigos. Bueno, estoy intentando simular el contador 74ls163 para las direcciones de la ram.
P
rimero trato de entender el funcionamiento de dicho contador para después implementar en cascada.
Estoy usando el simulador multisim para realizar las pruebas y en la simulación solo logro tener señal a la salida del 555, pero no pasa nada con el conteo, ya que no prenden los led indicadores del conteo.
Hice los pasos para que el contador realice las cuentas pero no pasa nada.
A
djunto el circuito para que me puedan ayudar, probablemente estoy fallando en las conexiones del contador.
Archivos Adjuntos
Tipo de Archivo: rar diseño de contador 74ls163 ACTUAL.rar (90,6 KB (Kilobytes), 22 visitas)
31/08/2014 #14

Avatar de Daniel Meza

tito 2 dijo: Ver Mensaje
Hola amigos. Bueno, estoy intentando simular el contador 74ls163 para las direcciones de la ram.
P
rimero trato de entender el funcionamiento de dicho contador para después implementar en cascada.
Estoy usando el simulador multisim para realizar las pruebas y en la simulación solo logro tener señal a la salida del 555, pero no pasa nada con el conteo, ya que no prenden los led indicadores del conteo.
Hice los pasos para que el contador realice las cuentas pero no pasa nada.
A
djunto el circuito para que me puedan ayudar, probablemente estoy fallando en las conexiones del contador.

Amigo, coloca el diagrama en formato de imagen para hacer más accesible a los compañeros del foro (y a mí)

Saludos
31/08/2014 #15


Hola tito 2

A reserva de lo que te recomiende Daniel Meza.

Hay algunas cosas por mejorar en tu diseño.

No es prudente dejar entradas de los IC’s sin conectar a algún nivel lógico. (1 o 0).
Las terminales: 3, 4, 5, 6, 7, 10, 2 y 1, del 74LS163, No están conectadas.

El diseño que presentas es una simulación, pero al armar el circuito en la realidad harán falta las resistencias limitadoras de corriente para cada LED que utilizas.

Tienes varias líneas(Alambres) sin conexión alguna.
Para Qué Serán ?

Le asignaste la misma tecla (La A) al potenciómetro y al interruptor.

No hagas caso omiso de lo que te recomienda el Moredador en casi todos tus mensajes:
Última edición por D@rkbytes; Hace 2 Horas a las 19:41; Razón: Escribe de manera correcta.
Podrían suspenderte de estos foros.
Imágenes Adjuntas
Tipo de Archivo: jpg diseño de contador 74ls163 ACTUAL.jpg (58,4 KB (Kilobytes), 15 visitas)
Tipo de Archivo: jpg Diseño De Contador 74LS163.jpg (106,0 KB (Kilobytes), 15 visitas)
Archivos Adjuntos
Tipo de Archivo: zip Diseño De Contador 74LS163.zip (100,0 KB (Kilobytes), 11 visitas)
01/09/2014 #16

Avatar de Daniel Meza

Pues el compañero MrCarlos ya dijo las principales posibles causas del problema, sólo podría añadir que no es recomendable manejar leds directamente de esa manera con integrados TTL para suplir corriente, es preferible que drenen corriente, es decir que los leds se conecten con sus cátodos hacia las salidas del contador para que prendan con 0's.

Saludos
03/10/2014 #17


Hola amigos, he concluido con la implementación del contador cd4040 en cascada para contar hasta 32k pero este conteo le tengo que mostrar en 5 display que es la cantidad de dígitos que se requiere para poder visualizar el total de direcciones , bueno decidí usar dicho contador siguiendo las sugerencias planteadas ya que solo se esta usando dos contadores, ahora estoy tratando de ver la forma como decodificar dichas salidas de los contadores a decodificadores 7447 debido a esto surgen las preguntas:
¿Se puede usar el decodificador 7447 sabiendo que el contador cd4040 no es ttl ?
¿Cómo puedo implementar los decodificadores si las salidas del contador en cascada tiene 15 bits de salida ya que uno de ellos tiene 12 salidas y el otro 3 ?

Se les agradece de antemano por alguna sugerencia.

---------- Actualizado después de 31 minutos ----------

Después de pensar un poco veo que puedo usar 4 decodificadores 7447 , para esto tendría que usar cada cuatro salidas del contador ya que el 7447 permite 4 entradas de datos, así mismo usaría los 4 decodificadores en cascada ¿ esta bien lo que estoy pensando?
De antemano gracias por la ayuda.
03/10/2014 #18

Avatar de Daniel Meza

Pero recuerda que el 7447 sólo te decodificará los datos dentro del rango 0-9, necesitas un decodificador hexadecimal para lograr mostrar las letras en los displays.

Recuerdo que hay en la familia CD40XX un decodificador como este que te menciono, deja investigo

Saludos
03/10/2014 #19


gracias por la sugerencia Daniel, la idea es que me muestre en los 5 display los numeros del conteo, es decir el numero 1,2,3,4,5.........hasta que llegue a 32,768, como este numero es de 5 digito entonces necesito un display para las unidades,decenas,centenas,unidad de millar y decena de millar.¿Existe algun decodificador para 15 bit ?.
03/10/2014 #20

Avatar de Daniel Meza

mm tendrás que hacer una etapa extra de decodificación de hexadecimal a decimal entonces.
Mi sugerencia es que sea sólo hexadecimal, es decir, de 0x0000-0xFFFF y que se muestren los datos en 4 displays. Sigo buscando el circuito decodificador que te comenté pero no lo hallo
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Circuitos lógicos combinacionales y secuenciales

Compuertas, flips flops, registros, PLDs, codificadores, contadores, multiplexores, ...

Cerrar
Foros de Electrónica » Diseño digital » Circuitos lógicos combinacionales y secuenciales

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.