Autor Tema: Problema al usar i2c ccs con pcf8574a y pcf8574  (Leído 3678 veces)

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

Desconectado kzxm300

  • PIC10
  • *
  • Mensajes: 6
Problema al usar i2c ccs con pcf8574a y pcf8574
« en: 17 de Diciembre de 2011, 09:48:52 »
Buen día tengan todos ustedes integrantes y visitantes de este gran foro, bueno es la primera vez que expongo un problema y ver si ustedes me pueden ayudar.

Sucede que ando usando el bus i2c  :mrgreen:  jaja una maravilla de bus, pero tengo un problema,  se trata de que estoy usando dos pcf8574 y un pcf8574a(maravilla de integrados  :mrgreen:) en el mismo bus y le conecté las resistencias pullup (puse unas de valor de 10k) también la dirección de esclavo para cada uno pero a la hora de correrlo solo me funciona un pcf8574 no se cual sea el problema, les dejo el código fuente y la simulación en proteus, espero y me puedan ayudar, estoy usando el pic 16f877a.

Código: [Seleccionar]
#include <16F877A.h>
#fuses HS,NOWDT,NOPUT,NOLVP,NOBROWNOUT,NOWRT,NOPROTECT
#use delay(clock=20000000)
#use i2c(master,sda=PIN_C4,scl=PIN_C3,FORCE_HW)

void PCF8574_SendData(char writeaddress,char data)
{
   i2c_start();
   i2c_write(writeaddress);
   i2c_write(data);
   i2c_stop();
}

unsigned char PCF8574_GetData(char readaddress)
{
char data;
   i2c_start();
   i2c_write(readaddress);
   data=i2c_read(0);
   i2c_stop();
return data;
}

void main()
{
char i;

   do{
   for(i=1;i<=255;i++)
   {  
   PCF8574_SendData(0x70,i);
   delay_ms(100);
   PCF8574_SendData(0x40,i);
   delay_ms(100);
   PCF8574_SendData(0x41,i);
   delay_ms(100);
   }                  
      
   }while(TRUE);
    
}
« Última modificación: 23 de Diciembre de 2011, 22:18:27 por kzxm300 »

Desconectado JuanEZWon

  • PIC10
  • *
  • Mensajes: 21
Re: Problema al usar i2c ccs con pcf8574a y pcf8574
« Respuesta #1 en: 07 de Enero de 2012, 16:58:46 »
Revisando el circuito, tienes un error y es que en el proteus tienes configurado el microcontrolador para funcionar a 4MHZ siendo que en el CCS lo defines a 20MHZ

Desconectado kzxm300

  • PIC10
  • *
  • Mensajes: 6
Re: Problema al usar i2c ccs con pcf8574a y pcf8574
« Respuesta #2 en: 08 de Enero de 2012, 01:58:37 »
Revisando el circuito, tienes un error y es que en el proteus tienes configurado el microcontrolador para funcionar a 4MHZ siendo que en el CCS lo defines a 20MHZ

Si pues aunque de todas formas lo simula si lo cambio o no pero aunque lo corrija poniendo ya sea en el ccs 4000000 en vez de 20000000 o cambiando la configuracion en proteus sigo teniendo el mismo problema que les menciono

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Problema al usar i2c ccs con pcf8574a y pcf8574
« Respuesta #3 en: 08 de Enero de 2012, 11:05:45 »
  Ten en cuenta que para que funcione bien el bus I2C en proteus las resistencias que utilices deben ser del tipo pullup. Alguna vez utilicé el componente de resistencias genéricas y no funcionaba bien. Busca el componente tipo pullup.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado gustavosinbandera

  • PIC10
  • *
  • Mensajes: 19
Re: Problema al usar i2c ccs con pcf8574a y pcf8574
« Respuesta #4 en: 22 de Mayo de 2013, 14:41:03 »
el error es muy evidente, tienes que observar que la dirección del tercer dispositivo esta mal, yo la corregí y funciona muy bien, en realidad me sirvio de mucho este post, gracias amigo por compartir, la dirección del tercer dispositivo debe ser 0x42 y no 0x41


do{
   for(i=1;i<=255;i++)
   { 
   PCF8574_SendData(0x70,i);
   delay_ms(100);
   PCF8574_SendData(0x40,i);
   delay_ms(100);
   PCF8574_SendData(0x42,i);
   delay_ms(100);
   }                 
     
   }while(TRUE);


 

anything