LusoRobótica - Robótica em Português

Sistemas específicos => PIC => Tópico iniciado por: fiasgardone em 12 de Janeiro de 2010, 20:52

Título: I2C Problemas
Enviado por: fiasgardone em 12 de Janeiro de 2010, 20:52
Pessoal tudo bem!! :)

Pessoal sou novo por aqui, peço desde jà desculpas se alguma coisa fizer de errado, isto como ainda não ter conhecimento aqui do forum!

Bem eu estudo Linguagem C e o compilador è o CCS que estou a usar !
Comecei a estudar agora o protocol I2C para comunicar com o chip Ds1307 + o chip DS1631, o que tem dado dores de cabeça porque em individual atè funciona ,mas os dois no mesmo barramento nem pensar!

Eu uso o Pic 16F877A embora o meu ingles seja fraco jà revi os datasheetes muintas vezes de todos os chips e nao consigo que funcione!
Eu posso postar aqui tanto o codigo principal como as bibliotecas que estou a usar para ver o que esta errado quanto ao
endereço dos chips eu tenho o seguinte;

Código: [Seleccione]
DS1307= i2c_write(0xD0);  1101 000 0=w
      //     =  i2c_write(0xD1); 1101 000 1=R

         Para o DS1631
DS1631=i2c_write(0x92);  1001 001 0=w aqui Configuro A2=0  A1=0  A0=1 + 0=w
     //      =i2c_write(0x93);  1001 001 1=R

Entao no codigo tenho    #use i2c(master,sda=PIN_C4,scl=PIN_C3)
Eu estou usar os pinos C4 e C3 do PIC 16F877A para a comunicaçao dos
chips, para os dois com as resistores pullup 2.5k!!

Vou postar entao o codigo para ver se voces veem onde estou a falhar!depois posso postar aqui as bibliotecas se desejarem!

Desde jà agradeo a todos que  poder ajudar
Um abraço

#include <16f877A.h>                                   
 
#fuses XT,NOWDT,NOPROTECT,PUT,NOLVP,NOBROWNOUT 
#use delay(clock=4000000)                           

#use i2c(master,sda=PIN_C4,scl=PIN_C3,FORCE_HW)// pinos de comunicaçao...Pic+DS1307 
#include <RTC_DS1307.c>//libraria do RTC DS1307
#include <kbd4x4ABCD_PROTEUS.c> //libraria do teclado                         
#include <flex_lcd.c>
#include <DS1631.c>
   

#use standard_io (b)                                         
#use standard_io (a)
#use standard_io(c)                                                 
#use standard_io(D)     

//#define use_portb_lcd TRUE         //definir portb lcd
//Variaveis globais                                                                   

void main()//Funçao principal
{
  BYTE sec;
  BYTE min;
  BYTE hrs;                                                                         
  BYTE day;
  BYTE month;
  BYTE yr;
  BYTE dow;

     float value; 
 
 lcd_init();                                     
    delay_ms(50);
   
        //ds1307_init();
          //delay_ms(50);

                  ds1307_set_date_time(10,10,10,0,10,10,00); 
       
  while(1)
  {                                                                                       
   ds1307_init();
   delay_ms(1000);                                                                       
   
    ds1307_get_date(day,month,yr,dow);                                                   
    ds1307_get_time(hrs,min,sec);
     
    printf(lcd_Putc,"\f \%02d/\%02d/\%02d\r\n",day,month,yr);
    printf(lcd_Putc," %02d:\%02d:\%02d", hrs,min,sec);
                                                                     
                                                             
      init_temp(); 
       delay_ms(100);
       value = (float)read_full_temp();
       value /= 100.0;
       value=(value-32)/1.8;
       lcd_gotoxy(8,1);
      printf(lcd_putc,"\ftemp.%03.1f", value);                           
      delay_ms(100);
       
     }
                         
   
  }
