最近看到 MPU-9250 有在賣,有人有 datasheet 嗎?
最近看到 MPU-9250 有在賣,但官網目前沒有提供下載,請問有人有 MPU9250 的 datasheet 嗎?可以上傳一下論壇,飛控板打算使用這顆。 现在invensense官网英文网页上已经有MPU9250了,http://www.invensense.com/cn/mems/gyro/mpu9250.html这个是MPU9250的网页 额……现在还没有MPU9250的datasheet……楼主要不先参考下MPU6000的datasheet 363546178 发表于 2014-1-14 22:04
现在invensense官网英文网页上已经有MPU9250了,http://www.invensense.com/cn/mems/gyro/mpu9250.html这个 ...
我知道官網有介紹但沒有 datasheet 所以才來問的,
目前主要是需要 layout,但沒有接角定義沒法做,
接腳部分也無法完全參考 MPU6000 或 MPU6500。
不知道在販賣的模塊是如何 layout 的?
9250与6050有何区别啊? leexy 发表于 2014-1-14 22:35
9250与6050有何区别啊?
MPU-6050 是六軸的(加速度計+陀螺儀),I2C
MPU-9250 是九軸的(加速度計+陀螺儀+電子羅盤),SPI / I2C
参数上有没有质的飞跃啊? g527727372 发表于 2014-1-14 22:59
参数上有没有质的飞跃啊?
似乎比 MPU-9150 抗干擾來的好,可以使用 SPI 讀取,
體積縮小 4*4mm→3*3mm,磁力計量程增大,
差別大概就這些吧。 官網的 MPU-9250 改成 Q1 2014 了,
看來等到官方丟出 datasheet 要一段時間了 ... zeroXone 发表于 2014-1-15 23:06
http://www.geek-workshop.com/thread-4750-1-1.html
这里 9150的
MPU9150 與 MPU9250 相容?
應該不相容吧? 再加个气压就较完美了. sibtck 发表于 2014-1-15 23:34
再加个气压就较完美了.
會加 MS5611 氣壓計的,
目前打算設計兩種 PCB,
一種是 MPU9250 + MS5611,
另一種是 STM32F103T8 + MPU9250 + MS5611,
主要是飛控要用的
{:sweat:} 好小 科技日新月异 qwe2231695 发表于 2014-1-16 01:24
好小 科技日新月异
這是要自己焊的,想說挑戰下,
不過也得要 layout 的出來。 john800422 发表于 2014-1-16 01:45
這是要自己焊的,想說挑戰下,
不過也得要 layout 的出來。
焊倒是简单啊,我都用烙铁焊了不下20片mpu6050了。 好烙铁加BGA焊油,10秒搞定。 本帖最后由 john800422 于 2014-1-16 02:15 编辑
qwe2231695 发表于 2014-1-16 01:47
焊倒是简单啊,我都用烙铁焊了不下20片mpu6050了。 好烙铁加BGA焊油,10秒搞定。 ...
MPU6050 和 MPU9150 都試過,沒有甚麼問題,
只是不知道更小封裝的 MPU9250 和 STM32F103T 在一起會不會更難焊。 MPU9150要100多一片吧?9250是不是会更贵? 这个飞控是做4轴的吗? overheat 发表于 2014-1-16 07:30
MPU9150要100多一片吧?9250是不是会更贵?
MPU9150 一片約 50~60
MPU9250 一片約 90~100 本帖最后由 john800422 于 2014-1-16 12:01 编辑
overheat 发表于 2014-1-16 07:38
这个飞控是做4轴的吗?
是的,用在四軸上面
以下是自己設計的飛控連結
http://www.amobbs.com/thread-5554466-1-1.html john800422 发表于 2014-1-16 11:57
是的,用在四軸上面
以下是自己設計的飛控連結
http://www.amobbs.com/thread-5554466-1-1.html ...
问个题外话的问题,9150和9250都挺贵的,为什么不选用分开的传感器呢?好像成本上很大优势啊! overheat 发表于 2014-1-16 15:20
问个题外话的问题,9150和9250都挺贵的,为什么不选用分开的传感器呢?好像成本上很大优势啊! ...
目前是個人研究學習用的,沒有要量產販賣,所以並不特別考慮成本,
分開雖然成本低,但是占用面積也會變更大,誤差也會變更多。 本帖最后由 overheat 于 2014-1-16 17:19 编辑
誤差也會變更多?
不知道有没有人具体对比过MPU9150和分离的加速度,陀螺仪和磁力计的参数没?哪个指标更好一些? overheat 发表于 2014-1-16 16:54
誤差也會變更多?
不知道有没有人具体对比过MPU9150和分离的加速度,陀螺仪和磁力计的参数没?哪个指标更 ...
參考點的問題,
最理想的狀態是在同一點觀察測量運動、資訊,
不同點的觀測必然會有不同的結果,
只是誤差大小、可不可以忽略的問題。
MPU9150 沒有做的這麼深入,目前都以較為理想的狀況下去使用。 john800422 发表于 2014-1-16 18:26
參考點的問題,
最理想的狀態是在同一點觀察測量運動、資訊,
不同點的觀測必然會有不同的結果,
你的意思是说9150是一个芯片,类似于从一个点观察物体运动。
而分离的传感器,有点像从三个点观察运动,是吗?
overheat 发表于 2014-1-16 20:31
你的意思是说9150是一个芯片,类似于从一个点观察物体运动。
而分离的传感器,有点像从三个点观察运动, ...
是的,至少我認為是有這個影響因素。
spi爽啊,用iic的都知道蛋疼的速度了 雨雪随行 发表于 2014-1-16 21:33
spi爽啊,用iic的都知道蛋疼的速度了
iic不是最高有400K/s吗?还不够? 本帖最后由 john800422 于 2014-1-21 03:47 编辑
官方已經上傳 datasheet 了,以下為官方提供的 datasheet
MPU6500 和 AK8963 的 datasheet
john800422 发表于 2014-1-21 03:39
官方已經上傳 datasheet 了,以下為官方提供的 datasheet
非常好的项目,楼主进展如何了? 本帖最后由 john800422 于 2014-1-30 12:21 编辑
overheat 发表于 2014-1-29 19:53
非常好的项目,楼主进展如何了?
目前在布局,等過完年會買些元件做測試
詳細可以以參考
GitHub https://github.com/Hom-Wang/SmartIMU
HackPad https://hom.hackpad.com/SmartIMU-E9zzbSI7QyK 最好不要在传感器下面布线。 705060359 发表于 2014-3-19 15:07
最好不要在传感器下面布线。
為了達到面積盡量小,
目前只有想到下面布線的方法,
若是能做到下面不佈線當然是最好。
john800422 发表于 2014-3-19 15:30
為了達到面積盡量小,
目前只有想到下面布線的方法,
若是能做到下面不佈線當然是最好。
嗯嗯,我看MS5611的文档发现里面有说。 705060359 发表于 2014-3-19 16:27
嗯嗯,我看MS5611的文档发现里面有说。
這裡把他貼出來,或需會有人想知道。
在上一片Ublox 4Hz AMY receiver{:tongue:} 在用STM32通过SPI访问MPU9250,发现读出来的数值都是0,还在调试中。。。{:dizzy:} dawanpi 发表于 2014-4-17 21:41
在用STM32通过SPI访问MPU9250,发现读出来的数值都是0,还在调试中。。。 ...
MPU9250 驅動,之前寫的,使用 STM32F407 的 SPI,可以參考看看,已經測試過,沒有問題
https://github.com/QCopter/QCopterRemoteControl/tree/master/Software/TEST_QCopterRC_FFCSPI-MPU9250 john800422 发表于 2014-4-17 22:07
MPU9250 驅動,之前寫的,使用 STM32F407 的 SPI,可以參考看看,已經測試過,沒有問題
https://github.c ...
非常感谢,已经可以读出加速的和陀螺数据了,正在对比看我的代码有什么问题。 john800422 发表于 2014-4-17 22:07
MPU9250 驅動,之前寫的,使用 STM32F407 的 SPI,可以參考看看,已經測試過,沒有問題
https://github.c ...
帅哥你好,你给的这个没有读取罗盘,是不是MPU9250的SPI不能读取罗盘而只能用IIC读取? SMC 发表于 2014-4-29 16:41
帅哥你好,你给的这个没有读取罗盘,是不是MPU9250的SPI不能读取罗盘而只能用IIC读取? ...
目前電子羅盤部分尚未研究,
MPU9250 可以透過 Master Mode 自動讀取電子羅盤資料,詳細 datasheet john800422 发表于 2014-4-29 16:52
目前電子羅盤部分尚未研究,
MPU9250 可以透過 Master Mode 自動讀取電子羅盤資料,詳細 datasheet ...
我看了datasheet,稀里糊涂的,大致感觉是芯片内部通过IIC读取罗盘数据放到特定的寄存器里面,是这样吗?
那怎么初始化罗盘呢,罗盘是IIC总线的,我是SPI总线操作芯片的,头疼啊,有的英语句子真是堪比文言文~我琢磨好久不知道啥意思...
你对这颗芯片比较熟悉,要不你用SPI方式把罗盘部分也处理了吧,算是造福坛友~~
SMC 发表于 2014-5-1 04:26
我看了datasheet,稀里糊涂的,大致感觉是芯片内部通过IIC读取罗盘数据放到特定的寄存器里面,是这样吗? ...
初始化與讀資料一樣,都可以使用 Master Mode 達成,
目前沒有時間寫,若想使用的話,還是靜下心讀 datasheet 吧,
之後若有測試完成會再上傳。 本帖最后由 SMC 于 2014-5-5 11:58 编辑
john800422 发表于 2014-5-1 22:31
初始化與讀資料一樣,都可以使用 Master Mode 達成,
目前沒有時間寫,若想使用的話,還是靜下心讀 datas ...
这几天我没弄9250了,去弄SPI读取MS5611,已经弄好了。主要参考你IIC写的那个,移植过程中发现一些小问题
一个是计算温度时的C要换成C,还有一些数据的类型定义的问题,以及calculate中的计算必须强制将变量范围变大,不然计算溢出,这样会出错的。
这是我修改好的
static void MS5611_Calculate( MS5611_ST* COEFF )
{
float tem;
int64_t T2=0,OFF2,SENS2;
COEFF->dT = (COEFF->D - (COEFF->C*POW_2_8)); // dT = D2 - C5*2^8
COEFF->rTemp = (2000.f + ((int64_t)(COEFF->dT)*(COEFF->C))/POW_2_23); // Temp = 2000 + dT*C6/2^23
COEFF->OFF = ((int64_t)COEFF->C*POW_2_16 + ((int64_t)COEFF->C*COEFF->dT)/POW_2_7); // OFF = C2*2^16 + (C4*dT)/2^7
COEFF->SENS = ((int64_t)COEFF->C*POW_2_15 + ((int64_t)COEFF->C*COEFF->dT)/POW_2_8);// SENS = C1*2^15 + (C3*dT)/2^8
COEFF->rPress = (((int64_t)COEFF->D*COEFF->SENS)/POW_2_21 - (int64_t)COEFF->OFF)/POW_2_15;// Press = (D1*SENS/2^21 - OFF)/2^15
if(COEFF->rTemp<2000)
{
T2=(COEFF->dT)*(COEFF->dT)/POW_2_31;
OFF2=5.f*((float)COEFF->rTemp-2000)*((float)COEFF->rTemp-2000)/2;
SENS2=5.f*((float)COEFF->rTemp-2000)*((float)COEFF->rTemp-2000)/4;
if(COEFF->rTemp<-1500)
{
OFF2=OFF2+7.f*(COEFF->rTemp+1500)*(COEFF->rTemp+1500);
SENS2=SENS2+11.f*(COEFF->rTemp+1500)*(COEFF->rTemp+1500)/2;
}
COEFF->rTemp=COEFF->rTemp-T2;
COEFF->OFF=COEFF->OFF-OFF2;
COEFF->SENS=COEFF->SENS-SENS2;
}
COEFF->Temp= (float)(COEFF->rTemp-800.f)/100.f; //-800是为了修正结果
COEFF->Press = (float)(COEFF->rPress/100.0f);
tem=COEFF->rPress/101333.f;
tem=pow(tem,0.190295f);
COEFF->High=44330.f*(1-tem);
}
弄完这个之后,我就去弄9250了,接着移植你的代码,顺利的读出了加计,陀螺和温度计。
然后我又去弄Master Mode操作AK8963,我还没写读取测量数据的程序,只测了读取WHO AM I,但是一直有问题,不知为何,下面的配置仅仅是为了读取罗盘的ID。
大概思路是:将AK8963的IIC地址写到MPU6500_I2C_SLV0_ADDR中并且是读取模式,将AK8963_WIA写到MPU6500_I2C_SLV0_REG中,只读取一个byte,我去读取EXT_SENS_DATA_00中的数据,一直是0.
{0xCD, MPU6500_I2C_MST_CTRL}, //Enables multi-masterIIC 400KHz
{0x30, MPU6500_USER_CTRL},
{AK8963_I2C_ADDR|0x80, MPU6500_I2C_SLV0_ADDR},
{AK8963_WIA, MPU6500_I2C_SLV0_REG},
{0x81, MPU6500_I2C_SLV0_CTRL},
{0x09, MPU6500_I2C_SLV4_CTRL},
{0x81, MPU6500_I2C_MST_DELAY_CTRL}, SMC 发表于 2014-5-5 11:28
这几天我没弄9250了,去弄SPI读取MS5611,已经弄好了。主要参考你IIC写的那个,移植过程中发现一些小问题 ...
感謝提出 MS5611 的問題,有空會在測試看看:)
另外,下面是之前寫的,讀取 AK8963 DeviceID 的程式,可以參考,使用 SLV0。
本帖最后由 SMC 于 2014-5-5 23:32 编辑
john800422 发表于 2014-5-5 23:15
感謝提出 MS5611 的問題,有空會在測試看看:)
另外,下面是之前寫的,讀取 AK8963 DeviceID 的程式,可 ...
不用感谢啊,你已经给大家分享了好多呢,我这点不算什么。
对了,你的小四轴PCB四个悬臂和主体连接部分需要倒圆角的,不然炸机的时候连接处容易断。
悬臂材料从电机到主体的分布应该是逐渐增大的,具体设计的话要根据实际来设计。
本帖最后由 SMC 于 2014-5-5 23:40 编辑
给你画了一个大概的图
我是机电系的,结构方面还可以,以后这方面的问题我可以免费提供咨询... SMC 发表于 2014-5-5 23:29
不用感谢啊,你已经给大家分享了好多呢,我这点不算什么。
对了,你的小四轴PCB四个悬臂和主体连接部分需 ...
設計小四軸的時候沒有特別思考,主要就是實現功能和盡量小而已,
若有第二版本會參考你的建議:)
john800422 发表于 2014-1-16 02:14
MPU6050 和 MPU9150 都試過,沒有甚麼問題,
只是不知道更小封裝的 MPU9250 和 STM32F103T 在一起會不會 ...
像MPU6050这样的封装,具体要怎样用烙铁焊?芯片太贵,不敢乱焊 本帖最后由 john800422 于 2014-5-6 08:16 编辑
ghostxdy 发表于 2014-5-6 07:10
像MPU6050这样的封装,具体要怎样用烙铁焊?芯片太贵,不敢乱焊
不是很建議用焊槍焊,因為需要對準,對準就沒問題,對不準就失敗了,
用熱風槍就很方便,PCB&IC 焊盤上錫、上助焊,熱風槍吹一吹就好了,會自動對準焊盤。
john800422 发表于 2014-5-6 08:15
不是很建議用焊槍焊,因為需要對準,對準就沒問題,對不準就失敗了,
用熱風槍就很方便,PCB&IC 焊盤上錫 ...
谢谢指导.下次要焊的时候试试 本帖最后由 SMC 于 2014-5-6 14:24 编辑
看了你的代码后,我发现我之前把AK8963_I2C_ADD=0X18当做它的IIC地址了
我把这个地址改过来,还是读不出AK8963 ID,全部换成你的代码,check函数还是返回0.
难道是器件被我焊坏了?你的能返回1吗?
我仅仅check MPU6500时,就返回1,加上AK8963就返回0了,这下麻烦了... SMC 发表于 2014-5-6 14:16
看了你的代码后,我发现我之前把AK8963_I2C_ADD=0X18当做它的IIC地址了
我把这个地址改过来,还是读不出AK8 ...
程式測試過了,可以讀出 ID ,
有修改成正確的 SPI 腳位?
john800422 发表于 2014-5-6 20:42
程式測試過了,可以讀出 ID ,
有修改成正確的 SPI 腳位?
引脚一样的,MPU9250初始化以及函数都是你的代码,可以读出MPU6500的ID,就是读不出AK8963的,我正在焊接另一块板子,确定下是不是把罗盘烫坏了。 本帖最后由 SMC 于 2014-5-7 04:12 编辑
john800422 发表于 2014-5-6 20:42
程式測試過了,可以讀出 ID ,
有修改成正確的 SPI 腳位?
折腾到现在重新焊接了一个板子,还是一样的问题,读不出AK8963的ID,check返回0,但是能正确读取MPU6500,这次我焊接很小心,温度不高的,采用拖焊。
焊接还遇到一点波折,给F4的VDDA滤波的电感虚焊了,花了好久才找到问题,把我累坏了...
既然能读出MPU6500的数据,说明SPI配置没有问题,我感觉还是AK8963的初始化,但它的手册我都看了好多遍了,感觉我该配置的都已经弄了,实在想不出问题在哪儿了,我要睡了,明再搞。
难道是老天被我感动了,莫名其妙的返回1了!两个板子都返回1了! SMC 发表于 2014-5-7 03:56
折腾到现在重新焊接了一个板子,还是一样的问题,读不出AK8963的ID,check返回0,但是能正确读取MPU6500 ...
設定開始讀取後,9250 需要一些時間等待讀取完畢,若太快讀取結果會出問題。 高大上啊,都MPU9250LE 本帖最后由 SMC 于 2014-5-10 02:31 编辑
john800422 发表于 2014-5-7 13:28
設定開始讀取後,9250 需要一些時間等待讀取完畢,若太快讀取結果會出問題。 ...
我发现问题了,程序下载进去之后很少能直接运行,必须断电再上电才行,不知道为什么;还有按键复位MCU有很大的可能性出现不能读取AK8963,解决方法一样时断电重启,也不知道为啥,但是只要运行正常就不会出问题。
程序之间的延迟都是10ms,我感觉已经够长了。我感觉上面的问题有可能是MPU9250内部Slave的IIC线锁死导致。 看到你https://hom.hackpad.com/里面说读取MPU6500 ID不顺利,我跟你的原理图有一点差别,我这里1引脚悬空,可以顺利读出。下面是我的电路图
SMC 发表于 2014-5-10 23:20
看到你https://hom.hackpad.com/里面说读取MPU6500 ID不顺利,我跟你的原理图有一点差别,我这里1引脚悬空 ...
主要是因為我把 9250 的 NC 腳都接地了,
但 MPU6500 的 NC 腳應該要浮接。
另外,MPU9250 第 1 腳應該接至 VDDIO 才對
SMC 发表于 2014-5-10 23:20
看到你https://hom.hackpad.com/里面说读取MPU6500 ID不顺利,我跟你的原理图有一点差别,我这里1引脚悬空 ...
主要是因為我把 9250 的 NC 腳都接地了,
但 MPU6500 的 NC 腳應該要浮接。
另外,MPU9250 第 1 腳應該接至 VDDIO 才對
本帖最后由 SMC 于 2014-5-11 07:32 编辑
john800422 发表于 2014-5-11 00:16
主要是因為我把 9250 的 NC 腳都接地了,
但 MPU6500 的 NC 腳應該要浮接。
MPU6500的ID是0x71不是0x70哦
1引脚我是参考手册里面的这个图
你可以把pdf文档背景调成绿色的这样长时间看不会太刺眼。
你做这些是自己出钱呢还是学校给报销呢? 本帖最后由 john800422 于 2014-5-11 12:36 编辑
SMC 发表于 2014-5-11 04:04
MPU6500的ID是0x71不是0x70哦
1引脚我是参考手册里面的这个图
你可以把pdf文档背景调成绿色的这样长时间看 ...
MPU9250 ID 是 0x71 沒有問題,測試過,但 MPU6500 ID 不是 0x70 嗎?
MPU6500 的 Register Map 上是寫 0x70,你讀出來是 0x71?
PDF背景都習慣了,
都是自己出的。 john800422 发表于 2014-5-11 12:34
MPU9250 ID 是 0x71 沒有問題,測試過,但 MPU6500 ID 不是 0x70 嗎?
MPU6500 的 Register Map 上是寫 0 ...
看来是我弄错了,我只下载了MPU9250的手册,没注意到9250的ID和6500的不一样。
今天我这里网速好差,下了好久的6500的手册都没下下来,所以还没看6500的手册。
我在怀疑每次程序下载进去之后必须断电重启才能读取磁场的数据和我引脚1没有接VDDIO有关,你那里每次把程序下载进去后直接能读取磁场的数据吗? SMC 发表于 2014-5-11 23:24
看来是我弄错了,我只下载了MPU9250的手册,没注意到9250的ID和6500的不一样。
今天我这里网速好差,下了 ...
目前沒有再弄讀磁場數據,讀到 AK8963 ID 就先測其他東西了,暫時用不到磁力計,
另外磁力計數據需要轉換時間,詳細參考 AK8963 datasheet,可以透過狀態暫存器檢查 john800422 发表于 2014-5-12 00:19
目前沒有再弄讀磁場數據,讀到 AK8963 ID 就先測其他東西了,暫時用不到磁力計,
另外磁力計數據需要轉換 ...
嗯,小四轴不用磁力计无法锁住航向的。
转换时间造成的延迟我都考虑了,无法解决,我打算下一次制版的时候用一个IO给模块供电,这样我可以程序控制断电。
john800422 发表于 2014-5-12 00:19
目前沒有再弄讀磁場數據,讀到 AK8963 ID 就先測其他東西了,暫時用不到磁力計,
另外磁力計數據需要轉換 ...
我在弄SPI读取GPS NEO-7M,但是遇到了奇怪的问题,你可以帮我看下吗,谢了
http://www.amobbs.com/thread-5580679-1-1.html 关注9250,
6050,9150,9250,该怎么选择好呢? john800422 发表于 2014-5-11 00:16
主要是因為我把 9250 的 NC 腳都接地了,
但 MPU6500 的 NC 腳應該要浮接。
MPU6500的NC脚如果接线了,因为我看到9250的datasheet是提到可以用NC脚来走线的,那么会不会影响使用的时候的效果呢? danju 发表于 2014-5-14 13:11
关注9250,
6050,9150,9250,该怎么选择好呢?
依你的需求選擇 overheat 发表于 2014-5-14 13:18
MPU6500的NC脚如果接线了,因为我看到9250的datasheet是提到可以用NC脚来走线的,那么会不会影响使用的时 ...
目前焊了兩片 NC 接地的 MPU6500,無法正常工作,連 Device ID 都無法讀取,
解焊換上 9250 就正常了,可能是焊接問題,但我認為更大的可能是 NC 接腳。 john800422 发表于 2014-5-14 19:02
目前焊了兩片 NC 接地的 MPU6500,無法正常工作,連 Device ID 都無法讀取,
解焊換上 9250 就正常了,可 ...
哦?我把6500的15-17的NC脚用作走线了,其他NC都没接地,不知道这样行不行。。。。 overheat 发表于 2014-5-15 06:44
哦?我把6500的15-17的NC脚用作走线了,其他NC都没接地,不知道这样行不行。。。。 ...
目前就只有測試過NC都接地會出問題,沒試過其他的,所以不清楚你說的行不行。 john800422 发表于 2014-5-14 19:02
目前焊了兩片 NC 接地的 MPU6500,無法正常工作,連 Device ID 都無法讀取,
解焊換上 9250 就正常了,可 ...
LZ,看到的你PCB很小,但我在想,STM32不用接各种电容吗? ghostxdy 发表于 2014-7-18 11:08
LZ,看到的你PCB很小,但我在想,STM32不用接各种电容吗?
除了 VDDA 沒有特別處理外,其他都接了,
自行看電路圖 https://github.com/Hom-Wang/SmartIMU 标记一下。 官网大把!! 顶楼主,希望楼主给更多的惊喜啊!!!!!
菜鸟飘过啊!!! markMPU-9250 john800422 发表于 2014-5-11 00:16
主要是因為我把 9250 的 NC 腳都接地了,
但 MPU6500 的 NC 腳應該要浮接。
幸运的看到了楼主关于1脚的提示,9250的手册做的真是。。电路图居然没接VDD
页:
[1]