你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

LSM330DLC陀螺仪的I2C通信问题

[复制链接]
July 提问时间:2014-4-8 15:27 /
最近弄了套STM32F103C8和LSM330DLC(6轴)的平台,要实现 两者间的I2C通信,调试过程中发现个矛盾:
MCU读取WHO_AM_I_G寄存器,返回的值是0x33,而datasheet中预设的值是0xd4,于是尝试了下写入其他值(不确定这个寄存器支不支持值写入改动),返回的仍然是0x33.
于是我怀疑I2C读出错,继续试验,往CTRL_REG1_A寄存器写入0x05的数据,然后接着读取此寄存器的数据,得到返回值0x05.在CTRL_REG2_A到CTRL_REG6_A的寄存器写入某些值,写入和读取返回的一致,I2C通信应该没问题。
回头继续读取WHO_AM_I_G寄存器,示波器抓取数据,软件获取到的0x33返回值和示波器抓取的数据一致,前面器件地址0x32和WHO_AM_I_G的地址0x0f波形也都正确,说明函数没问题。
为什么WHO_AM_I_G这个寄存器读取的值和datasheet的值不一致啊
收藏 评论9 发布时间:2014-4-8 15:27

举报

9个回答
模拟小悟空 回答时间:2014-4-8 18:36:34

RE:LSM330DLC陀螺仪的I2C通信

你可否确认一下操作的是Gyro的部分而非Acc的部分?
pythonworld 回答时间:2014-4-8 20:02:18

RE:LSM330DLC陀螺仪的I2C通信问题

新片子?是否被改写过?
wkuang 回答时间:2014-4-9 00:00:05

RE:LSM330DLC陀螺仪的I2C通信问题

可以仔细看看datasheet,可能和芯片批次或者芯片子型号有关。从你的描述,I2C读写应该没有问题。
dzc2001 回答时间:2014-4-9 11:02:12

回复:LSM330DLC陀螺仪的I2C通信问题

 你用逻辑分析仪抓一下,看看
那片清茶 回答时间:2014-4-9 11:48:18

RE:LSM330DLC陀螺仪的I2C通信问题

看一下IIC的波形对不对。。
dlyt03 回答时间:2014-4-10 20:57:26

RE:LSM330DLC陀螺仪的I2C通信问题

俺描述,通讯和函数都是正确的,是否是新片?如果是转手的,会不会是修改过的?
有缘于你 回答时间:2014-4-10 22:09:21

RE:LSM330DLC陀螺仪的I2C通信问题

这个寄存器应该是不能自己修改的, 应该是一个芯片的系列号之类的
fengye5340 回答时间:2014-4-20 10:27:22

回复:LSM330DLC陀螺仪的I2C通信问题

这个陀螺仪也支持SPI通信的,为了验证你的IIC通信是否正确,你可以改用SPI通信,再去读哪个WHO_AM_I_G寄存器,看看是否读出来的是0x33或者是DATASHEET的默认值0xD4.如果你读取的是前者,证明你的IIC总线没问题。
龙少-2056135 回答时间:2014-4-23 11:46:47

RE:LSM330DLC陀螺仪的I2C通信问题

楼主的问题解决没有?
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版