TIM102数据手册核心部分翻译及简单的用法总结
2016-01-28 23:11
197 查看
一些啰嗦的地方就不翻译了,直扑重点。怎么用的部分。
POINTER REGISTER
Figure 8展示的是TMP102的内部寄存器,8位的寄存器Pointer Register用来定位其余几个寄存器。Pointer Register使用两个LSB(见Table 11)来决定哪一个寄存器去回应读或者写的命令。Table 1给出了Pointer Register 的每一位。对于写命令,P2到P7必须是0.Table 2给出了其余几个寄存器的地址。上电时P1/P0被赋值为‘00’,默认的配置下,一上电,TMP102即开始读取温度。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201601/28/8167e40f892bc1b1ece2ea7c9a894f52)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201601/28/9fb733f7a74fe0fb4048ee74247eb14f)
TEMPERATURE REGISTER
Temperature Register是一个12位的只读寄存器(将寄存器的EM位配置成0,详见Extended Mode章节),或者是一个13位的寄存器(将寄存器的EM位配置成0),这个寄存器里储存这最近一次通信的输出,要取得这一数据必须读2个字节,Table 3,4描述了这两个字节。注意,byte 1是最重要的字节,其次是byte 2。前12位(或Extended Mode时13位)用来描述温度。如果相应的信息不需要,可以不读取byte 2。温度数据的格式在Table 5, 6中有具体的说明。一个LBS相当于0.0625摄氏度。负数以二进制补码格式表示。在上电或者复位之后,Temperature Register的数据会保持0摄氏度,直到第一次通信完成。Byte 2的D0位表示是Normal Mode还是Extended Mode(D0为即是前述的EM位),进而区分这两种不同模式之下Temperature Register的数据格式。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201601/28/7a4d0f95eaeab4d3a9b00151811833f9)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201601/28/8ee47fe0a0df6dc37fab5362e80ed54c)
对于正的温度:
二进制补码对正数不起作用。因此直接将数字转换成12位的二进制码,采用左对齐的格式。同时MSB(最高有效位)=0,表示正号。
Example: (+50°C)/(0.0625°C/count) = 800 = 320h = 0011 0010 0000
对于负温度:
获得二进制补码就是将温度绝对值的二进制码取反再加1,MBS为1代表负号。
Example: (|–25°C|)/(0.0625°C/count) = 400 = 190h = 0001 1001 0000
二进制补码: 1110 0110 1111 + 1 = 1110 0111 0000
综上,简单总结一下用法:
上电,给TMP102发一个八位的数据,每一位都是0,然后TMP102就会返回一个16位的数据,前12位是温度信息。通讯协议是I2C。
POINTER REGISTER
Figure 8展示的是TMP102的内部寄存器,8位的寄存器Pointer Register用来定位其余几个寄存器。Pointer Register使用两个LSB(见Table 11)来决定哪一个寄存器去回应读或者写的命令。Table 1给出了Pointer Register 的每一位。对于写命令,P2到P7必须是0.Table 2给出了其余几个寄存器的地址。上电时P1/P0被赋值为‘00’,默认的配置下,一上电,TMP102即开始读取温度。
TEMPERATURE REGISTER
Temperature Register是一个12位的只读寄存器(将寄存器的EM位配置成0,详见Extended Mode章节),或者是一个13位的寄存器(将寄存器的EM位配置成0),这个寄存器里储存这最近一次通信的输出,要取得这一数据必须读2个字节,Table 3,4描述了这两个字节。注意,byte 1是最重要的字节,其次是byte 2。前12位(或Extended Mode时13位)用来描述温度。如果相应的信息不需要,可以不读取byte 2。温度数据的格式在Table 5, 6中有具体的说明。一个LBS相当于0.0625摄氏度。负数以二进制补码格式表示。在上电或者复位之后,Temperature Register的数据会保持0摄氏度,直到第一次通信完成。Byte 2的D0位表示是Normal Mode还是Extended Mode(D0为即是前述的EM位),进而区分这两种不同模式之下Temperature Register的数据格式。
对于正的温度:
二进制补码对正数不起作用。因此直接将数字转换成12位的二进制码,采用左对齐的格式。同时MSB(最高有效位)=0,表示正号。
Example: (+50°C)/(0.0625°C/count) = 800 = 320h = 0011 0010 0000
对于负温度:
获得二进制补码就是将温度绝对值的二进制码取反再加1,MBS为1代表负号。
Example: (|–25°C|)/(0.0625°C/count) = 400 = 190h = 0001 1001 0000
二进制补码: 1110 0110 1111 + 1 = 1110 0111 0000
综上,简单总结一下用法:
上电,给TMP102发一个八位的数据,每一位都是0,然后TMP102就会返回一个16位的数据,前12位是温度信息。通讯协议是I2C。
相关文章推荐
- Android开发请求网络方式详解
- shell bash ksh
- TreeMap源码
- Longest Substring Without Repeating Characters
- 虚拟机挂载共享文件夹
- Centos6安装mysql5.7.10
- byte2hex
- Java poi excel 此文件中某些文本格式可能已经更改
- git 本地分支与远程分支
- 一个数列的通项公式
- launchpad 账号注册并设置的步骤 的个人体会
- 我这是一条什么路
- Hadoop 之 数据流——客户端与HDFS,namenode和datanode 之间的数据流
- HashSet源码解析&Map迭代器
- 对C指针的深入理解
- PropertyNotFoundException: Property 'dFlag' not found
- 【Python】给pypy安装第三方库
- System.out.println(i++); System.out.println(++i);的区别
- Android中Context详解 ---- 你所不知道的Context
- Ugly Number II