极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 29345|回复: 14

新手请教怎么同时读2个BMP085的值

[复制链接]
发表于 2013-6-4 15:52:08 | 显示全部楼层 |阅读模式
2个地址是一样的~~I2C连接
回复

使用道具 举报

发表于 2013-6-4 16:47:43 | 显示全部楼层
一个使用硬件i2c读取 另一个使用gpio模拟i2c读取就行了嘛
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-4 17:35:40 | 显示全部楼层
histamine 发表于 2013-6-4 16:47
一个使用硬件i2c读取 另一个使用gpio模拟i2c读取就行了嘛

你好~请问ARDUINO有没gpio模拟i2c得参考程序??
回复 支持 反对

使用道具 举报

发表于 2013-6-4 19:28:37 | 显示全部楼层
天天向上/tp 发表于 2013-6-4 17:35
你好~请问ARDUINO有没gpio模拟i2c得参考程序??

http://code.google.com/p/blinkm- ... emo/SoftI2CMaster.h
http://code.google.com/p/blinkm- ... o/SoftI2CMaster.cpp
回复 支持 反对

使用道具 举报

发表于 2013-6-5 10:26:01 | 显示全部楼层
努力赚分ing....
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-5 22:23:53 | 显示全部楼层
求高手解答~~还是想用一个I2C。控制EOC使能
回复 支持 反对

使用道具 举报

发表于 2013-6-6 14:17:38 | 显示全部楼层
数据端加个电子开关吧!
回复 支持 反对

使用道具 举报

发表于 2013-6-6 14:34:00 | 显示全部楼层
本帖最后由 histamine 于 2013-6-6 14:35 编辑

https://www.sparkfun.com/datashe ... BMP085-DS000-05.pdf
仔细阅读datasheet,挂多个bmp085在同一个i2c总线上是可行的

Page 15:


Page 16:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2013-6-6 14:38:47 | 显示全部楼层
突发奇想,可以试一下,将两个BMP085的四条线的三条线一一连在一起,将两个芯片的电源和端口相连,由端口向BMP085供电,开通端口也就向芯片供电依次作片选.BMP085电流很小,峰值只有1ma,端口驱动应该够了.问题是BMP085是3.3v供电,单片机最好也是3.3供电,其次端口供电后最好加上电源后加上延迟再和BMP085通讯,这样可以避免不稳定,三初始化程序需要进入loop.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-6 16:15:14 | 显示全部楼层
histamine 发表于 2013-6-6 14:34
https://www.sparkfun.com/datasheets/Components/General/BST-BMP085-DS000-05.pdf
仔细阅读datasheet,挂 ...

这一段我看过,使能一个的话,读出来的输出时1900000多,是错的。不知道什么原因
回复 支持 反对

使用道具 举报

发表于 2013-6-6 17:05:03 | 显示全部楼层
天天向上/tp 发表于 2013-6-6 16:15
这一段我看过,使能一个的话,读出来的输出时1900000多,是错的。不知道什么原因

XCLR引脚不是使能,而是reset
回复 支持 反对

使用道具 举报

发表于 2013-6-6 17:17:13 | 显示全部楼层
天天向上/tp 发表于 2013-6-6 16:15
这一段我看过,使能一个的话,读出来的输出时1900000多,是错的。不知道什么原因

xclr作用是复位,是否在loop中需要对其初始化,而且还用给点时间,调一下程序试一下.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-6 21:52:24 | 显示全部楼层
histamine 发表于 2013-6-6 17:05
XCLR引脚不是使能,而是reset

你好!接一个BMP085的时候我给XCLR低电平,气压计不工作,接高电平,气压计工作正常!
当我接2个BMP085的时候,一个接低电平,一个接高电平,读出的数据时1900000多,是错误的!!
我想不是不接低电平的气压计占用了SCL,时钟线没释放出来。接高电平的气压计没办法用时钟·
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-6 21:53:04 | 显示全部楼层
林定祥 发表于 2013-6-6 17:17
xclr作用是复位,是否在loop中需要对其初始化,而且还用给点时间,调一下程序试一下.

你好!接一个BMP085的时候我给XCLR低电平,气压计不工作,接高电平,气压计工作正常!
当我接2个BMP085的时候,一个接低电平,一个接高电平,读出的数据时1900000多,是错误的!!
我想不是不接低电平的气压计占用了SCL,时钟线没释放出来。接高电平的气压计没办法用时钟·
回复 支持 反对

使用道具 举报

发表于 2013-6-7 07:01:55 | 显示全部楼层
i2C总共2条线,能有读到数据,但有时有错说明总线有不稳定性,可以拿掉一个试一试,判断一下时钟线问题还是数据线问题,对有问题采用外加电阻拉高或拉低也许会奏效。
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-6 17:49 , Processed in 0.040289 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表