conectar eeprom m27c256 al pic

Hola que tal,es la primera ves que hago una pregunta en el foro..soy miembro de hace 8 meses creo, y me he limitado siempre a leer y devo decir que me ha ayudado muchisimo.
hoy tomo coraje y les hago una consulta..
me estoy iniciando en el mundo de los microcontroladores y ya he realizado algunos proyectos.
pero esta ves quisiera conectar al pic una eeprom externa de esas con la ventanita de quarzo
m27c256,dispongo de la hoja de datos,la he leido varias veces y he buscado info su internet pero no me queda claro como devo conectarla al pic dado que posee puerto de entrada y entrada y salida de lo que he leido.
quisiera saber si es posible leer y escribir datos con el pic ..no dispongo de programador para esa eeprom.por lo que he leido deberia ser una eeprom paralela dado que dispone de 28 pines en ves de 8 como las que he usado anteriormente.
nesecitaria saber como conectarla al pic 16f877 y si se puede leer y escribir datos en ella atravez del pic..
si alguien se anima a darme una breve explicacion se los agradeceria..
 

Adjuntos

  • eeprom.jpg
    eeprom.jpg
    72.1 KB · Visitas: 36
Hola pante31

Conectar Un PIC16F877 a una EPROM es relativamente sencillo.
El BUS de direcciones de la EPROM M27C256 Consta de 15 BIT’s, desde A0 hasta A14.
Esos 15 BIT’s irían conectados a 2 puertos del PIC. Por ejemplo al Puerto C y Al D.
Para las líneas de control de la EPROM como son CE OE y VPP se requiere otros BIT’s del PIC.

Hay que tener en consideración que para escribir en la EPROM su entrada llamada VPP debe estar a 12.75 Volts. Y para leer debe estar a 5 Volts así que hay que hacer una circuiteria para lograr esos voltajes en su entrada VPP por medio del BIT que se seleccione del PIC.

Ahora, Del PIC qué pretendes grabar en la EPROM ??
El la memoria del PIC no cabe tanta información como cabría en la EPROM.
O vas a utilizar otras características del PIC para grabar datos de esas características en la EPROM ??

Muy a groso(Grotesco, Disparatado, a la Ligera) modo podrías conectar ambos dispositivos como se puede ver en la imagen adjunta.

Luego hay que hacer un programa para que el PIC pase o lea datos de esa EPROM.

Tienes algún simulador de circuitos electrónicos donde desarrollar tus proyector ??
Tienes algún programador para PIC’s ??
Tienes algún programa para PC para desarrollar el código para el PIC ??
Esas 3 herramientas las requerirás para continuar con tu proyecto.
Además, si no sabes programación en cualquier lenguaje, tendrás que aprender.

saludos
a sus ordenes
 

Adjuntos

  • DATA PIC To EPROM.jpg
    DATA PIC To EPROM.jpg
    203.3 KB · Visitas: 47
Lo que tu dices es un eprom, no una eeprom. La eeprom es la 28c256.
En principio te interesará mas una memoria de bus serie para no emplear tres puertos o mas completos para controlarla. Si es por experimentar perfecto.
 
Gracias por responder MrCarlos!

Me has aclarado el terreno en un 80%..
bueno si yo uso isis proteus para simular los circuitos, tengo un programador usb de microchip y uno serial que lo realize yo mismo copiando un modelo que encontre en este foro.
para realizar el codigo uso el ccs que es un compilador en C..
he visto que ccs trae una libreria para esa memoria...
lo que no entiendo es que si el puerto Q de la EPROM(gracias a scooter de la aclaracion)que va de Q0 a Q7 es de entrada y salida como muestra la imajen tomada de la hoja de datos, para que usar el puerto A que es de 15 pines y solo de entrada??

Disculpen mi ignorancia es que estoy tratando de enteder como funciona esta bendita memoria.
los datos a escribir podrian ser el valor de una variable entera(se que no haria falta semejante embrollo para guardar estos datos que se podrian escribir en la eeprom del pic o una externa de tipo serial pero es que quiero aprender :rolleyes:)
aclarando estas dudas me quedaria solo generar el codigo y ver que pasa.
los niveles para escritura y lectura (Vpp y Vcc) lo tengo resuelto.

les agradesco desde ya por haber respondido !!
 
Gracias Roberto de la claracion!

Osea que a diferencia de las de 4 pines las 24lcxxx solo se pueden escribir si esta totalmente borrada,todas las celdas en FF?
no se pueden sobreescribir los datos?quiero decir que si una celda contiene el byte 3F y lo quisiera reescribir con el 5B no se podria?
Por otro lado no tendria sentido la venta de quarzo..
 
Hola pante31

Lo Que ocurre es que al aplicarle Luz ultravioleta por la ventanita se graban puros niveles altos en todas las direcciones de la EPROM.

1111 1111(Binario) = FF(Hex)
Al programarla solo cambian los BIT’s que se les programe un nivel Bajo.
0011 1111(Binario) = 3F(Hex).
0101 1011(Binario) = 5B(Hex).
Solo los que eran 1 (3F) se pueden cambiar a 0 al programar 5B.

saludos
a sus ordenes
 
Se puede escribir en cualquier momento, esté borrada o no. El problema es que solo se pueden poner a 0 los 1, si un bit ya está a 0 hay que borrar la memoria entera con ultravioleta
 
ok entendi lo de los bit's 1 que se peuden pasar a 0 pero no al reves..

la ultima duda es:

supongamos que la memoria se encuntra totalmente borrada, como hago para grabar un byte en el registro 0 de la memoria?
de lo que he leido se haria desde el puerto A con los pines A0 a A7 y de A8 a A14,
supongo que los pines A0 hasta A7 son para grabar en la direccion en horizontal del registro de memoria,no entiendo como seleccionar la direccion en vertical..espero que me entiendan
de todas maneras adjunto Unas imajenes.
adjunto un esquema que estoy probando..
 

Adjuntos

  • Untitled-1.jpg
    Untitled-1.jpg
    84.8 KB · Visitas: 46
  • Sin título.jpg
    Sin título.jpg
    84.5 KB · Visitas: 17
ok entendi lo de los bit's 1 que se peuden pasar a 0 pero no al reves..

la ultima duda es:

supongamos que la memoria se encuntra totalmente borrada, como hago para grabar un byte en el registro 0 de la memoria?
de lo que he leido se haria desde el puerto A con los pines A0 a A7 y de A8 a A14,
supongo que los pines A0 hasta A7 son para grabar en la direccion en horizontal del registro de memoria,no entiendo como seleccionar la direccion en vertical..espero que me entiendan
de todas maneras adjunto Unas imajenes.
adjunto un esquema que estoy probando..

Hola, las direcciones son unicas, en la imagen que adjuntas se observan agrupadas por lo que no existe tal direccion vertical u horizontal, el numero que esta a la izquierda de cada fila es la direccion con la que comienza cada grupo de direcciones
 
ok entendi lo de los bit's 1 que se peuden pasar a 0 pero no al reves..

la ultima duda es:

supongamos que la memoria se encuntra totalmente borrada, como hago para grabar un byte en el registro 0 de la memoria?
de lo que he leido se haria desde el puerto A con los pines A0 a A7 y de A8 a A14,
supongo que los pines A0 hasta A7 son para grabar en la direccion en horizontal del registro de memoria,no entiendo como seleccionar la direccion en vertical..espero que me entiendan
de todas maneras adjunto Unas imajenes.
adjunto un esquema que estoy probando..

Hola...Hace de cuenta que tenes 32768(A0...A15) cajones que tienen 8 divisiones(D0..D7) cada uno capaces de almacenar 0 o 1 cada división.
Para leer algo en el cajón 15 debes poner en las direcciones dicho numero y leer el estado de los D0..D7.
Saludos.
Ric.
 
Última edición:
Hola pante31

Exacto:
ok entendi lo de los bit's 1 que se peuden pasar a 0 pero no al reves..
Pero eso ocurre en esa EPROM M27C256. en otras probablemente sea diferente.

Digamos que es mejor llamar Dirección cuando no referimos a una localidad de memoria en lugar de Registro.
Entonces para grabar un Byte(8 BIT’s) en la dirección 0 tendríamos que direccionar la EPROM a a esa dirección.
Todas las entradas A se ponen a nivel bajo(0) y las líneas de control, CS, OE y VPP para GRABAR. Luego por el BUS de datos le programas el BYTE que quieres grabar, Ejemplo 35(Decimal), 00100011(Binario).

saludos
a sus ordenes
 
Les quiero agradecer a toda la gente que me ha dado una mano respondiendo mis preguta y les cuento felizmente que he logrado garbar en la direccion 0 de la eprom el byte 10101010:aplauso::D

He realizado un pequeño codigo en CCs y un circuito un poco rudimentario pero es solo en modo instructivo,no lo he provado fisicamente porque no dispongo del pic 16f877 al momento pero con algunos ajustes deveria andar..igualmente es solo para experimentar y entender el funcionamiento de la memoria..
les agradesco una ves mas a la gente del foro y espero algun dia yo tambien aportar con algo!!;)

Adjunto el esquema y codigo..no se rian!

Un saludo!!
 

Adjuntos

  • esquema.jpg
    esquema.jpg
    246.6 KB · Visitas: 58
  • codigo.jpg
    codigo.jpg
    115.2 KB · Visitas: 33
Atrás
Arriba