• Lunes 20 de Mayo de 2024, 16:27

Autor Tema:  Escribir En Eeprom 24lc256  (Leído 4800 veces)

jpaler

  • Miembro MUY activo
  • ***
  • Mensajes: 479
    • Ver Perfil
Escribir En Eeprom 24lc256
« en: Viernes 9 de Junio de 2006, 13:44 »
0
Código: Text
  1.  
  2. //LIBRERIA PARA LA EEPROM 24LC256.c
  3. #ifndef EEPROM_SDA
  4. #define EEPROM_SDA  PIN_B1
  5. #define EEPROM_SCL  PIN_B0
  6. #endif
  7.  
  8. #use i2c(master, sda=EEPROM_SDA, scl=EEPROM_SCL)
  9. #define EEPROM_ADDRESS long int
  10. #define EEPROM_SIZE   32768
  11.  
  12. void init_ext_eeprom(){
  13.    output_float(EEPROM_SCL);
  14.    output_float(EEPROM_SDA);
  15. }
  16.  
  17. void write_ext_eeprom(long int address, BYTE data){
  18.    short int status;
  19.    i2c_start();
  20.    i2c_write(0xa0);
  21.    i2c_write(address>>8);
  22.    i2c_write(address);
  23.    i2c_write(data);
  24.    i2c_stop();
  25.    i2c_start();
  26.    status=i2c_write(0xa0);
  27.    while(status==1)   {
  28.        i2c_start();
  29.        status=i2c_write(0xa0);
  30.    }
  31. }
  32.  
  33. BYTE read_ext_eeprom(long int address) {
  34.    BYTE data;
  35.    i2c_start();
  36.    i2c_write(0xa0);
  37.    i2c_write(address>>8);
  38.    i2c_write(address);
  39.    i2c_start();
  40.    i2c_write(0xa1);
  41.    data=i2c_read(0);
  42.    i2c_stop();
  43.    return(data);
  44. }
  45.  
  46.  

muchachos, esa es la libreria de ccs para escribir en la eeprom de 24lc256.
hasta el momento me habia escrito todo los datos q le mandaba correctamente, pero
ahora q he tenido la necesidad de escribir datos en localidades altas de la memoria,
me esta colocando problemas.

si le mando esto (dir puede estar entre 0 y 250 mas o menos):
Código: Text
  1.  
  2.     long dir;
  3.     WRITE_EXT_EEPROM( dir, 'a' );
  4.  
  5.  
no pone problema para nada, es decir, lo guarda bien.

...,pero si le mando a q escriba un dato despues de dir mayor a 250:
Código: Text
  1.  
  2.     long dir; //dir=mas de 250
  3.     WRITE_EXT_EEPROM( dir, 'a' );
  4.  
  5.  
entonces no lo escribe... y a veces se bloquea.

¿q esta pasando?

overnat

  • Miembro activo
  • **
  • Mensajes: 52
    • Ver Perfil
Re: Escribir En Eeprom 24lc256
« Respuesta #1 en: Miércoles 26 de Septiembre de 2007, 07:32 »
0
Creo que el problema viene por que tienes que poner una resistencia pull up en la memoria .

Si no la tienes puesta no te funcionará .

Salu2

jpaler

  • Miembro MUY activo
  • ***
  • Mensajes: 479
    • Ver Perfil
Re: Escribir En Eeprom 24lc256
« Respuesta #2 en: Viernes 28 de Septiembre de 2007, 21:58 »
0
...jejeje... gracias overnat... efectivamente ese era el problemita en ese entonces.

...,pero... ¿ya miraste la fecha en q inicie el post?

salu2 !!!