Autor Tema: Comunicación I2C con Arduino Duemilanove.  (Leído 5373 veces)

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

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3206
Comunicación I2C con Arduino Duemilanove.
« en: 14 de Noviembre de 2010, 10:23:21 »
Estoy tratando de usar el Arduino como maestro para mandar datos por I2C, le he dado mil vueltas, y no consigo que funcione. El codigo parece estar bién, por los ejemplos que he visto.

Le estoy conectando un Pic-Kit Serial Analizer, y no sale nada por el puerto. Con un programa equivalente en un PIC veo los datos correctamente, por lo que descarto el mal estado del Pic-Kit.

En la simulación en Proteus tampoco funciona, sin embargo otros programas si los puedo simular.

La cosa apunta a que el código fuente no es correcto, pero agradeceria que alguien simule el archivo que adjunto para descartarlo. El ejemplo que viene en el Arduino (master_writer) tampoco puedo simularlo, por lo que pienso que la versión que uso de Proteus no funcione bién con el I2C del Atmega328.

Espero respuesta.
« Última modificación: 14 de Noviembre de 2010, 10:26:02 por micro_pepe »
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3206
Re: Comunicación I2C con Arduino Duemilanove.
« Respuesta #1 en: 15 de Noviembre de 2010, 11:59:46 »
Bueno, el tema está solucionado, el problema era la dirección del dispositivo.

La dirección del dispositivo es 0xC2, (0b11000010) pero en el programa del Arduino se debe poner esa dirección rotada a la derecha un bit, osea 0x61 (0b01100001).

Eso es todo el problema, al parecer el compilador de CCS hace esa operación y se le pasa la dirección tal cual (0xC2).

Saludos.
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Comunicación I2C con Arduino Duemilanove.
« Respuesta #2 en: 15 de Noviembre de 2010, 12:46:42 »
Es cierto, dado que en I2C con dirección de 7-bits, se comunica la dirección en los bits más significativos y el bit 0 para indicar si es una operación de lectura o escritura.

Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado ASTROCAR

  • PIC24F
  • *****
  • Mensajes: 664
Re: Comunicación I2C con Arduino Duemilanove.
« Respuesta #3 en: 16 de Noviembre de 2010, 06:30:16 »
hasta este post entendi porque en las eeprom i2c con arduino tomaban el control que yo siempre lo he usados asi 0b1010000x donde la x es el bit que indica si es lectura o escritura y en arduino siempre veo en los codigos de eeprom i2c 0x50 en decimal ya tengo la explicacion gracias a ustedes 0b1010000x corrido a la derecha un bit seria 0bx1010000 y como x es cero en este caso entonce por eso ya queda explicado que el control en las eeprom i2c en arduino es 0x50 pero por mas que lei y pregunte nadie me lo supo explicar jajaja que bueno son los foros.

SALUDOS Y MUY AGRADECIDO.
Atten.
Alexander Santana.
Venezuela-Barcelona.
EL APRENDER ES NADA; MEJOR ES COMPARTIR EL APRENDIZAJE

Desconectado kanedin

  • PIC10
  • *
  • Mensajes: 1
Re: Comunicación I2C con Arduino Duemilanove.
« Respuesta #4 en: 01 de Junio de 2011, 15:09:39 »
Muchisimas gracias.

Me estaba volviendo loco y no sabia por que no comunicaba.

Desconectado ASTROCAR

  • PIC24F
  • *****
  • Mensajes: 664
Re: Comunicación I2C con Arduino Duemilanove.
« Respuesta #5 en: 11 de Agosto de 2011, 04:32:32 »
Muchisimas gracias.

Me estaba volviendo loco y no sabia por que no comunicaba.
que bueno que tambien hallas resuelto.

Saludos.
EL APRENDER ES NADA; MEJOR ES COMPARTIR EL APRENDIZAJE