# Grabación de memorias



## megasysfix (Sep 21, 2012)

Buenos días amigos del foro, en esta ocasión les vengo a dejar un pequeño tutorial para el grabado de diferentes tipos de memorias, las cuales puedo nombrar: eprom, eeprom, flash, ram, etc, para comenzar debemos saber algo simple, todas estas memorias tiene algo en común, el cual es el bus de comunicación bidireccional, el cual se usa para leer y grabar datos el la memoria, y un bus de registros, el cual es el que selecciona el registro que deseamos leer, el bus bidireccional se puede encontrar usualmente como I/O en el datasheet y el bus de direcciones se puede encontrar como An (n es el numero del puerto), como lo podemos ver en la siguiente imagen:





esa imagen representa la típica configuración de una memoria de tipo paralela (se le podrá llamar así verdad? jejejeej), continuando, ademas encontramos otros pines como el CE, OE y WE, esos pines son de control y nos servirán para leer o grabar la memoria, como en este chip estos pines están negados (por tener la rayita arriba) estos se activan al usar el pulso opuesto, osea cuando pasa a 0V, les dejo esta imagen como ejemplo: 




Como se puede apreciar estamos usando el bus de dirección desde el A0 al A3, el cual nos da la opción de grabar en 16 posiciones diferentes, y el bus de datos de 8 bit que van desde el D0 al D7, el cual nos permite hacer 64 combinaciones diferentes, ademas como se puede apreciar en la imagen el pin de CE se encuentra a tierra, debido a que solo controlaremos 1 modulo el cual no es necesario deshabilitar para grabar otro modulo, como se puede observar en la imagen ademas tenemos un 74HC245 entre el PIC y la memoria, el objetivo de este dispositivo es separar las lineas del PIC con la memoria cuando se quiera hacer la lectura, para evitar corto circuitos entre ambos dispositivos, para grabar un dato en un sector especifico primero se activan los pines de OE y WE luego se enciende el bus de sectores correspondientes (desde A0 a An), luego se enciende el bus de datos correspondiente (desde D0 a D7), y luego se envía un pulso bajo al pin de WE para que grabe esa información en la memoria, luego una vez que están todos los sectores grabados podemos proceder a comprobarlos, para ello enviamos un 0 a OE y un 1 a WE y hacer cambios en el bus de sectores para verificar que esta todo OK, y listo, ya tenemos nuestra memoria grabada, para no ser tan complicada la explicación les dejo una simulación en ISIS de proteus (V7.9) para quien quiera descargarla, comprobarla y hacer lo que quiera con ella, (es de mi creación y se las facilito a ustedes con mucho gusto), cualquier duda estare atento para ver si puedo ayudar, ahora la pregunta es ¿Que podemos hacer con esto?, el limite es nuestra imaginación!!!!.

Un video de la simulación:






Espero les allá gustado esta ayudita.

Saludos Cordiales.


----------



## el-rey-julien (Sep 21, 2012)

muchas gracias ¡¡ buen aporte
me gusto la frase ''el limite es muestra imaginación'' mejor dicho imposible ¡¡


----------



## Meta (Sep 22, 2012)

Buenas @megasysfix:

Antes que nada, gracias por llevarme hasta aqui.

Tengo DDR y DDR2, el DDR3 lo uso actualmente en el PC mientras la DDR4 aparecerá a finales del 2014 y principios del 2015, ejjejejejej.

Por lo que he estado observando, en un lugar de Windows 7 muestra la memoria que tienes instalada (a parte de la BIOS), ahora no recuerdo donde, se que sabe hasta la marca que tienes instalada.






Curiosidades, los PIC tiene su propias memoria RAM sea por I2C y el más aconsejable para ella el SPI por su alta velocidad. Las RAM de las PC son muchísimos más rápida y los PIC no llega a esa situación, no es un microprocesador. Suficientemente rápida para lo que queramos.

Documentación 23LC1024 y 23LCV1024.






Noticias SRAM.

Siguiendo las RAM de los PC para conectarlo al PIC.
Todavía no lo he visto, si en PlayStation 3 pero no en ordenadores o PC.