Título: Re: I2C Problemas
Enviado por: p0wd3r em 12 de Janeiro de 2010, 22:45
Se individualmente funcionam então era de prever que funcionassem em conjunto, logo parto do princípio que estejas com problemas eléctricos. Como estás a ligar o barramento I2C? Quais as resistências de pull-up e a tensão que estás a usar na PIC?

Quanto ao código, CSS não me diz nada, eu programo à "HOMEM"  ;D ;D ;D
Título: Re: I2C Problemas
Enviado por: tr3s em 12 de Janeiro de 2010, 22:49
Certifica-te que os endereços dos chips são diferentes, para tal tens 2 ou 3 pinos em cada um para o definires. No código, certifica-te também que estás a usar o endereço correcto.
Título: Re: I2C Problemas
Enviado por: fiasgardone em 12 de Janeiro de 2010, 23:17
Se individualmente funcionam então era de prever que funcionassem em conjunto, logo parto do princípio que estejas com problemas eléctricos. Como estás a ligar o barramento I2C? Quais as resistências de pull-up e a tensão que estás a usar na PIC?

Quanto ao código, CSS não me diz nada, eu programo à "HOMEM"  ;D ;D ;D

Colega obrigado por responderes!

Em termos electricos acho que esta tudo bem, agora quanto ao barramento fiz assim; ligei os pinos  SCL e SDA do DS1307 +Ds1631 ao pino C4 e C3 do PIc que corresponde ao SDA e SCL do PIC

Quanto  as resistencia tem duas de 2.5K
Título: Re: I2C Problemas
Enviado por: fiasgardone em 12 de Janeiro de 2010, 23:21
Certifica-te que os endereços dos chips são diferentes, para tal tens 2 ou 3 pinos em cada um para o definires. No código, certifica-te também que estás a usar o endereço correcto.

Obrigado por responder!

Como eu citei em cima no codigo penso que esta bem, quer dizer que o Ds1307 tem endereço fixo, quanto ao Ds1631 esse tem 3 pinos A2,A1,A0 que podem ser modificados! quanto ao codigo tenho duvidas porque ainda nao tenho grande experiencia, por isso nâo sei por onde continuar!

Por isso eu postei o codigo em cima para ver se algem detecta algum erro!

desde ja agradeço
Título: Re: I2C Problemas
Enviado por: tr3s em 12 de Janeiro de 2010, 23:39
O código que puseste não é suficiente para ver mais  ;)
Título: Re: I2C Problemas
Enviado por: fiasgardone em 13 de Janeiro de 2010, 06:34
O código que puseste não é suficiente para ver mais  ;)

Bom Dia Daniel tudo bem!!

Olha eu que  falta no meu ver são as biblioteca mas eu posso postar aqui caso queiras, eu nao postei porque os poste muito grande,mas caso queiras eu posto!
Agora se o codigo mesmo assim falta mais alguma coisa sinceramente não sei ir mais longe!, mas caso possas correguir agradeço!

Um abraço
Título: Re: I2C Problemas
Enviado por: Njay em 13 de Janeiro de 2010, 09:28
(...) fiz assim; ligei os pinos  SCL e SDA do DS1307 +Ds1631 ao pino C4 e C3 do PIc que corresponde ao SDA e SCL do PIC

Tens que ligar o SCL com SCL e SDA com SDA.
Título: Re: I2C Problemas
Enviado por: fiasgardone em 13 de Janeiro de 2010, 10:03
(...) fiz assim; ligei os pinos  SCL e SDA do DS1307 +Ds1631 ao pino C4 e C3 do PIc que corresponde ao SDA e SCL do PIC

Tens que ligar o SCL com SCL e SDA com SDA.

Sim,Sim ,foi assim que fiz eu em cima talvez me expliquei mal !

Obrigado
Título: Re: I2C Problemas
Enviado por: Tyran em 13 de Janeiro de 2010, 13:50
E os pull-ups tão bem de certeza?
Título: Re: I2C Problemas
Enviado por: StarRider em 13 de Janeiro de 2010, 14:03
E os pull-ups tão bem de certeza?

Boas,

Acho que passa por isso mesmo, eu antes de mais ia para os 4K7... e depois então logo via.
Apesar da ideia de que o valor dos pullup nao é critico, quanto mais dispositivos existirem no
bus maior é a capacitancia (acho que o máximo ronda os 400pf) ... pullups de maior valor
são aconselháveis.

Acho que o  fiasgardone não tem nada a perder em experimentar com pullups de 4K7 (ou mesmo
10k).

Abraços
Paulo A.


Título: Re: I2C Problemas
Enviado por: fiasgardone em 13 de Janeiro de 2010, 14:50
Pessoal tudo bem!!

Bem.. respondendo aos colegas a cima ! eu tenho as resistencias  de pullups ligadas ente as linhas de SDA e SCL  e o Positivo da alimenntação ou seja os 5V para cada linha uma resistencia!

Eu experimentei os  3 valores das resistencias   2.5K,4.7K,10K e de todas o resultado è o mesmo o que mostra no LCD è;
45/25/-1
45:85:85
( Peço desculpa esqueci-me de postar no primeiro poste)

Acho que isto tem a ver com o DS1307 e não sai disso, quanto a temperatura não mostra nada!
Tenho feito tudo mas sem resultado
Para meu azar jà revistei o forum do CCs todo e nada que me consiga ajudar!
Todos juntos havemos de conseguir ! 

Um abraço

Título: Re: I2C Problemas
Enviado por: Njay em 13 de Janeiro de 2010, 17:53
Acho que passa por isso mesmo, eu antes de mais ia para os 4K7... e depois então logo via.
Apesar da ideia de que o valor dos pullup nao é critico, quanto mais dispositivos existirem no
bus maior é a capacitancia (acho que o máximo ronda os 400pf) ... pullups de maior valor
são aconselháveis.

Acho que querias dizer pull-ups de *menor* valor. Reduzir o valor do pull-up torna mais rápida a carga da capacitância do bus, fazendo com que a linha vá mais depressa para os 5V quando todos os dispositivos a largam.

Também há um limite inferior, pois os drivers dos dispositivos só fornecem X corrente e esse X em conjunto com o pull-up tem que ser suficiente para manter a linha suficientemente perto do GND quando "activa".

Mas são só 2 dispositivos no bus, o pull-up paqui não me parece crítico. Eu ia mais para um problema de endereçamento (mas parece que o endereço não é configurável, é um número único) ou um problema de libertação do bus (verifica que ambas as linhas SDA e SCL vêm a 5V depois de falar com um chip e antes de começar a falar com o outro) ou um problema de tempo (os sinais estão a mudar demasiado depressa). Ou então não estás a emitir um STOP depois de usar o DS1307 e quando vais aceder ao outro DS o 1307 ainda responde estrangando assim a comunicação.
Título: Re: I2C Problemas
Enviado por: p0wd3r em 13 de Janeiro de 2010, 19:42
Olha uma coisa, estes chips (Ds1307 + o chip DS1631) estão alimentados a que tensão ?
Título: Re: I2C Problemas
Enviado por: fiasgardone em 13 de Janeiro de 2010, 20:19
Pessoal

 Todos os componentes estaõ ligados a 5V !

Eu tambem penso que seja outro problema mas não dos resistencias pull-ups, bem o chips Ds1307 esse tem o endereço unico ¨,mas o DS1631 esse tem pode ser configuravel ele tem 3 pinos de configuração è o A2,A1,A0, espero não estar enganado! eu medi o bus e estao nos 5 V

Agora quando individual atè funciona,agora quando ligo os dois chips no mesmo bus ,aí fica preso , men a temperatura mostra !

Pessoal caso algem quiser experimentar eu posto aqui as bibliotecas ou atè só para ver onde esta o erro ou erros, sinceramente jà estou com isto a bastante tempo e ainda não consegui por a funcionar!

Agradeço emenso os vossos comentarios


Forte abraço
Título: Re: I2C Problemas
Enviado por: p0wd3r em 13 de Janeiro de 2010, 20:38
então pelos vistos tens tudo bem a nível de hardware! o que me está a fazer confusão é quando dizes que individual funciona, logo parto do princípio que a tua PIC fica presa no código!!!

Como já referi, a nível de código (CSS) não te posso ajudar, o que podes fazer é testar o teu código com LED's, isto é, ligas alguns LED's a portos que tenhas disponíveis e vais tentando "pontos críticos" para saberes se a PIC faz o que programaste.
Título: Re: I2C Problemas
Enviado por: fiasgardone em 13 de Janeiro de 2010, 21:28
então pelos vistos tens tudo bem a nível de hardware! o que me está a fazer confusão é quando dizes que individual funciona, logo parto do princípio que a tua PIC fica presa no código!!!

Como já referi, a nível de código (CSS) não te posso ajudar, o que podes fazer é testar o teu código com LED's, isto é, ligas alguns LED's a portos que tenhas disponíveis e vais tentando "pontos críticos" para saberes se a PIC faz o que programaste.

Caro amigo as pessoas só ajudam no que podem, e fico agradeço por isso!!

Eu penso que que a comunicaçao entre o Pic e os chips nao esta a ser feita da melhor maneira no codigo principal, acho que deve haver algum conflito  no bus de comunicação, mas tambem não estou a  ver onde, os meus conhecimentos tambem não são muitos! eu jà mudifiquei o codgo mais de 20vezes e continua na mesma !

Pode ser que lgem descobra onde esta o erro !
Um abraço

Título: Re: I2C Problemas
Enviado por: ricardo-reis em 13 de Janeiro de 2010, 21:42
eu n te posso ajudar com pics porque não tenho experiência nenhuma com eles, mas acho que n tens nada a perder em postar o código completo desse teu projecto, porque será mais fácil que te ajudem com ele à frente do que simplesmente a especular de onde será o problema.. tens aqui já uns quantos a querer ajudar mas sem código não conseguem fazer mt mais..
Título: Re: I2C Problemas
Enviado por: fiasgardone em 13 de Janeiro de 2010, 22:41
eu n te posso ajudar com pics porque não tenho experiência nenhuma com eles, mas acho que n tens nada a perder em postar o código completo desse teu projecto, porque será mais fácil que te ajudem com ele à frente do que simplesmente a especular de onde será o problema.. tens aqui já uns quantos a querer ajudar mas sem código não conseguem fazer mt mais..

Amigo reis não ha problema ninhum, e o não poder ajudar è muito normal, por isso eu disse que ponho o codigo e as bibliotecas sem problema! isto que vou postar foi o que fiz eo que pesquisei,vejam se poderem o que esta mal por favor e poder ajudar ,claro!

Um abraço

Primeiro o codigo e depois as bibliotecas !!
codigo
Código: [Seleccione]
#include <16f877A.h>                                   
 
#fuses XT,NOWDT,NOPROTECT,PUT,NOLVP,NOBROWNOUT 
#use delay(clock=4000000)                           
//#use i2c(master,sda=PIN_C4,scl=PIN_C3,FORCE_HW)// pinos de comunicaçao...Pic+DS1307 
#include <RTC_DS1307.c>//libraria do RTC DS1307
#include <kbd4x4ABCD_PROTEUS.c> //libraria do teclado
#include <flex_lcd.c>
#include <DS1631.c>
   
#use standard_io (b)                                         
#use standard_io (a)
#use standard_io(c)                                                 
#use standard_io(D)     

void main()//Funçao principal
{
  BYTE sec;
  BYTE min;
  BYTE hrs;                                                                         
  BYTE day;
  BYTE month;
  BYTE yr;
  BYTE dow;
 
     float value; 
 
 lcd_init();                                     
    delay_ms(50);
           init_temp();                                             

   
        ds1307_init();
          delay_ms(50);

            lcd_putc("\f Relogio Calendario");
             delay_ms(500); 
                 
                                         ds1307_set_date_time(10,10,10,0,10,10,00); 
     while(1)
  {                                                                                       
   
   delay_ms(1000);                                                                       
   
    ds1307_get_date(day,month,yr,dow);                                                   
    ds1307_get_time(hrs,min,sec);
     
    printf(lcd_Putc,"\f \%02d/\%02d/\%02d\r\n",day,month,yr);
    printf(lcd_Putc," %02d:\%02d:\%02d", hrs,min,sec);
                                                                                                                               
   value = (float)read_full_temp();   
       value /= 100.0;                                                                     
       value=(value-32)/1.8;
       lcd_gotoxy(15,1);                   
      printf(lcd_putc,"temp.%03.1f", value);                           
      delay_ms(100);                                                                   
       
}
  }   
DS1307
Código: [Seleccione]

///                               DS1307.C                                   ///
///                     Driver for Real Time Clock                           ///

#define DAL_SCL PIN_C3                 
#define DAL_SDA PIN_C4
#use i2c(master, sda=DAL_SDA, scl=DAL_SCL)
BYTE bin2bcd(BYTE binary_value);
BYTE bcd2bin(BYTE bcd_value);

void ds1307_init(void)
{
   BYTE seconds = 0;

   i2c_start();
   i2c_write(0xD0);      // WR to RTC
   i2c_write(0x00);      // REG 0
   i2c_start();
   i2c_write(0xD1);      // RD from RTC
   seconds = bcd2bin(i2c_read(0)); // Read current "seconds" in DS1307
   i2c_stop();
   seconds &= 0x7F;

   delay_us(3);

   i2c_start();
   i2c_write(0xD0);      // WR to RTC
   i2c_write(0x00);      // REG 0
   i2c_write(bin2bcd(seconds));     // Start oscillator with current "seconds value
   i2c_start();
   i2c_write(0xD0);      // WR to RTC
   i2c_write(0x07);      // Control Register
   i2c_write(0x01);     // Disable squarewave output pin
   i2c_stop();     

}

void ds1307_set_date_time(BYTE day, BYTE mth, BYTE year, BYTE dow, BYTE hr, BYTE min, BYTE sec)
{
  sec &= 0x7F;
  hr &= 0x3F;

  i2c_start();                                             
  i2c_write(0xD0);            // I2C write address
  i2c_write(0x00);            // Start at REG 0 - Seconds
  i2c_write(bin2bcd(sec));      // REG 0
  i2c_write(bin2bcd(min));      // REG 1
  i2c_write(bin2bcd(hr));      // REG 2
  i2c_write(bin2bcd(dow));      // REG 3
  i2c_write(bin2bcd(day));      // REG 4
  i2c_write(bin2bcd(mth));      // REG 5
  i2c_write(bin2bcd(year));      // REG 6
  i2c_write(0x01);            // REG 7 - Disable squarewave output pin
  i2c_stop();
}
                                   
void ds1307_get_date(BYTE &day, BYTE &mth, BYTE &year, BYTE &dow)
{
  i2c_start();
  i2c_write(0xD0);
  i2c_write(0x03);            // Start at REG 3 - Day of week
  i2c_start();
  i2c_write(0xD1);
  dow  = bcd2bin(i2c_read() & 0x7f);   // REG 3
  day  = bcd2bin(i2c_read() & 0x3f);   // REG 4
  mth  = bcd2bin(i2c_read() & 0x1f);   // REG 5
  year = bcd2bin(i2c_read(0));            // REG 6
  i2c_stop();
}

void ds1307_get_time(BYTE &hr, BYTE &min, BYTE &sec)
{
  i2c_start();
  i2c_write(0xD0);
  i2c_write(0x00);            // Start at REG 0 - Seconds
  i2c_start();
  i2c_write(0xD1);
  sec = bcd2bin(i2c_read() & 0x7f);
  min = bcd2bin(i2c_read() & 0x7f);
  hr  = bcd2bin(i2c_read(0) & 0x3f);
  i2c_stop();

}

