• Domingo 19 de Mayo de 2024, 16:56

Autor Tema:  I2c  (Leído 2334 veces)

mariale442

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
I2c
« en: Miércoles 6 de Septiembre de 2006, 20:53 »
0
hola... estoy intentando hacer un programa en donde pueda escribir y leer "abcd" en una memoria eeprom externa. estoy usando el PIC18F4620 y la memoria eeprom que estoy usando es la 24AA256.

en realidad... no se cual es la falla que tiene el programita que yo estoy haciendo... ya que para saber que fue lo que uno escribio en la memoria... hay que leerlo.  :unsure:  :unsure:  :unsure:

debido a esto... no se si el problema es que esta escribiendo basura, leyendo basura, o ninguna de las dos cosas funciona...   :angry:  :angry:  :angry:
ya que cuando leo la memoria imprime "yp" y no "abcd".

aqui les dejo mi codigo:

#include <p18F4620.h>
#include <usart.h>
#include <delays.h>
#include <stdlib.h>
#include <i2c.h>


unsigned char arraywr[] = "abcd";
unsigned char arrayrd[20];


void main (void)
{

TRISC=0b00011000;
TRISB=0b11111111;


OpenI2C(MASTER, SLEW_ON);// Initialize I2C module
SSPADD = 4; //400kHz Baud clock(9) @8MHz

while(1)
{
TRISB = 0;
PORTB = 1;
Delay100TCYx (255);
PORTB = 0;
Delay100TCYx (255);

EEPageWrite(0xA0, 0x70, arraywr);
funcionUSART(arraywr);  // esta es un funcion que imprime por el puerto serial lo                                                                                                                            //que se quiere escribir en memoria, aqui imprime "abcd"...
Delay100TCYx(255);

EEAckPolling(0xA0);
EESequentialRead(0xA0, 0x70, arrayrd, 4);
funcionUSART(arrayrd); // aqui se quiere imprimir lo que leyo de la memoria
/// aqui es donde imprime "yp" y no "abcd"  :blink:  :blink:  :blink:
}
}

Cualquier ayuda que me puedan dar, se los agradeceria  :D  :D  :D

Saludos,  :hola:  :hola:  :hola:

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: I2c
« Respuesta #1 en: Viernes 8 de Septiembre de 2006, 13:43 »
0
Puedes leer la memoria usando el programador?.. que programador utilizas para el pic?.. tienes un esquema del conexionado de la memoria en el pic?.. aveces cuando se trabaja con memorias externas los problemas suelen estar en la conexion de la memoria con el pic y no justamente en el codigo. Espero tu respuesta. Saludos :)
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

Kain589

  • Miembro activo
  • **
  • Mensajes: 53
    • Ver Perfil
Re: I2c
« Respuesta #2 en: Viernes 8 de Septiembre de 2006, 14:15 »
0
Para la conexion entre el pic y la memoria ¿Has puesto las resistencias de pull-up?

mariale442

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: I2c
« Respuesta #3 en: Martes 12 de Septiembre de 2006, 15:06 »
0
Hola a todos...

Ya mi problema con la memoria e i2c esta resuelto...

la cuestion era que la memoria 24AA256 para poder escribir y leer en ella... es necesario pasarle como parametros dos direcciones (la parte alta y la parte baja), mientras que las rutinas que estaba utilizando necesitaban un solo parametro para la direccion del mismo.

Hubo la necesidad de realizar las rutinas que recibieran las dos direcciones.  :comp:

Gracias a todos por la ayuda que me prestaron  :lol:  :lol:  :lol:

Cualquier duda que tenga... volvere a pedir ayuda...  :comp:

Saludos,  :hola:  :hola:  :hola: