Autor Tema: a vueltas con el I2C  (Leído 1648 veces)

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

Desconectado pirraca

  • PIC10
  • *
  • Mensajes: 11
a vueltas con el I2C
« en: 17 de Abril de 2009, 05:12:55 »
Estoy diseñando un programa sencillito de I2C master con un 16F886.

el codigo es el siguiente:

Código: [Seleccionar]
include <16F886.h>


#FUSES NOWDT                    //No Watch Dog Timer
#FUSES XT                       //
#FUSES NOPUT                    //No Power Up Timer
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NODEBUG                  //No Debug mode for ICD
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD                    //No EE protection


#use delay(clock=20000000)

#use i2c(MASTER, sda=PIN_C4,scl=PIN_C3, force_hw)

void main()
{
   
   setup_timer_0(RTCC_EXT_L_TO_H|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   
   while(TRUE)
   {   
      i2c_start();               //begin transmission
      i2c_write(end_disp);           //select address of device to communicate with
      i2c_write(dado);           //send actual data
      i2c_stop();                //terminate communication
   
      delay_ms(200);
    }

}



La salida que obtengo en el pin SCL es la del archivo adjunto. En el pin SDA no se obtiene ninguna salida, se queda a nivel alto, pero no se aprecia variacion alguna.

Es decir, tengo un problema el cual no se soluciona de ninguna manera, por eso acudo a vosotros. Las resistencias de pull-up en SDA y SCL son de 4K7

muchas gracias!
« Última modificación: 17 de Abril de 2009, 05:17:13 por pirraca »

Desconectado pirraca

  • PIC10
  • *
  • Mensajes: 11
Re: a vueltas con el I2C
« Respuesta #1 en: 17 de Abril de 2009, 07:01:09 »
he probado el mismo codigo en un pic16f876 con su cabecera correspondiente y funciona a la perfeccion...

imagino que será algun problema del header.

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: a vueltas con el I2C
« Respuesta #2 en: 17 de Abril de 2009, 11:10:30 »
lo unico que encontre raro ...
#FUSES XT   

su xtal es de 20MHZ entonces debes ponerle HS en el fuse. ese pic no lo conozco pero derepente tienes multiplexado en los pines que quieres usar para el i2c por hw alguna función que derepente debes desactivar.

saludos  :-/
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com


 

anything