BYTE bin2bcd(BYTE binary_value)
{
  BYTE temp;
  BYTE retval;

  temp = binary_value;
  retval = 0;

  while(1)
  {
    // Get the tens digit by doing multiple subtraction
    // of 10 from the binary value.
    if(temp >= 10)
    {
      temp -= 10;
      retval += 0x10;
    }
    else // Get the ones digit by adding the remainder.
    {
      retval += temp;
      break;
    }
  }

  return(retval);
}


// Input range - 00 to 99.
BYTE bcd2bin(BYTE bcd_value)
{
  BYTE temp;

  temp = bcd_value;
  // Shifting upper digit right by 1 is same as multiplying by 8.
  temp >>= 1;
  // Isolate the bits for the upper digit.
  temp &= 0x78;

  // Now return: (Tens * 8) + (Tens * 2) + Ones

  return(temp + (temp >> 2) + (bcd_value & 0x0f));
}

ds1631

Código: [Seleccione]


////   Library for a Dallas 1631 Temperature chip                       ////
////                                                                    ////




#define read_temp    read_full_temp // for backwards compatability

#use i2c(master, sda=DAL_SDA, scl=DAL_SCL)
                                             
                                             
void temp_config(BYTE data) {
                                   
   i2c_start();                                 
   i2c_write(0x92);
   i2c_write(0xac);             
   i2c_write(data);                     
   i2c_stop();
}
           

void init_temp() {
   output_high(DAL_SDA);
   output_high(DAL_SCL);             
   i2c_start();
   i2c_write(0x92);
   i2c_write(0x51);
   i2c_stop();
   temp_config(0xc);
}


