3445|0

1万

帖子

24

TA的资源

版主

楼主
 

LSM6DSO的I2C HUB模式 [复制链接]

 

LSM6DSO除了作为普通的I2C从设备外(模式1),它还有3种特殊的模式,如下图:

其中模式2就是I2C HUB模式,它作为一个I2C HUB,后面挂接其它的I2C从设备。在模式2/3/4下,芯片的SDx/SCx引脚作为I2C HUB的SDA/SCL引脚。

 

对于X-NUCLEO-IKS01A3开发板,默认使用了标准模式,JP7和JP8的跳线连接1-2和3-4,这样I2C1和I2C2短连,LSM6DSO的SDx和SCx接到GND,6个传感器的I2C通过U6/U7(ST2378E)连接在一起。

如果使用I2C HUB模式,需要改变JP7/JP8的短路块连接方式,将2-3短路,这样I2C1_SDA/I2C1/SCL就可以和SDx/SCx相连了。

 

不过仅仅改变跳线,I2C HUB还是无法工作的,因为默认情况下,LSM6DSO没有允许这个功能,还需要通过寄存器设置芯片工作模式。虽然设置并不复杂,但LSM6DSO的寄存器实在太多了,相信大部分网友没有耐心去完整看一次,下面就简单介绍设置方法。

 

首先需要修改FUNC_CFG_ACCESS寄存器,将SHUB_REG ACCESS设置为1,启用 sensor hub (I²C master) 寄存器访问功能。

其次,将sensor hub的寄存器MASTER_CONFIG中的PASS_THROUGH_MODE(直通模式)设置为1,这样就可以启用I2C HUB功能了。

 

下面以MicroPython为例,介绍具体的使用方法:

 

首先将X-NUCLEO-IKS01A3开发板的J2(I2C和电源)连接到MicroPython开发板,具体方法请参考帖子《使用 MicroPython 连接 X-NUCLEO-IKS01A3》。

 

以PYB Nano为例,使用进行I2C1连接。然后扫描I2C总线上的设备(这时已经将X-NUCLEO-IKS01A3切换到了HUB模式),可以发现有3个设备,其中设备76是PYB Nano上的加速度传感器MMA7660,设备25是X-NUCLEO-IKS01A3上的LIS2DW12磁场传感器,设备107是LSM6DSO。

 

 

依次设置寄存器FUNC_CFG_ACCESS和寄存器MASTER_CONFIG,然后再次扫描I2C总线,就可以发现其它传感器已经连接到I2C HUB上了。

 

 

 

 


此内容由EEWORLD论坛网友dcexpert原创,如需转载或用于商业用途需征得作者同意并注明出处

点赞 关注(1)
 
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表