TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: kronocher en 14 de Febrero de 2006, 21:55:00

Título: circuito para refrescar memorias dinamicas
Publicado por: kronocher en 14 de Febrero de 2006, 21:55:00
hola.
Tengo entendido que existen dos tipos de memorias RAM, la estatica y la dinamica... la dinamica necesita un circuito adicional para refrescar los datos...
anduve buscando por la web pero por el momento no encuentro un circuito basico , elemental para realizar dicho objetivo...
no se si alguien del foro conoce algun circuito...
gracias...


Título: RE: circuito para refrescar memorias dinamicas
Publicado por: antoniof en 15 de Febrero de 2006, 02:29:00
Las RAM dinámicas hay que refrescarlas cada muy poco tiempo(del orden de 100ms). Estas RAMs son muy útiles para aplicaciones donde la velocidad y la capacidad de almacenamiento son críticas.

Estoy pensando en utilizar alguna de las que tengo aqui de CD-ROMs estropeados, que tienen bastante capacidad de almacenamiento.

El refresco se lo pensaba hacer por software. Programar una interrupción con algún timer que haga esta tarea.

Seguro que hay controladores de memoria DRAM pero serán más caros que la propia RAM estática.

En qué tienes pensado utilizarla?

Título: RE: circuito para refrescar memorias dinamicas
Publicado por: poi5on en 15 de Febrero de 2006, 09:18:00
Hola amigos,

Que tipo de memoria vas a utilizar? las que tienen las antiguas PCs? tengo un amigo que queria hacerlo con ese tipo de memorias pero la tasa de refrescamiento no le daba con el PIC ni a 20MHz porque al paracer el tiempo de refrescamiento es muy bajo y al PIC no le da tiempo, si son de este tipo yo creo q deberias buscarte el controlador adecuado, verifica en las tarjetas madre antiguas y de alli podrias conseguir el numero del integrado.

Saludos
Título: RE: circuito para refrescar memorias dinamicas
Publicado por: Veguepic en 15 de Febrero de 2006, 21:23:00
Tengo el siguiente circuito de una dram




pero a lo mucho el llega a obtener 17000 muestras por segundo, creo que es lo maximo que se puede obtener con este pic, el codigo esta en c si te sirve lo puedo subir.

Para lograr velocidades mayores, del orden de 20 MHz hay un modo que se llama FAST PAGE, hay bastante informacion en la red pero no he encontrado un circuito practico y creo que esta fuera del alcance de los pics comunes.

Saludos
Título: RE: circuito para refrescar memorias dinamicas
Publicado por: kronocher en 16 de Febrero de 2006, 23:38:00
hola.
la aplicacion es para usar las memorias DRAM  para una tarjeta de adquisicion,
bueno por el momento cuando tengo tiempo estoy dedicado  al software,
anduve buscando por la web y encontre que existen unos 3 o 4 tecnicas de refrescamiento, ahora , no estoy seguro . dependiendo del chip es que se tiene circuitos internos en el chip para hacer el refrescamiento???
tengo otra duda:
La tecnica RAS (only refresh) segun lo que busque dice que requiere un contador "externo" de lineas para apuntar a otra direccion para refrescar, lo de externo se refiere a debemos hacer un circuito por nuestra cuenta fuera de la DRAM para que haga eso, y apuntar libremente??

otra duda:
independiente de que si la DRAM tenga o no tenga circuitos de refresco(no se si es correcto) cada vez que lea y se escriba en la memoria se refresca??

bueno. como siempre... gracias

Título: RE: circuito para refrescar memorias dinamicas
Publicado por: kronocher en 17 de Febrero de 2006, 00:15:00
hola..
leyendo un poco mas , despues de mucho tiempo recien entendi que en todos los DRAM tienen un circuito de refresco que es el "sense amplifier", solamente que dependiendo del DRAM se tienen aquellos que generan sus propios direcciones para refrescar, y en caso que no lo tengan se debe generar esas direcciones con un circuito externo.

quisiera saber si es eso correcto o estoy escribiendo cosas sin sentido???
espero sus respuestas.
gracias. como siempre.
Título: RE: circuito para refrescar memorias dinamicas
Publicado por: mirazulado en 08 de Marzo de 2006, 13:10:00
En la version de CCS 3.242 hay un ejemplo y el driver necesario para manejar una DRAM tipo 41256.. yo lo vi recien ahora no se si no estaba tambien en versiones mas viejas.. El corazon del refresco es lo siguiete:


// the timer will interrupt every 4ms inorder to refresh the
// memory
#int_timer1
void Refresh ( )
{
   unsigned int16 i;
   // to output, CAS must be high, then each row is output followed
   // by an RAS cycle
   output_high(RAS);
   output_high(CAS);
   for(i=0;i<0x200;i++)
   {
      addressByte(i);
      output_low(RAS);
      output_high(RAS);
   }
   // set the timer up so that it will role over in 4ms
   set_timer1(0xC800);
}

SAludos Mariano..