Pages: [1]   Go Down
Author Topic: do you know any IMU with spi interface ?  (Read 1297 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Edison Member
*
Karma: 11
Posts: 1489
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hi
on my MPU i have 4 SPI channels  but no i2c channel, i need to have gyro, accelerometer, magnetometer on three spi channels

have you seen such a IMU ?

usually IMUs are i2c bus, for example this IMU https://www.sparkfun.com/products/10724 is i2c
freeIMU is i2c, too

if spi-IMU are not existing, do you know any good way to translate i2c into spi ?

regards
Logged

Torino, Italy
Offline Offline
Sr. Member
****
Karma: 2
Posts: 312
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

No, I have not seen a pure SPI IMU yet. I actually never saw a recent magnetometer sensor using SPI.
Your best choice would be having an IMU with the MPU6000 connected to an I2C magnetometer via its AUX_I2C bus. This way the MPU6000 would handle the I2C communication with the magnetometer and you would only communicate to the MPU6000 via SPI. Unfortunately, I don't know of any IMU doing so. I do have some designs for something like that which I may share with you, contact me if interested.

Probably, your best bet for what it's available right now, is to just use an Arduino to read via I2C the IMU and read from the Arduino operating also as SPI slave.

Anyway, what kind of micro are you working with which doesn't have I2C but 4 SPI busses? Looks strange to me.
Logged

Offline Offline
Edison Member
*
Karma: 11
Posts: 1489
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

a lot of embedded MPUs and DSPs have no i2c bus, not so strange, ex 683xx has no i2c it has 4 or more spi
as proof of concept it seems i could also use a CPLD to adapt i2c to spi

Logged

Offline Offline
Edison Member
*
Karma: 11
Posts: 1489
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

p.s
you are the author of freeIMU, i have bought 2 of yours freeIMU v3.5 BMP.
Your IMU board comes with a MIC5203 voltage regulator and 2K2 pullups for the i2c bus, while my MPU has an other issues: it has no i2c and it is 5V, so probably i will use a 5V cpld, too.

Could you confirm your freeIMU could be directly interfaced to a 5V device ? Any tips about this ?

=)
Logged

Torino, Italy
Offline Offline
Sr. Member
****
Karma: 2
Posts: 312
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

I2C is open-drain meaning that devices will never drive the high but only low. This means that, if your I2C bus is pulled to 3.3V and your master only bring the I2C channels low and you don't have any internal pullups to 5V, you will be perfectly fine.

My FreeIMU v0.3.5_BMP has been cloned by China. If you didn't bought it from viacopter.eu or flyduino.net, then you have a cloned board and I can't assure the quality of that board nor that it will work as intended.
Logged

Offline Offline
Edison Member
*
Karma: 11
Posts: 1489
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

bought from you, as soon as it was available, i was in your pre-order list.
anyway thank you to have confirm i can simply plug in into 5V i2c bus.
Logged

Torino, Italy
Offline Offline
Sr. Member
****
Karma: 2
Posts: 312
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Awesome, thank you. Please post here in case of any help.
Logged

Offline Offline
Edison Member
*
Karma: 11
Posts: 1489
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

http://www.varesano.net/files/FreeIMU_v0.3.5_BMP_schematics.pdf

With an open-drain devices will never drive the high but only low, so there is no problem interfacing your freeIMU to a 5V i2c bus, but in case of 5V CPLD devices we have TTL I/O, that means the CPLD will drive high to 5V the SCL and SDA lines, and this is a problem for all the devices attached to the i2c 3.3V chain.

I could fix the jam putting a resistor in line, serially connected between the CPLD pin and the IMU's, but i think i'd better put a bidirectional level shifter 3.3V<->5V between 5V CPLD and the 3.3V IMU.

Right ?
Logged

Torino, Italy
Offline Offline
Sr. Member
****
Karma: 2
Posts: 312
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Yeah, I'd go with a level shifter.
Logged

Pages: [1]   Go Up
Jump to: