Go Down

Topic: Direccionamiento I2C (Read 418 times) previous topic - next topic

alonsoBrain


Hola
Queria utilizar el bus I2C para controlar esta placa
http://www.superrobotica.com/S310180.htm
controladora de servos

Por defecto tiene la direccion 0xC2, pero las librarias wire dicen que solo pueden direccionar hasta 127...

No puedo usar arduino para esto???

saludos

raymirabel_amena

Si que puedes. Es cierto que el I2C sólo puede direccionar 127 dispositivos pero teniendo en cuenta que los 7 bits más altos es la dirección del dispositivo y el bit menos significativo es el que indica si es una escritura o lectura en el dispositivo. Con todo esto la dirección 0xC2 es en binario: 11000010. Como el bit menos significativo es un cero quiere decir que vas a escribir en el dispositivo. Si en vez de poner 0xC2 pones 0xC3, estarás leyendo del dispositivo.
Espero que te sirva de ayuda. Más información en:

http://es.wikipedia.org/wiki/I%C2%B2C

Un saludo. Ray.

alonsoBrain

Humm... Entonces el error que tengo es otro...

Sabes si he de modificar twi.h o wire.h ???
Estoy con el decimilia....
----------

 #define ATMEGA8

 #ifndef CPU_FREQ
 #define CPU_FREQ 16000000L
 #endif

 #ifndef TWI_FREQ
 #define TWI_FREQ 100000L
 #endif
----------------------------------------

un saludo y gracias por tu respuesta y valiosa informacion


alonsoBrain

#3
Feb 16, 2008, 01:02 pm Last Edit: Feb 16, 2008, 01:59 pm by alonsoBrain Reason: 1
Ya esta!

No tengo que usar el 0xC2 sino el (0xC2 >> 1) desplazado a la derecha un bit.
Es decir he de poner un 0x61.

El hecho de escribir o leer no se controla a nivel de bit, sino a nivel de comando
basta con Wire.requestFrom, para leer
y
Wire.beginTransmission  para escribir


uf! que descanso...

un saludo

Go Up