Usar memoria SIMM de 30 pines con PIC

Hola quisiera saber si alguien sabe como se puede leer y escribir en memorias de las PC's antiguas ya que tengo como 40 de esos SIMMS de memoria RAM de 30 pines y quiero ver si los puedo usar, buscando en internet unicamente he encontrado como van los pines, pense que su acceso era paralelo pero unicamente tienen 11 pines para el address y eso unicamente daria la posibilidad de buscar 2Kbytes de memoria asi que algo tendran que ver los pines
2 /CAS Column Address Strobe
27 /RAS Row Address Strobe
28 /CASP Column Address Strobe Parity
 
direccion de ras x direccion de cas x tamaño de dato = tamaño simm (estaba mal explicado antes)
generalmente las de 3 integrados de 1 megabit daban 1 megabyte
las de 2 integrados de 4 megabit + 1 integrado de 1 megabit daban 4 megabyte
por eso los ordenadores 286, 386 y 486 tenian tantas filas para memoria

luego habia otras memorias exclusivas para ibm que eran mas raras pero si se miraba los integrados
eran la mayoria 256k direcciones x 1bit de datos y tenian que montar 9 en un solo simm para tener 1 megabyte de maximo, pudiendo haber combinaciones de 256kb x 1 y similares

recuerda que esas memorias se tienen que sobreescribir constantemente para mantener el dato, no es que lo vayan a perder pero para algo servira el bit de paridad y se tenian follones por fallos de cache
 
Última edición:
Las memorias DRAM se acceden enviando la direccion en dos partes, fila y columna, row y column, RAS y CAS. Ademas, muchas SDRAM estan divididas en bancos por lo que los pines Banksel tambien forman parte de la direccion.

Hasta donde yo se un PIC no puede acceder ese tipo de memorias.

Hay varias complicaciones para hacerlo, dado que el HW del PIC no soporta DRAM, quiza la principal sea el refresco. Sin embargo, buscando por Google vi que alguien hizo un proyecto asi con un PIC32
 
Última edición:
Las memorias DRAM se acceden enviando la direccion en dos partes, fila y columna, row y column, RAS y CAS. Ademas, muchas SDRAM estan divididas en bancos por lo que los pines Banksel tambien forman parte de la direccion.

Se le conoce como matriz.

Hasta donde yo se un PIC no puede acceder ese tipo de memorias.

Se puede hacer, eso si, con tu propio protocolo de comunicación adaptado a esas RAM. Ahora el PIC es más lento que el microprocesador e incluso que la propia RAM.

Hay varias complicaciones para hacerlo, dado que el HW del PIC no soporta DRAM, quiza la principal sea el refresco. Sin embargo, buscando por Google vi que alguien hizo un proyecto asi con un PIC32

PIC32 funciona más rápido, jejejje.
 
Muchas gracias por la explicaciones o sea si entendi bien si quiero guardar un dato en la columna 2 fila 4 tendria que poner en alto RAS y luego enviar un 4 por los pines de address luego bajar ras y poner en alto CAS y enviar un 2 por los pines de address, despues o tiene que ser antes pongo el dato que quiero guardar en los pines de data y por logica seria este el mismo metodo para leer solo que los pines data traerian el dato que quiero leer, ahora bien con lo que decis de las velocidad la memoria esta echa para solo pueda ser accesada a cierta velocidad o puedo leer y escribir mi dato a una velocidad mas lenta con un pic. Muchas gracias
 
Antes que nada, hay que saber bien como leer y escribir esas RAM. Sus procesos, en Internet debería una explicación aunque sea en Inglés, Ruso, Polaco, etc... pero debe haber.


Si sabes como guardar datos en esas RAM, luego sabrás como programarla. Las RAM son por lo que veo, memorias en paralelo.

Conexi%C3%B3n_Memoria_SIMM_72_contactos.png


http://fuynfactory.is-a-geek.com/wiki/index.php/Conector_Memoria_SIMM_72_contactos

image001.jpg


http://www.hardside.com.ar/docs/memorias.htm
Saludo.
 
Última edición:
Si queres te paso la direccion del que hizo un proyecto con eso:
http://retromaster.wordpress.com/pic32/interfacing-sdram-to-pic32/

Yo la verdad... no le veo gran ventaja usarlas. No podes almacenar programas en ellas, solo las podes usar como una especie de "disco duro" ya que para accederlas necesitas inventarte un protocolo especial.

Lo veo muy complicado y no le veo la ventaja.

Pero si queres seguir, de todos modos, para usar SDRAM necesitas varias cosas:

1) Configurarlas al comienzo
2) Encargarte de hacerles refresco (todo el tiempo). No hay limitacion sobre velocidad minima para usarlas, pero si hay limitacion para refresco minimo, y si no las refrescas, los datos se pierden.
3) Entender como se acceden bancos, cuando se envia RAS y cuando CAS, ya que no tenes que mandarlos a todos para todo acceso. Por ejemplo si tenes un banco y una fila habilitados, todo acceso a una columna de ese banco y esa fila se realiza enviando solamente CAS. Por otro lado, si refrescaste otra fila (normalmente se hace por interrupcion), te tenes que acordar de activa la fila que estabas usando fuera de las rutinas de refresco.

Yo ya use muchas veces memorias de ese tipo... pero con micros, DSP y hasta FPGA que ya incluian todo el protocolo y las inicializaciones necesarias como para usarlas.

Saludos
 
Última edición:
Pues se me imaginaba que iba a ser mas facil accesar a ellas pero al parecer si tienen sus cositas, basicamente las necesito para guardar los datos que me tire un conversor A/D lo mas rapido que se pueda tipo buffer y luego ir leyendola mas lentamente con el pic, habra alguna pagina donde explique el protocolo de acceso a ellas ?
 
Podes probar en el sitio de Samsung o Micron, dos de los fabricantes lideres de DRAM. Toma el numero de parte de alguna memoria que tengas en tu SIMM y busca su hoja de datos... toda la implementacion del protocolo esta alli.

Como camino alternativo, podrias poner un micro o FPGA como controlador de las memorias, que le pase la info al PIC. Otra opcion es utilizar un controlador de SDRAM, creo que Atmel aun fabrica de esos.

Suerte!



:'( Ah... Las épocas de la Spectrum... El viejo y querido Z80, solito se encargaba del refresco de las DRAMs.

Es cierto :). Pero, usaba DRAM del tipo FP o EDO, si no me equivoco, no eran sincronas. Hoy DRAM FP o EDO no creo que le puedas comprar a nadie, lo minimo minimo es SDRAM, y hasta eso es raro, menos de DDR2 te miran como si fueras un viajero del tiempo o que te pasaste dos lustros viviendo en una carie.
 
Última edición:
Despues de busca y busca la mayoria de chips no les encontre el datasheet pero logre encontrar una V53C104F y una V53C256A y alli estaban explicados los protocolos para el acceso y no es mas de poner en bajo RAS enviar direccion de Fila y luego bajar CAS y enviar la columna y luego te devuelve el dato lo dificil es el tiempo que la salida esta disponible tGZ que segun el datasheet son 25ns lo cual haria necesario que el pic ejecutara a 40Mhz y alli si estamos fritos para la serie 16f
 
Mejor usar una memria tipo pendrive, al menos guarda datos como disco duro, no es necesario guardar cosas de PIC en formato FAT. Saludo.
 
Última edición:
Hola:

Para eso usa las memoias RAM dedicado a los PIC y no tiene mucha capacidad.
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2698

Aún así insiste, puedes usar también las DDR3 de hasta 64 GB montanto módulos, ejjeje,. Con un módulo de 4GB para hacer pruebas está bien. Ya que tienes el que tienes para jugar, mejor úsala. Eso si, si usas mucha capacidad, te vale para hacer un registro de datos (Data Logger), luego lo grabas en algún Compac Flash pequeño.

cf-1000x-product-128g1.jpg


Son más fáciles de usarlo ya que son en paralelo y no requiere tanta electrónica ni protocolo de comunicación compleja como las SD.

Recuerdo que hay memorias que tiene su multipexos para escoger el integrado adecuado, dentro de ella escoge la dirección de memoria, luego el dato a introducir.

Por ejemplo:
memoria-ram.jpg

Un módulo de memoria tienes en una cara 8 IC, que son 8 edificios. en el otro lado de la cara del módulo de RAM o PCB tiene otros 8 IC, en el otro lado de la calle otros 8 edificios. Elige una cara (calle), te encuentras 8 IC (8 edificios), escoge el primer IC (edificio), encuentra la dirección que quieras, por ejemplo la dirección 0x10 (puerta de la vivienda número 10), e introduce un dato, por ejemplo: Si en cada dirección pueden caber 8 bits (8 personas por cada cuarto) introduces 2 bits (2 personas).

Espero explicarme bien lo que quiero decir.

No olvidar que esos datos de la RAM siempre tiene que estar alimentado, luego lo pasas a un disco duro IDE, o una tarjeta SD, CP el que desees.

Recuerdo que hacían experimento con la PlayStation 3 apagándola menos la memoria RAM, extraían los datos datos almacenados en ese momento y lo pasaban dumpeando (puenteando) hacia el PC para examinar los datos.

Para lo que quieres, puede ser util un buen Data Logger.

Saludo.
 
Muchas gracias por su valiosa informacion y hablando de memorias entonces quisiera su opinion tengo una base de datos de 2000 codigos de 40 bits cada dato tengo que leer el dato y luego barrer la base de datos a ver si encuentra el dato, lo tengo hecho con eeprom pero tarda mucho en terminar de leer todos los datos, necesito donde poner esa informacion para que el tiempo sea como maximo 2 segundos, por eso se me ocurrio lo de la memoria ram pero veo que esta muy complicado asi que alguna manera bien sencilla de hacerlo que me sugieren?
 
Si buen punto eso de hacer la solucion por software y cuando te refieres al hashing seria de guardar solo el hash del dato para reducir tamaño estoy en lo correcto?, yo lo que habia pensado y por eso lo de este tema era guardar toda la data en una memoria ya sea SD o como dijo Meta una compaq flash luego subirla ya ordenada a la memoria ram para realizar la busqueda alli.
 
Si buen punto eso de hacer la solucion por software y cuando te refieres al hashing seria de guardar solo el hash del dato para reducir tamaño estoy en lo correcto?
Claro. Si no esta en la lista de los hash --> tampoco va a estar en la lista completa.

, yo lo que habia pensado y por eso lo de este tema era guardar toda la data en una memoria ya sea SD o como dijo Meta una compaq flash luego subirla ya ordenada a la memoria ram para realizar la busqueda alli.
Releyendo un poco, si la búsqueda te está demorando más de 2" me dá la impresión que debe haber algo "más que ineficiente" en tu implementación. Porque no son tantos datos --> no debería demorar tanto.
 
Buenas:

El PIC16F parece ser que puede manejar esas memorias que tanto deseas, solo a una velocidad muy lenta.

Has pruebas al menos un buen esquema eléctrico, y probamos a guardar 4 letras que diga "Hola". Por algo se empieza, luego hay que comprobar si realmente lo has guardado leyéndola.

Saludo.
 
Pues se me imaginaba que iba a ser mas facil accesar a ellas pero al parecer si tienen sus cositas, basicamente las necesito para guardar los datos que me tire un conversor A/D lo mas rapido que se pueda tipo buffer y luego ir leyendola mas lentamente con el pic, habra alguna pagina donde explique el protocolo de acceso a ellas ?

Exactamente eso hice para un osciloscopio digital con ADC externo al pic. Y lo que use fue una memoria SRAM de lectora de CD. Tenes de 32Kb quiza para tu aplicacion te alcance, y sino, podes poner muchas de esas memorias en paralelo sumado a una pequeña logica de control para seleccionarlas.

Ventaja? no tenes que refrescar nada y son muy faciles de usar.
Desventaja? Son carisimas en comparacion con DRAM, pero las obtenes en casi cualquier lectora de CD de desguace.
 
Atrás
Arriba