Grabar Eeprom desde pic

Hola,
finalmente lo del servo lo grabare con una eeprom. he buscado por internet pero solo me salen grabadores de memorias eeprom donde se usa el pc para grabar los datos. alguien sabe donde encontrar información para que el mismo pic pueda acceder y grabar la eeprom?

muchas gracias.
 
Hola que tal.

Mira, lo de la EEPROM, lo puedes resolver mediante programación, logicamente el pic y la memoria deben estar conectados en el msimo bus de datos y el de direcciones tendrás que multiplexarlo. El asunto con la grabación de una EEPROM es que debes mantener los datos en el bus de datos, y la dirección en la que deseas programar en el bus de direcciones (de la EEPROM) un tiempo determindao, mientras colocas un voltaje (típicamente de 25V, y creo que ya hay EEPROM's de 5V!) en al pin de programación de la memoria.

Te recomiendo que consigas la hoja de datos de tu EEPROM ya que en esta encontrarás los tiempos, pines y voltajes necesarios.

Además, recuerda que un PIC no es muy diferente de una PC, el chiste es saber "hacer" las interfaces adecuadas.

Suerte!
M. en C. Guillermo Carbajal-Franco
 
Hola a todos,

Mi pregunta es si teneis algun ejemplo de utilizacion de la EEPROM interna del PIC. Llevo tiempo intentando grabar datos generados por el propio PIC en su memoria EEPROM interna, para después volcar los datos en un PC mediante USB. Todavía no tengo claro como funciona el USB, pero de momento me conformo con guardar los datos internamente para empezar a trabajar con ellos, ya investigaré como funciona el USB más adelante.

Muchas gracias

Un saludo
 
Hola a todos:

Ha habido cambios en el proyecto que llevo a cabo, y no tengo suficiente con la memoria EEPROM interna del PIC. Necesito al menos unos 500 Kbytes, asi que me disponga a guardar los datos en una memoria externa. Tengo una de microchip, que me puede valer (una 25LC1024), pero nunca he trabajado el tema de la comunicación entre este tipo de dispositivos. Os agradecería si pudierais mandarme algun ejemplo, o decirme donde puedo encontrar alguno (he estado buscando y no he encontrado ninguno). Ya he leido el datasheet y las notas de aplicacion, pero no termino de entender como hacerlo.

Por cierto, esta memoria se comunica por SPI, por si teneis ejemplos de este tipo de comunicacion aunque no sea en este tipo de memorias EEPROM.

Muchas gracias

Un saludo
 
La memoria 25LC1024 tiene 1Mbit = 128KBytes

Ten cuidado con eso.

PD: creo que microchip tiene justamente un par de notas de aplicación para acceder por SPI a memorias serie. Es probable que no sean justo estas pero te servirán para entender como funciona el SPI.
 
Gracias Maunix por tu contestación. Ya tengo las notas de aplicacion, no las entiendo muy bien, pero intentaré darle unas vueltas más a ver si saco algo en claro.

Lo del tamaño de la memoria es un problema, creia que eran de 1MByte, ¿sabeis que tipo de memoria podría utilizar? Como ya he dicho, es la primera vez que hago este tipo de proyectos, y me está costando bastante coger el hilo del tema.

Gracias otra vez, la ayuda de este foro es enorme

Un saludo a todos
 
Hola de nuevo,

He cambiado el formato de los datos que voy a ir almacenando en la EEPROM externa que comenté días atras (una EEPROM de microchip modelo 25LC1024).

Me he Hecho una pequeña aplicacion que me almacena un dato en una direccion de memoria, y luego la lee, y compara los dos datos, encendiendo un LED si son iguales. Pues bien, no lo enciende.

Estoy mirando con un osciloscopio las señales que me generan tanto el PIC como la EEPROM. El PIC manda los datos correctamente (visualizo el SCK y SO y manda los datos que debe), el problema lo tengo en la salida de la memoria. Ésta recibe la instrucción de lectura, y recibe la direccion deseada correctamente, pero el dato que envia de vuelta, no es el dato introducido anteriormente, y además tiene muy mala pinta. La señal parece que sean varias señales superpuestas, y decae de forma exponencial (más o menos, para que os hagais una idea) cuando termina el periodo de envio del dato.

No tengo ni idea de como puedo solucionarlo, y ya llevo varios dias probando cosas, y no hay manera de encender el dichoso LED.

Espero que podais ayudarme, me ayudaríais muchisimo. Estoy deseando ver ese LED encendido, .

Muchas gracias
 
Hola Theft

Si, al final, y despues de mucho esfuerzo y muxa ayuda conseguí comunicarme con la memoria EEPROM de 1024 de microchip

Comentame el problema y vere a ver si puedo ayudarte

Un saludo
 
Podríais indicar que librerías utilizasteis y si hizo falta alguna circuitería especial para la memoria, condensadores de desacoplo, diodos...

Es que no me funciona de ninguna y solo inicializo, y leo!
 
Hola que tal amigo, espero que puedas ayudarme. Necesitaría algún esquematico para conectar la eeprom con un PIC 16f628a, y si es posible alguna explicación o algoritmo para leer/ graabr la eeprom externa desde dicho PIC.
Saludos
 
¿Tanta memoria necesitas? ¿Con estos pic no tienes de sobra?

16F628A
Program Memory Size (Kbytes) 3.5
RAM 224
Data EEPROM (bytes) 128
I/O 16

16F88
Program Memory Size (Kbytes) 7
RAM 368
Data EEPROM (bytes) 256
I/O 16
 
¿Tanta memoria necesitas? ¿Con estos pic no tienes de sobra?

Y si, necesito más memoria...es para cargar en un PIC una kinformación que este debe procesar (ten en cuenta que las rutinas y demas cosas programadas en el PIC tambien ocupan memoria)
Saludos
 
Bueno, si es en C lo entiendo que pida memoria. En ensamblador menos. Aún así, entonces métete con los 16F876A o el más moderno que recomienda Microchip 16F886, o vete a la gama 18F2550 que ese tiene 16Kb de memoria flash y 2048 bytes de RAM.

¿No podrás quejarte? En ASM tienes de sobra.

Es la primera vez que veo a alguien que pida tanta memoria. Salvo que lo quieras para un Wedserver para introducir fotitos al PIC o la EEPROM externa.

¿Qué aún no estás de acuerdo?

Hablando de las 8 bits entonces hay el 18F8723 con 64kb de flash y 1024 de RAM.

¿Si te quedas corto y quieres muchas operaciones? están los PIC de 16Bits y otros mejor aún los PIC32 hasta 512kb de flash.
 
dragonspirit dijo:
Hola a todos,

Mi pregunta es si teneis algun ejemplo de utilizacion de la EEPROM interna del PIC.

Si se puede.

Código:
	LIST		P=16F84A
	INCLUDE		<P16F84A.INC>
	__CONFIG	_CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC

	CBLOCK   0x0C
	ENDC

	ORG	0x2100				; Corresponde a la dirección 0 de la zona EEPROM
							; de datos.
	DE	"Estos datos son lo que está guardado en la EEPROM", 0x00

	ORG 	0
Inicio
	sleep
	goto	Inicio
	
	END

En el MPLAB pulsa en la barra de herramientas, View--->>EEPROM. Al cargar o compilar este código se ve guardado los datos.
 
Ya que esta el tema abierto, tengo una pregunta: Es posible modificar la memoria interna del PIC sin reprogramarlo?
Me refiero: Supongamos que con un PIC "leo" la temperatura que me marca un dispositivo... es posible ir guardando en algun lugar del PIC esta información, para luego usarla en otros procesos?
 
Si, tanto en la RAM como en la EERPOM, la diferencia está que la RAM es volátil y la EEPROM no, es decir, en la EEPROM se mantiene los datos cuando pierde la alimentación y la RAM las pierde.
 
Saludos, tambien estoy trabajando en este tema y quisiera saber si alguien lo ha hecho con CCS. Se que trae unas librerias pero quisiera mas información acerca del direccionamiento de la memoria para poder entender mejor como utilizar las instrucciones de la libreria de CCS.

Tambien estuve investigando sobre los tipos de comunicacion de las memorias y encontre dos, Uno de los protocolos es por SPI y otro dice que es bus serial, alguien puede darme las especificaciones de conexion del harware (EEPROM al PIC)?

Les agradezco mucho su atensión.
 
Atrás
Arriba