TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: kidpic en 06 de Enero de 2010, 18:10:56

Título: memorias 24lc256
Publicado por: kidpic en 06 de Enero de 2010, 18:10:56
Hola muchachos ante que nada un muy buen 2010.!!
Mi primer pregunta del 2010 es la siguiente.
¿Cual s la maxima direcciòn de una memoria 24lc256?

Tengo entendido que son 256Kbit y sus registros son de 8 bit. que hacen 32Kbytes
el primer lugar de momoria seria entonces la direccion 00 y cual seria la última
Espero sus respuestas muchas gracias!
Título: Re: memorias 24lc256
Publicado por: RICHI777 en 06 de Enero de 2010, 18:29:48
La última seria 0x7FFF .

Saludos !
Título: Re: memorias 24lc256
Publicado por: ASTROCAR en 06 de Enero de 2010, 23:15:01
Hola muchachos ante que nada un muy buen 2010.!!
Mi primer pregunta del 2010 es la siguiente.
¿Cual s la maxima direcciòn de una memoria 24lc256?

Tengo entendido que son 256Kbit y sus registros son de 8 bit. que hacen 32Kbytes
el primer lugar de momoria seria entonces la direccion 00 y cual seria la última
Espero sus respuestas muchas gracias!

Hola buenas noches, comentando un poco y como ya lo afirmo el colega RICHI777  su maxima direccion es 7FFF pero el porque de tu pregunta y no entiendo porque colocastes este post en la seccion de C. si puedes explicarnos lo que tienes en mente con esta eeprom i2c y si te podemos colaborar en algo.

saludos y esperamos tus comentarios
Atten.
Alexander Santana.
Venezuela-Barcelona.
Título: Re: memorias 24lc256
Publicado por: juanpavz en 07 de Enero de 2010, 00:26:57
256Kbits = 32Kbytes = 32*1024bytes = 32768bytes = 8000(Hex) es decir desde la direccion 0x0000 hasta 0x7FFF
Título: Re: memorias 24lc256
Publicado por: kidpic en 07 de Enero de 2010, 05:46:09
El tema es el siguiente: Tengo que leer los datos de un adc de 10 bit como lo es el del pic 16f887. Para ello tendria que tomar la parte baja ( enmascararla la lectura ) y guardarla en un lugar de memoria de 8 bit, a la restante (la parte alta) la guardo en el siguiente lugar de memoria. Para ello tengo que realizar una funcion. Sabiendo la maxima dirección puedo saber cuantos datos ( de temperatura por ejemplo ) puedo guardar. y despues recuperarlos.
gracias.
Título: Re: memorias 24lc256
Publicado por: kidpic en 07 de Enero de 2010, 06:09:49
me olvidaba, Gracias! por las respuestas. con este razonamiento puedo guardar una cantidad de 16384 datos ( guardando parte baja y alta ) del adc. si es así confirmenlo por favor.
Título: Re: memorias 24lc256
Publicado por: ASTROCAR en 07 de Enero de 2010, 09:01:29
me olvidaba, Gracias! por las respuestas. con este razonamiento puedo guardar una cantidad de 16384 datos ( guardando parte baja y alta ) del adc. si es así confirmenlo por favor.
Si forista exactamente eso puedes guardar en la eeprom i2c 24c256 ahora porque lo de postear en la seccion de c porque piensas hacer el codigo en c imagino verdad.

saludos y lo digo es porque no veo la relacion del post con esta seccion.
Atten.
Alexander Santana.
Venezuela-Bacerlona.
Título: Re: memorias 24lc256
Publicado por: Suky en 07 de Enero de 2010, 09:03:24
me olvidaba, Gracias! por las respuestas. con este razonamiento puedo guardar una cantidad de 16384 datos ( guardando parte baja y alta ) del adc. si es así confirmenlo por favor.

Esta bien, tienes un total de 32768 bytes, así que como utilizas 2 para cada conversión tienes lo que muestras.

Para enviarlo no necesitas enmascarar, con solo rotar ya esta:

Código: C
  1. write_eeprom(Direccion++,(Data>>8));
  2.         write_eeprom(Direccion, Data); // Solo transfiere los primeros 8 bits, truncando.


Saludos!
Título: Re: memorias 24lc256
Publicado por: kidpic en 07 de Enero de 2010, 16:12:37
Gracias muchachos.
Suky como funcionan las dos lineas que posteaste. como es eso de rotar. Como guardaria el byte bajo en una dirección y el alto en la dirección siguiente.
Que significa el DATA >>8  . :oops: :oops:Gracias de antemano.
Título: Re: memorias 24lc256
Publicado por: Suky en 07 de Enero de 2010, 21:25:46
Es simple, la instrucción rotar toma el dato y desliza sus bits a izquierda o derecha, así por ejemplo un Data=0b00010011 al realizar (Data<<4) quedaría 0b00110000. En las lineas que poste toma el byte mas significativo de la palabra (16-bits) y lo rota a la posición del byte menos significativo.


Saludos!
Título: Re: memorias 24lc256
Publicado por: kidpic en 13 de Enero de 2010, 18:22:18
A ver si voy bien muchachos, este programita guarda el valor leido por el adc de 10 bit en memoria considerando parte alta y baja)
En primer lugar definiria
 
long i=0;            // inicio de direccion de memoria
long value=0;     //  variable donde guardo la lectura del adc

//me meto en un bucle hasta llegar a la direccion 16384
while(i<=16384);
{
value = read_adc();             //leo el conversor
write_ext_eeprom (i,value);   //escribo en la direccion 00 la parte baja del adc
i=i++;                                  //  incremento la direccion para la parte alta
value= value>>8;                 // roto para guardar la parte alta
write_ext_eeprom (i,value); // guardo en la direccion siguiente la parte alta
i=i++                                // incremento memoria para que guarde otro dato
}

Bueno esto seria el tronco del programita, por supuesto tengo que configurar el adc, el pic etc......
Gracias por el aporte!!!!
Título: Re: memorias 24lc256
Publicado por: kidpic en 13 de Enero de 2010, 23:26:27
Perdon la última dirección i=32767 (0x7FFF)
gracias!!!!!!