Adafruit 10-DOF IMU Breakout tri-sensor device

General project help for Adafruit customers

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
tcbetka
 
Posts: 13
Joined: Mon Aug 27, 2012 9:41 am

Adafruit 10-DOF IMU Breakout tri-sensor device

Post by tcbetka »

Hello,

I just purchased the 10-DoF IMU board to use in an RPi2 project I am working on. It's this one: https://www.adafruit.com/products/1604

I started going through the data sheets today, and noted the address(es) given for the BMP180. In section 5.2 (p 20) of the data sheet, it says this:

"The BMP180 module address is shown below. The LSB of the device address distinguishes between read (1) and write (0) operation, corresponding to address 0xEF (read) and 0xEE (write)."

However on your project page, it says this: "This board/chip uses I2C 7-bit addresses 0x19 & 0x1E & 0x6B & 0x77".


So I presume that your board layout for the tri-sensor device somehow alters the i2c addressing--but the thing is that I cannot seem to find documentation for this. Unless I simply missed it, your tutorial doesn't describe addressing, and doesn't seem to say anything about those 4 addresses mentioned on the product info page I linked to above. In fact, I cannot find any information about the value of any i2c pull-up resistors required, either. Your tutorial shows an Arduino Uno being used with the device, but to my knowledge the Uno has built-in 4.7k resistors on the i2c bus. So does that imply that 4.7k pull-up resistors are the recommended value for this IMU? The RPi2 has 1.8k pull-ups on the i2c-1 bus lines, so this would then be a problem. The i2c-0 bus doesn't seem to have any pull-up resistors attached, so I could certainly add some externally. I have managed to get that bus working--but I would still need to know the optimal value for said resistors.

Anyway, I would be most grateful if you would clarify these two issues for me?

1) Where can I find documentation for the i2c addressing for each component of the tri-sensor board? If the Adafruit board addressing differs from that in the data sheet for each component, then please point me to the documentation...because I simply cannot find it. I apologize if I've simply missed it.

2) What value of pull-up is required/recommended?

If I knew it was safe, I would simply put the thing on an RPi2's i2c bus and probe it with i2ctools. However while that might well help determine which addresses show on the bus, it wouldn't necessarily make it easy to determine which of the four addresses (mentioned above) corresponds to each sensor. I will do this with a logic analyzer if need be, but I was hoping to get a little bit of a vector here first...

So any guidance you could give would be most appreciated.

Thank you in advance!

TB

User avatar
adafruit_support_mike
 
Posts: 67446
Joined: Thu Feb 11, 2010 2:51 pm

Re: Adafruit 10-DOF IMU Breakout tri-sensor device

Post by adafruit_support_mike »

tcbetka wrote:However on your project page, it says this: "This board/chip uses I2C 7-bit addresses 0x19 & 0x1E & 0x6B & 0x77".
What you're seeing is the difference between an I2C address and a control byte containing that same address.

All I2C addresses are 7-bit integers. Those addresses are shifted one bit left and the R/W bit is added to make a control byte.

The BMP180's address is 0x77 (111 0111) If you shift that left one bit you get 0xEE (1110 1110). Adding a R/W bit gives you possible control byte values of 0xEE and 0xEF.

The LSM303 accelerometer's address is 0x19 (control bytes 0x32 & 0x33), and its magnetometer's address is 0x1E (control bytes 0x3C & 0x3D). The L3GD20's address is 0x6B (control bytes 0xD6 & 0xD7).
tcbetka wrote:In fact, I cannot find any information about the value of any i2c pull-up resistors required, either.
The breakout has built-in resistors. In fact, it has an on-board level shifter that converts 0v-5v logic inputs to the 0v-3.3v level the chips want, and vice versa. The circuit is in the lower-right corner of the schematic shown in the tutorial:

https://learn.adafruit.com/system/asset ... 1385649061

User avatar
tcbetka
 
Posts: 13
Joined: Mon Aug 27, 2012 9:41 am

Re: Adafruit 10-DOF IMU Breakout tri-sensor device

Post by tcbetka »

Well, i2c addresses can also be 10-bit values as well, but that doesn't seem to be as common...

Thank you very much for the clarification. The information is most helpful. I looked at the schematic, but simply didn't see the two 10k pull-up resistors there in the lower right corner of the drawing. My fault there.

I'll have to go through the BMP180 data sheet again today, because I didn't see a reference to the 0x77 address you mentioned. I'm sure I probably just missed it though, with so much new information to digest.

Again, thank you very much for the prompt reply.

TB

User avatar
tcbetka
 
Posts: 13
Joined: Mon Aug 27, 2012 9:41 am

Re: Adafruit 10-DOF IMU Breakout tri-sensor device

Post by tcbetka »

By the way, the link to the i2c specification information on the NXP website has apparently changed from that listed in the BMP180 data sheet. The new link is:

http://www.nxp.com/documents/applicatio ... N10216.pdf

Hopefully this will help someone else.

TB

Locked
Please be positive and constructive with your questions and comments.

Return to “General Project help”