TODOPIC
Otros Microcontroladores / Dispositivos programables => Arduino => Mensaje iniciado por: micro_pepe 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.
-
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.
-
Es cierto, dado que en I2C (http://es.wikipedia.org/wiki/I%C2%B2C) 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!
-
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.
-
Muchisimas gracias.
Me estaba volviendo loco y no sabia por que no comunicaba.
-
Muchisimas gracias.
Me estaba volviendo loco y no sabia por que no comunicaba.
que bueno que tambien hallas resuelto.
Saludos.