海思3516dv300之bmi160/LSM6DS3驱动总结

本文介绍了海思3516dv300芯片上连接的BMI160和LSM6DS3传感器的驱动开发过程。硬件配置涉及SCL、SDA线路配置,传感器I2C地址为0x68。BMI160驱动在内核已有,可选配进内核或作为模块加载。硬件改动后使用LSM6DS3,驱动同样存在于内核,需要更新Makefile和Kconfig。应用层驱动可参考Arduino和Stm32实现,读写操作主要基于SDK的i2c_ops.c。
摘要由CSDN通过智能技术生成

硬件上

在这里插入图片描述
SCL和SDA是连接到hi3516dv300上的,故需要复用及上(或下)拉使能等配置;
根据硬件SD0接地,芯片i2c地址应该是0x68;

首先遇到的问题:i2c没通;
	(1) 查看设备树,检查是否使能;
	(2) 复用功能选择,上下拉选择(himm工具);
	(3) 通过i2c_read工具读写测试;
	所有都配置好后,i2c依然没通,后面经过不断地尝试,发现是需要himm配置成内部下拉才能通;(上拉和下拉最好都试试,这是内部的上下拉,和硬件没关系);
	
	总结:测试i2c是否通的快捷操作是:等app起来后,在终端控制里面,依次输入下面的三行;
		himm 0x111F001C 0x201  (这是SCL的配置)
		himm 0x111F00180x201  (这是SDA的配置)
		i2c_read 0x2 0x68 0x00	通过i2c_read读i2c2,地址为0x68(读不到乘2试试),寄存器为0x00(一般测试时都是读芯片ID的寄存器);
	若能读到则通,读不到则需要检查配置,主要还是himm的配置;这种方式可快速调试i2c配置及i2c是否通; 

关于bmi160驱动

bmi160的驱动内核里面是有的,若内核版本过低没有课从其他高版本内核中拷过来;

make menuconfig选配,将驱动编译进内核(Y)或以模块形式(M)存在;

驱动位置在内核drivers/iio/imu/下,配置设备树可参考;

后续本来继续bmi160的,但是硬件突然改动,换成LSM6DS3了…,不过原理图一样,仅仅是芯片不一样而已;

只要i2c通
  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天未及海宽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值