Al menos para un DataLogger está bien la idea, ya que la RAM es más rápida que las EEPROM e incluso que la Flash. Fijándome bien, el PC sabe perfectamente que RAM has instalado en la placa base, está en el módulo de la RAM, una EEPROM pequeña en mi caso llamada 34C1.






http://www.softnology.biz/tips_pswprotection.html

Estas cosas hay que tenerlas en cuenta. 

Un saludo.


----------



## Scooter (Sep 22, 2012)

¿Para que quieres el 74245? No le veo utilidad, pones el puerto directo y listo.


----------



## Meta (Sep 22, 2012)

Para mil cosas. Arriba lo explicó bien. Sólo falta coger una memoria RAM física y probarla.






Saludo.


----------



## Scooter (Sep 22, 2012)

No tiene sentido que haya conflicto de buses; la salida de la memoria es triestado, si configuras el puerto como entrada cuando leas la memoria no tiene que haber conflictos. No es que esté mal, es que es prescindible .


----------



## Meta (Sep 22, 2012)

Deja ver que opina y nos cuenta. Hay que darse cuenta que no usa memoria RAM de PC como una DDR2 o DDR3.


----------



## megasysfix (Sep 22, 2012)

Scooter dijo:


> ¿Para que quieres el 74245? No le veo utilidad, pones el puerto directo y listo.



Lo que sucede es que el circuito lo pensé para todas las personas, las que sepan o no usar microcontroladores, en caso de no disponer de un microcontrolador o no sepan usarlos, esta lo cambie por algún dipswich o parecido, para que así todos puedan experimentar con este tipo de memoria, asi queda el circuito 100% usable para cualquier interfaz de control, que no sea necesariamente un PIC, (experiencia propia ).

Saludos Cordiales!!!!


----------



## Scooter (Sep 22, 2012)

En ese caso, mas vale prevenir que curar. Aunque un choque de buses no suele ser mortal para los implicados, sencillamente no funciona. Otro truquillo que he visto es poner resistencias de 500~1k en serie en cada línea del bus.


----------



## Meta (Feb 22, 2013)

Scooter dijo:


> En ese caso, mas vale prevenir que curar. Aunque un choque de buses no suele ser mortal para los implicados, sencillamente no funciona. Otro truquillo que he visto es poner resistencias de 500~1k en serie en cada línea del bus.



En cada línea también ponen diodos 1N4148.

Otra cosa.

¿Tener una DDR2 o el DDR3 se puede controlar con un PIC?

Saludo.


----------



## megasysfix (Feb 22, 2013)

Meta dijo:


> En cada línea también ponen diodos 1N4148.
> 
> Otra cosa.
> 
> ...



Hace tiempo vi un datasheet de memoria, tenía algunos pines parecidos y otros adicionales... Clock, sincronía, etc, habría que experimentar con una de estas.

Saludos cordiales!


----------



## Meta (Feb 22, 2013)

Hola:

Parece ser que los PIC tiene su propia RAM.






http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2698

Saludo.


----------



## megasysfix (Feb 23, 2013)

Esas son memorias i2c, que funcionan de manera serial.

Saludos Cordiales!!!


----------



## chclau (Feb 23, 2013)

Por lo que yo vi y si no me equivoco, los controladores PIC no están pensados para conectarlos a memorias sincronas como DDR. La interface a memoria externa está diseñada para memorias asíncronas como SRAM y Flash.


----------



## megasysfix (Feb 23, 2013)

Amigos, parece que se perdió la idea de mi tema, es sólo para que las personas aprendan de manera practica en como funciona una memoria paralela, incluso se pueden hacer mini proyectos si uno lo desea, es sólo para que ustedes lo prueben, experimenten y tengan conocimientos prácticos (que es lo más importante) frente a un equipamiento en específico.

Saludos Cordiales!!!


----------



## X1un1Mundo1Mejor1wii (May 28, 2013)

esta bueno yo hacia eso pero con circuitos digitales, no con microcontrolador, recuerdo tenia 4 protoboards llenos de circuitos, para poder controlar una ram bidirecional, grabarla y leer el contenido, en cuanto a las memorias RAM el pic 16F tiene un modo de operación con el Puerto E y puerto D configurados para una interfaz con microprocesador, tal vez se pueda usar para grabar una memoria RAM de las que usan los sistemas con microprocesador.


----------