signed long read_full_temp() {  // Returns hundreths of degrees F (-67 to 257)
   long datal; //long datal;
   signed long datah, data;
 

   i2c_start();
   i2c_write(0x92);                                                                             
   i2c_write(0xaa);
   i2c_start();
   i2c_write(0x93);                                                           
   datah=i2c_read();                                                       
   datal=i2c_read(0);
   i2c_stop();

   data = datah * 100;
   data += (datal << 8) / 655;   
   data=data*9;
   data = (data / 5) + 3200;

   return(data);
Título: Re: I2C Problemas
Enviado por: TigPT em 14 de Janeiro de 2010, 01:07
Olá,

Pode ser um pouco descontextoalizado pois não tive tempo para ler toda a sequência do tópico contudo gostaria de deixar referencia para uma lib de i2c por software que estou de momento a fazer para arm e que embora ainda esteja em fase crua, pode já ajudar por comparação a encontrar alguma anomalia.

O ficheiro vai sendo actualizado conforme vou desenvolvendo sobre ele, assim em vez de o transcrever deixo antes um link para o ficheiro em si.

http://code.google.com/p/lpc210x/source/browse/trunk/libs/i2c.c (http://code.google.com/p/lpc210x/source/browse/trunk/libs/i2c.c)

Qualquer questão mais concreta ou se suspeitar onde possa estar a anomalia, vá comunicando que tentarei ajudar.

______________
Estive a ler na diagonal e encontrei 2 starts sem stops pelo meio, acho que não deve de dar bom resultado:
Código: [Seleccione]
   i2c_start();
   i2c_write(0xD0);      // WR to RTC
   i2c_write(0x00);      // REG 0
   i2c_start();

Estou também a fazer lib para o DS1621, pelo que deixo o link:
http://code.google.com/p/lpc210x/source/browse/trunk/libs/DS1621.c (http://code.google.com/p/lpc210x/source/browse/trunk/libs/DS1621.c)

Volto a referir, estes ficheiros não estão ainda totalmente testados.
Título: Re: I2C Problemas
Enviado por: tr3s em 14 de Janeiro de 2010, 12:03
Creio que aqueles dois start estão bem, o datasheet fala nisso se não me engano.

FiasGardone, já não me recordo bem dos datasheets destes dois módulos, mas verifica bem em que modo de funcionamento os estás a programar. Certifica-te bem com o datasheet que estás a enviar os comandos correctos para funcionarem num bus com mais dispositivos.
Sugiro ainda que faças um delay_ms entre os dois inits na Main e ainda entre as duas leituras que fazes seguidas ao RTC (este último é só um "just-in-case").

Caso ainda não o tenhas feito... Dá uma olhada nestes dois tópicos, lê tudo com atenção e vê também o código:
Real Time Clock DS1307 (RTC) (http://lusorobotica.com/index.php/topic,681.0.html)
Termómetro / Termo-estato DS1620 (http://lusorobotica.com/index.php/topic,435.0.html)
Título: Re: I2C Problemas
Enviado por: fiasgardone em 15 de Janeiro de 2010, 23:14
Boa noite Pessoal!!

Agradeço desde ja o vosso apoio!

Daniel fiz todas as alteraçõs que indicou no seu post acima e nao resultou,perece incrivel mas està na mesma, depois tentei fazer mais modificações como fazer as inicializações dentro do ciclo(WHILE) e nada!
de tanta  experiencia que fiz atè que ficou torado um 16F877A e o DS1307,devido a eu ter tirado o regulador 7805 e não me lembrei mais de que o tinha tirado depois liguei a fonte que è de 12V quando me deparei ja tinha ido a vida!
Vi os tópicos que me aconselhou e bastantes interessante pena eu não perceber tudo ( desculpem mas tenho que falar verdade) e se tornou para mim não muito claro !!

A coisa que mais me chateia è funcionar separado e não e não os dois no mesmo Bus! embora o Ds1631 è um pouco lento a actualizar a temperatura !

Quanto aos comandos eu penso que esta tudo bem eu vi o data  e quanto aos comando esta como manda os data!
Pessoal se algem tiver mais alguma ideia para resolver isto agradeço!
Um abraço
Título: Re: I2C Problemas
Enviado por: Njay em 16 de Janeiro de 2010, 01:21
Tenta descobrir qual dos chips (ou se os 2) está a interferir. Faz um programa que ora lê de um chip ora lê do outro, mas em que só se carregares numa tecla do terminal é que ele avança para o teste de um chip para o outro. Aí podes em várias experiências deixar os 2 chips, tirar um enquanto acedes ao outro e vice-versa, para tentar perceber se é um dos chips que interfere quando se acede ao outro ou vice-versa ou se ambos interferem um com o outro.
Título: Re: I2C Problemas
Enviado por: fiasgardone em 02 de Fevereiro de 2010, 21:57
Boa noite pessoal
Depois de tudo o apoio que me deram eu não podia dexar de dizer que o problema foi resolvido, e o erro esta realmente na comunicação ente o PIC e o DS1631 e o ds1307, oe seja eu estava a configurar mal os pinos do PIC
Desde jà agradeço mais o grande apoio que me foi dado!
Espero voltar
Um abraço
Título: Re: I2C Problemas
Enviado por: p0wd3r em 03 de Fevereiro de 2010, 13:03
Boa noite pessoal
Depois de tudo o apoio que me deram eu não podia dexar de dizer que o problema foi resolvido, e o erro esta realmente na comunicação ente o PIC e o DS1631 e o ds1307, oe seja eu estava a configurar mal os pinos do PIC
Desde jà agradeço mais o grande apoio que me foi dado!
Espero voltar
Um abraço

Por vezes são coisas tão simples que até passam ao lado. Ainda bem que resolveste. Abc.
Título: Re: I2C Problemas
Enviado por: fiasgardone em 05 de Fevereiro de 2010, 06:55

Por vezes são coisas tão simples que até passam ao lado. Ainda bem que resolveste. Abc.

È verdade ,razão para a proxima vez estar mais atento!

Um abraço