Autor Tema: problema al leer como maestro en bus i2c  (Leído 1780 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado antoniopa

  • PIC12
  • **
  • Mensajes: 72
problema al leer como maestro en bus i2c
« en: 02 de Mayo de 2012, 09:43:03 »
Hola, tengo un circuito en el que hablan un pic16f877a y un pic16f882 mediante bus i2c. Lo hago en C con CCS. Para mandar datos del maestro al esclavo no hay porblema, les mando los datos y funcionando perfectamente el esclavo los lee. Pero al intentar mandar datos del esclavo al maestro no funciona, siempre me lee el mismo dato, 0x80, la rutina del maestro es esta:
Código: [Seleccionar]
i2c_start();
      i2c_write(0x03);
      delay_ms(10);
      prueba=(i2c_read(0));
      i2c_stop();
la dirección del esclavo es 0x02, y la rutina del esclavo es esta:
Código: [Seleccionar]
#INT_SSP
void actualizar()

   int1 pilot=0;
   int state=0,data=0;
   state=i2c_isr_state();
   if ((state==0)||(state==0x80))
   {
      data=i2c_read();
   }
   if (state==0x80)
   {
      i2c_write(arranque);
   }
   else if (state>0)
   {
      data=i2c_read();
   }
   switch (data)
   {
      case(0xFF):estado=emergencia;pilot=1;break;
      case(0xFE):estado=ex_inicio;pilot=1;break;
      case(0xFD):estado=arranque;pilot=1;break;
   }
   if ((state>0)&&(pilot==0))
   {
      buffer[state-1]=data;
      if (state==3)
      {
         estado=actualizacion;
      }
   }   
}

Podeis ver aolgo que haga mal en estas rutinas? gracias

Desconectado pajaro

  • PIC24H
  • ******
  • Mensajes: 1121
Re: problema al leer como maestro en bus i2c
« Respuesta #1 en: 11 de Junio de 2012, 12:09:35 »
hola

Podias colocar el fuente de ambas partes,
si lo simulas con el proteus ese programa trae un debug de i2c
y es ma facil de ver los errores.

Pero si dices que en el maestro si que te funciona, es decir el maestro puede escribir
sobre el esclavo y lo que no te va es la lectura del esclavo , tendras algo mal en la rutina de lectura
del mastro sobre el esclavo.

Por cierto ¿a ti te entra en al interrupcion?
tu utilizas #INT_SSP.
¿que entorno y compilador usas?

Yo tengo abierto un hilo sobre el i2c ,porque tambien me estoy pegando con el i2c y el 18F
 en él hay varios enlace de interes y mas que ire añadiendo la idea es que lo que yo
he pasado no lo tenga que pasar otro.


Un Saludo.


Desconectado antoniopa

  • PIC12
  • **
  • Mensajes: 72
Re: problema al leer como maestro en bus i2c
« Respuesta #2 en: 17 de Junio de 2012, 14:36:20 »
Si me entra la interrupción #int_ssp, utilizo CCS.

Cual es tu hilo?

Desconectado pajaro

  • PIC24H
  • ******
  • Mensajes: 1121
Re: problema al leer como maestro en bus i2c
« Respuesta #3 en: 17 de Junio de 2012, 16:03:48 »
Si me entra la interrupción #int_ssp, utilizo CCS.

Cual es tu hilo?

Hola Antoniopa

El hilo que te mencione es este:

http://www.todopic.com.ar/foros/index.php?topic=38568.msg321129#msg321129