Pages: [1]   Go Down
Author Topic: Direccionamiento I2C  (Read 408 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 25
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


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
Logged

Mirabel
Offline Offline
Newbie
*
Karma: 0
Posts: 27
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 25
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 25
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
« Last Edit: February 16, 2008, 07:59:36 am by alonsoBrain » Logged

Pages: [1]   Go Up
Jump to: