X210板载gsensor介绍
2016-04-16 10:37
531 查看
《朱老师物联网大讲堂》学习笔记
学习地址:www.zhulaoshi.org
![](https://img-blog.csdn.net/20160416103739292?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
因为我们板子的I2C接口,接的是重力加速度传感器,所以我们就以这个来作为讲解的例子,主要讲解的是实现通讯,至于通信后,要做什么,又是芯片的事了,
以下笔记为朱老师课上所做,
1.12.4.X210板载gsensor介绍
1.12.4.1、原理图查阅
(1)gsensor的供电由PWMTOUT3引脚控制。当PWMTOUT3输出低电平时gsensor无电不工作;当输出高电平时gsensor才会工作。
(2)gsensor的SDA和SCL接的是S5PV210的I2C端口0
(3)将来编程时在gsensor_init函数中要去初始化相关的GPIO。要把相应的GPIO设置为正确的模式和输入输出值。
1.12.4.2、重力加速度传感器简介
(1)用在手机、平板、智能手表等设备上,用来感受人的手的移动,获取一些运动的方向性信息用来给系统作为输入参量。
(2)可以用来设计智能手表的计步器功能。
(3)重力加速度传感器、地磁传感器、陀螺仪等三个传感器结合起来,都是用来感谢运动的速度、方位等信息的,所以现在最新的有9轴传感器,就是把三者结合起来,并且用一定的算法进行综合得出结论,目的是更加准确。
(4)一般传感器的接口有2种:模拟接口和数字接口。模拟接口是用接口电平变化来作为输出的(譬如模拟接口的压力传感器,在压力不同时输出电平在0~3.3V范围内变化,每一个电压对应一个压力。),SOC需要用AD接口来对接这种传感器对它输出的数据进行AD转换,转换得到数字电压值,再用数字电压值去校准得到压力值;数字接口是后来发展出来的,数字接口的sensor是在模拟接口的sensor基础上,内部集成了AD,直接(通过一定的总线接口协议,一般是i2C)输出一个数字值的参数,这样SoC直接通过总线接口初始化、读取传感器输出的参数即可(譬如gsensor、电容触摸屏IC)。
1.12.4.3、I2C从设备的设备地址
(1)KXTE9的I2C地址固定为0b0001111(0x0f)
(2)I2C从设备地址本身是7位的,但是在I2C通信中发送I2C从设备地址时实际发送的是8位,这8位中高7位(bit7-bit1)对应I2C从设备的7位地址,最低一位(LSB)存放的是R/W信息(就是说下一个数据是主设备写从设备读(对应0),还是主设备读从设备写(对应1))
(3)基于上面讲的,对于KXTE9来说,主设备(SoC)发给gsensor信息时,SAD应该是:0b00011110(0x1E)
如果是主设备读取gsensor信息时,SAD应该是:0b00011111(0x1F)
1.12.4.4、I2C从设备的通信速率
(1)I2C协议本身属于低速协议,通信速率不能太高。
(2)实际上通信的主设备和从设备本身都有最高的通信速率限制(属于各个芯片本身的参数),实际编程时怎么确定最终的通信速率?只要小于两个即可。
(3)一般来说只能做从设备的sensor芯片本身i2c通信速率偏低,像KXTE9最高支持400KHz的频率。
学习地址:www.zhulaoshi.org
因为我们板子的I2C接口,接的是重力加速度传感器,所以我们就以这个来作为讲解的例子,主要讲解的是实现通讯,至于通信后,要做什么,又是芯片的事了,
以下笔记为朱老师课上所做,
1.12.4.X210板载gsensor介绍
1.12.4.1、原理图查阅
(1)gsensor的供电由PWMTOUT3引脚控制。当PWMTOUT3输出低电平时gsensor无电不工作;当输出高电平时gsensor才会工作。
(2)gsensor的SDA和SCL接的是S5PV210的I2C端口0
(3)将来编程时在gsensor_init函数中要去初始化相关的GPIO。要把相应的GPIO设置为正确的模式和输入输出值。
1.12.4.2、重力加速度传感器简介
(1)用在手机、平板、智能手表等设备上,用来感受人的手的移动,获取一些运动的方向性信息用来给系统作为输入参量。
(2)可以用来设计智能手表的计步器功能。
(3)重力加速度传感器、地磁传感器、陀螺仪等三个传感器结合起来,都是用来感谢运动的速度、方位等信息的,所以现在最新的有9轴传感器,就是把三者结合起来,并且用一定的算法进行综合得出结论,目的是更加准确。
(4)一般传感器的接口有2种:模拟接口和数字接口。模拟接口是用接口电平变化来作为输出的(譬如模拟接口的压力传感器,在压力不同时输出电平在0~3.3V范围内变化,每一个电压对应一个压力。),SOC需要用AD接口来对接这种传感器对它输出的数据进行AD转换,转换得到数字电压值,再用数字电压值去校准得到压力值;数字接口是后来发展出来的,数字接口的sensor是在模拟接口的sensor基础上,内部集成了AD,直接(通过一定的总线接口协议,一般是i2C)输出一个数字值的参数,这样SoC直接通过总线接口初始化、读取传感器输出的参数即可(譬如gsensor、电容触摸屏IC)。
1.12.4.3、I2C从设备的设备地址
(1)KXTE9的I2C地址固定为0b0001111(0x0f)
(2)I2C从设备地址本身是7位的,但是在I2C通信中发送I2C从设备地址时实际发送的是8位,这8位中高7位(bit7-bit1)对应I2C从设备的7位地址,最低一位(LSB)存放的是R/W信息(就是说下一个数据是主设备写从设备读(对应0),还是主设备读从设备写(对应1))
(3)基于上面讲的,对于KXTE9来说,主设备(SoC)发给gsensor信息时,SAD应该是:0b00011110(0x1E)
如果是主设备读取gsensor信息时,SAD应该是:0b00011111(0x1F)
1.12.4.4、I2C从设备的通信速率
(1)I2C协议本身属于低速协议,通信速率不能太高。
(2)实际上通信的主设备和从设备本身都有最高的通信速率限制(属于各个芯片本身的参数),实际编程时怎么确定最终的通信速率?只要小于两个即可。
(3)一般来说只能做从设备的sensor芯片本身i2c通信速率偏低,像KXTE9最高支持400KHz的频率。
相关文章推荐
- lwn拾遗:[sn3218 led driver]-api解释-2
- lwn拾遗:[sn3218 led drivers]-api解释-1
- linux下的i2c与时钟芯片pcf8563通信
- 我的 ARM+Linux 学习路线
- 开发学习记录之看门狗驱动
- 时钟+温度+遥控设置,综合时钟例子
- 温度传感器+I2C+串口+PC上位机(pyserial)例子
- Linux下运行openwebos- -(转)
- Linux下运行openwebos- -(转)
- BusyBox 简化嵌入式 Linux 系统
- EGL 学习
- 嵌入式开发设计方法变化的背景
- 基于I2C的嵌入式多点触摸屏幕驱动设计
- 嵌入式人才的发展方向
- 汇编调用c函数为什么要设置栈
- 三角函数的实现
- 嵌入式桌面操作系统使用与制作攻略
- 嵌入式系统烧写uboot/bootloader/kernel的一般方法
- 甲骨文收购Sleepycat 丰富嵌入式产品线
- 嵌入式Linux操作系统学习规划