Autor Tema: Conexion y Seleccion de perifericos con bus I2c?  (Leído 3530 veces)

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

Desconectado tornar

  • PIC18
  • ****
  • Mensajes: 342
Conexion y Seleccion de perifericos con bus I2c?
« en: 04 de Abril de 2005, 03:42:00 »
Hola, alguien me puede explicar lo siguiente:

Yo tengo una placa que viene preparada con 2 bornes de salida para el I2c (SDA y SCL), si yo ahora kiero conectar diversos perifericos, como sensores analogicos, digitales o de cualkier tipo compatibles con I2c, como los conecto? Todos a SDA y SCL de la placa??

Y luego, en CCS, como consigo seleccionar uno u otro dispositivo para trabajar con el?

Por ultimo me gustaria saber, en el caso de usar un dispositivo con salida analogica, antes de llegar al PIC necesitaria pasarlos por un conversor A/D, no?

Desconectado tornar

  • PIC18
  • ****
  • Mensajes: 342
RE: Conexion y Seleccion de perifericos con bus I2c?
« Respuesta #1 en: 05 de Abril de 2005, 06:59:00 »
Nadie del foro ha usado nunca el bus I2C para comunicarse con perifericos??

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: Conexion y Seleccion de perifericos con bus I2c?
« Respuesta #2 en: 05 de Abril de 2005, 13:30:00 »
Los tendrás que conectar a través de los integrados I2C que seguramente existiran dentro de la placa.

Si no estan los tendras que unir con el PIC a través del SCL y SDA y las 2 resistencias PULL-UP.

Para seleccionar un determinado dispositivo I2C lo tienes que direccionar desde el PIC. Te pongo un ejemplo:

Para un PCF8574P ( puerto de E/S de 8 bits ) sería:

i2c_write(0x40);

La asignación de bits para este dispositivo es:

b7=0
b6=1
b5=0
b4=0
b3=A2
b2=A1
b1=A0
b0=R/W

Un saludo


Desconectado damago

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 320
RE: Conexion y Seleccion de perifericos con bus I2c?
« Respuesta #3 en: 05 de Abril de 2005, 14:11:00 »
Hi, como comenta pocher, si miras el datasheet de tus componentes con i2c veras que   en la trama que envias, un byte es para direccionar el dispositivo.
Veras que de los 8 bits, el de menor peso es para decir si es una escritura o lectura. El resto de bits para la direccion. Dependiendo del dispositivo en cuestion, veras que unos bits tienen un valor fijo y otros (como A0,A1 Y A2 en este caso) tienen el valor que haya en el pin asociado del dispositivo . Asi que llevando esos pines a 0 o 1 tendras diferentes direcciones para los distintos dispositivos.

En cuanto a como conectarlos: si, hay que conectar todos los dispositivos a la misma linea SDA y SCL.

Si tienes una señal analogica, en efecto tienes que usar el a/d de tu micro o un a/d externo ya sea i2c o no.

Un saludo.

Desconectado tornar

  • PIC18
  • ****
  • Mensajes: 342
RE: Conexion y Seleccion de perifericos con bus I2c?
« Respuesta #4 en: 06 de Abril de 2005, 03:56:00 »
Gracias por las respuestas, ya me ha kedado claro estas dudillas que tenia sobre el bus I2c.

Solo tengo una ultima duda sobre este bus I2C, cual es el numero maximo de perifericos que puedo conectar a 2 mismas patitas preparadas en una placa SCL y SDA de un mismo PIC? He oido desde 16 a 256......

Y si kiero conectar por ejemplo 30 dispositivos a las mismas patitas, supongo que todos los cables en las mismas patitas kedara algo mal, como lo haceis vosotros para realizar estas conexiones, yo es q en la placa que tengo, me vienen 2 pines donde poner los cables para estas lineas SDA y SCL....

Desconectado tornar

  • PIC18
  • ****
  • Mensajes: 342
RE: Conexion y Seleccion de perifericos con bus I2c?
« Respuesta #5 en: 06 de Abril de 2005, 03:59:00 »
Otra cosa, respecto a esto..

Codigo:
como comenta pocher, si miras el datasheet de tus componentes con i2c veras que en la trama que envias, un byte es para direccionar el dispositivo.


Entonces puede ocurrir que 2 dispositivos por I2c tengan el mismo byte para direccionarlo y entonces podriamos tener problemas no?? Y cuando te dicen que puedes conectar 16 dispositivos del mismo tipo, si son iguales, tendran la misma direccion, y por tanto cuando kieras comunicarte con uno, lo estaras haciendo con todos, no es asi??

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: Conexion y Seleccion de perifericos con bus I2c?
« Respuesta #6 en: 06 de Abril de 2005, 10:56:00 »
Nunca he llegado a conectar tantos I2C juntos, solo será cuestión de mirar la información sobre I2C para saber el máximo que se puede conectar al bus.

Dos integrados I2C no pueden tener el mismo byte de dirección ya que si no no los podría distinguir el PIC a la hora de direccionarlos.

Por seguir el ejemplo del integrado que te he puesto arriba, el PCF8574P:

Supón que quieres conectar al bus 8 de estos, pues solo tienes que diferenciarlos con A2A1A0 (desde 000 a 111). Con 8 conseguirías 64 E/S.

Un saludo


 

anything