气压BST-BMP280-DS001-10 阅读 - 图文(6)
I2C从机接口是兼容飞利浦I2C规范2.1版本。详细计时参考表27。所有模式(标准、快速、高速)支
持。SDA和SCL并非纯粹的开路(漏极?)。里面包含VDDIO ESD保护二极管和接地。设备不执行时钟拉伸,SCL结构是高电平的输入没有拉低能力。
7位设备地址是111011 x。6 位MSB是固定的。SDO的最后一点改变的值,可以改变在操作期间。S
DO连接到接地导致从机地址1110110(0 x76),连接到V_DDIO导致从机地址1110111(0 x77),也就是BMP180 I2C的地址。SDO接口类型不能左浮动;如果左浮动,I2C地址将无定义。
I2C接口使用以下接口类型: ?SCK:串行时钟(sci) ?SDI:数据(SDA)
?SDO:从机地址LSB(接地= ' 0 ',V DDIO = ' 1 ')
CSB必须连接到V_DDIO选择I2C接口。SDI是双向流通到GND:它必须通过把外部连接到V_DDIO
电阻器。请参考第6章连接指令。 以下缩写将用于I2C协议的数据:
?S 开始 ?P停止
?ACKS 从机应答 ?ACKM 主机应答 ?NACKM 主机无应答
5.2.1 I2C写
写是通过发送从机地址以写模式(RW = 0),导致从机地址111011 x0(“X”是由SDO接口状态。然后主
发送对寄存器地址和寄存器数据。传输结束后停止条件。这是图7所示。
5.2.2 I2C读 /*******************/
能够读取寄存器,首先寄存器地址必须被发送以写模式(从机地址111011 x0)。然后一个停止或重复开始必须生成条件(等待应答)。解决该从机后以读模式(RW = ' 1 ')地址111011 x1,从机发出数据后自动递增寄存器地址,直到NOACKM发生和停止条件。图8所示,两个字节读取从0xf6和0xf7寄存器。/**翻译的乱七八糟的*/
5.4接口技术规格 5.4.1通用接口技术
给出了通用接口参数表26所示
5.4.2 I2C时间控制
因为I2C计时,以下使用缩写: ? “S?&F模式”=标准和快速模式 ? “HS模式”=高速模式 ? Cb =总线电容在SDA行
所有其他的命名是指I2C规范2.1(2000年1月)
I2C计时图如图12所示。表27给出相应的值。
.
上述I2C特定时间对应于以下内部添加延迟:
?SDI和SCK输入之间的输入延迟:SDI比SCK延迟通常100 ns的标准和快速模式和一般20 ns高速模式。 ?输出延迟SCK下降沿SDI输出传播通常是140 ns标准和快速模式,通常在高速模式下70纳秒。 补偿公式 32位
// Returns temperature in DegC, resolution is 0.01 DegC. Output value of “5123” equals 51.23 DegC.
// t_fine carries fine temperature as global value BMP280_S32_t t_fine;
BMP280_S32_t bmp280_compensate_T_int32(BMP280_S32_t adc_T) {
BMP280_S32_t var1, var2, T;
var1 = ((((adc_T>>3) – ((BMP280_S32_t)dig_T1<<1))) * ((BMP280_S32_t)dig_T2)) >> 11; var2 = (((((adc_T>>4) – ((BMP280_S32_t)dig_T1)) * ((adc_T>>4) – ((BMP280_S32_t)dig_T1))) >> 12) *
((BMP280_S32_t)dig_T3)) >> 14;
t_fine = var1 + var2;
T = (t_fine * 5 + 128) >> 8; return T; }
// Returns pressure in Pa as unsigned 32 bit integer. Output value of “96386” equals 96386 Pa = 963.86 hPa
BMP280_U32_t bmp280_compensate_P_int32(BMP280_S32_t adc_P) {
BMP280_S32_t var1, var2; BMP280_U32_t p;
var1 = (((BMP280_S32_t)t_fine)>>1) – (BMP280_S32_t)64000; var2 = (((var1>>2) * (var1>>2)) >> 11 ) * ((BMP280_S32_t)dig_P6); var2 = var2 + ((var1*((BMP280_S32_t)dig_P5))<<1); var2 = (var2>>2)+(((BMP280_S32_t)dig_P4)<<16);
var1 = (((dig_P3 * (((var1>>2) * (var1>>2)) >> 13 )) >> 3) + ((((BMP280_S32_t)dig_P2) * var1)>>1))>>18;
var1 =((((32768+var1))*((BMP280_S32_t)dig_P1))>>15); if (var1 == 0) {
return 0; // avoid exception caused by division by zero }
p = (((BMP280_U32_t)(((BMP280_S32_t)1048576)-adc_P)-(var2>>12)))*3125; if (p < 0x80000000) {
p = (p << 1) / ((BMP280_U32_t)var1); } else {
p = (p / (BMP280_U32_t)var1) * 2; }
var1 = (((BMP280_S32_t)dig_P9) * ((BMP280_S32_t)(((p>>3) * (p>>3))>>13)))>>12; var2 = (((BMP280_S32_t)(p>>2)) * ((BMP280_S32_t)dig_P8))>>13; p = (BMP280_U32_t)((BMP280_S32_t)p + ((var1 + var2 + dig_P7) >> 4)); return p; } 64位
// Returns temperature in DegC, double precision. Output value of “51.23” equals 51.23 DegC. // t_fine carries fine temperature as global value
BMP280_S32_t t_fine;
double bmp280_compensate_T_double(BMP280_S32_t adc_T) {
double var1, var2, T;
var1 = (((double)adc_T)/16384.0 – ((double)dig_T1)/1024.0) * ((double)dig_T2); var2 = ((((double)adc_T)/131072.0 – ((double)dig_T1)/8192.0) *
(((double)adc_T)/131072.0 – ((double) dig_T1)/8192.0)) * ((double)dig_T3); t_fine = (BMP280_S32_t)(var1 + var2); T = (var1 + var2) / 5120.0; return T; }
// Returns pressure in Pa as double. Output value of “96386.2” equals 96386.2 Pa = 963.862 hPa double bmp280_compensate_P_double(BMP280_S32_t adc_P) {
double var1, var2, p;
var1 = ((double)t_fine/2.0) – 64000.0;
var2 = var1 * var1 * ((double)dig_P6) / 32768.0; var2 = var2 + var1 * ((double)dig_P5) * 2.0; var2 = (var2/4.0)+(((double)dig_P4) * 65536.0);
var1 = (((double)dig_P3) * var1 * var1 / 524288.0 + ((double)dig_P2) * var1) / 524288.0; var1 = (1.0 + var1 / 32768.0)*((double)dig_P1); if (var1 == 0.0) {
return 0; // avoid exception caused by division by zero }
p = 1048576.0 – (double)adc_P;
p = (p – (var2 / 4096.0)) * 6250.0 / var1; var1 = ((double)dig_P9) * p * p / 2147483648.0; var2 = p * ((double)dig_P8) / 32768.0;
p = p + (var1 + var2 + ((double)dig_P7)) / 16.0; return p; }
以上是本人使用数据手册时,简单翻译,如果有误,望指出,轻喷,谢谢!
…… 此处隐藏:1652字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [实用模板]第八章:法国“新浪潮”与“左岸派”
- [实用模板]2021年北京上半年临床医学检验技师生物
- [实用模板]SAP GUI 7.10客户端安装配置文档
- [实用模板]2001年临床执业医师资格考试综合笔试试
- [实用模板]36机场工作实用英语词汇总结
- [实用模板](一)社会保险稽核通知书
- [实用模板]安全教育主题班会材料
- [实用模板]濉溪县春季呼吸道传染病防控应急演练方
- [实用模板]长沙房地产市场周报(1.30-2.3)
- [实用模板]六年级数学上册典中点 - 图文
- [实用模板]C程序设计(红皮书)习题官方参考答案
- [实用模板]中国证监会第一届创业板发行审核委员会
- [实用模板]桥梁工程复习题
- [实用模板]2011学而思数学及答案
- [实用模板]初中病句修改专项练习
- [实用模板]监理学习知识1 - 图文
- [实用模板]小机灵杯四年级试题
- [实用模板]国贸专业毕业论文模板
- [实用模板]教育学概论考试练习题-判断题4
- [实用模板]2015届高考英语一轮复习精品资料(译林
- 00Nkmhe_市场营销学工商管理_电子商务_
- 事业单位考试法律常识
- 诚信教育实施方案
- 吉大小天鹅食品安全检测箱方案(高中低
- 房地产销售培训资料
- 高一地理必修1复习提纲
- 新概念英语第二册lesson_1_练习题
- 证券公司内部培训资料
- 小学英语时间介词专项练习
- 新世纪英语专业综合教程(第二版)第1册U
- 【新课标】浙教版最新2018年八年级数学
- 工程建设管理纲要
- 外研版 必修一Module 4 A Social Surve
- Adobe认证考试 AE复习资料
- 基于H.264AVC与AVS标准的帧内预测技术
- 《食品检验机构资质认定管理办法》(质
- ABB变频器培训课件
- (完整版)小学说明文阅读练习题及答案
- 深思洛克(SenseLock) 深思IV,深思4,深
- 弟子规全文带拼音




