OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3053|回复: 9

MS5611

[复制链接]

25

主题

84

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
468
金钱
468
注册时间
2017-6-10
在线时间
66 小时
发表于 2017-6-29 10:24:45 | 显示全部楼层 |阅读模式
哪位大神有MS5611的程序,可以分享一下吗?从网上找的程序数据一直不变
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2015-9-16
在线时间
15 小时
发表于 2017-12-11 13:42:51 | 显示全部楼层
我也想问下,我读出压力、温度的数值也一直没有变化。D1、D2都是0.
回复 支持 反对

使用道具 举报

12

主题

330

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2294
金钱
2294
注册时间
2016-5-21
在线时间
954 小时
发表于 2017-12-11 15:58:29 | 显示全部楼层
Dwei03 发表于 2017-12-11 13:42
我也想问下,我读出压力、温度的数值也一直没有变化。D1、D2都是0.

我最近几天也在测试MS5611,数据我看挺稳定的,如图测试气压和高度



HE1`%(EQDC4{Z[~@@TULQ52.png
回复 支持 反对

使用道具 举报

4

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2015-9-16
在线时间
15 小时
发表于 2017-12-11 16:45:32 | 显示全部楼层
xxssl 发表于 2017-12-11 15:58
我最近几天也在测试MS5611,数据我看挺稳定的,如图测试气压和高度

我的是有问题啊数值都不会变化的,D1,D2转换都是0.你的好像没有这个问题啊?可否参考下代码?
回复 支持 反对

使用道具 举报

12

主题

330

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2294
金钱
2294
注册时间
2016-5-21
在线时间
954 小时
发表于 2017-12-11 17:04:02 | 显示全部楼层
Dwei03 发表于 2017-12-11 16:45
我的是有问题啊数值都不会变化的,D1,D2转换都是0.你的好像没有这个问题啊?可否参考下代码?

按数据手册上写的,一步步测试,没啥问题的
1、复位
2、读PROM
3、读D1,D2
这样子就好了,你把数据串口输出看看,PROM的数据全部是FF或者全部是00,那就时序不对了,一步步查看数据就可以了
回复 支持 反对

使用道具 举报

4

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2015-9-16
在线时间
15 小时
发表于 2017-12-11 18:28:46 | 显示全部楼层
xxssl 发表于 2017-12-11 17:04
按数据手册上写的,一步步测试,没啥问题的
1、复位
2、读PROM

读PROM没有问题,有数据。每次的ack都有。就是读D1、D2的adc三个字节时返回都是0
回复 支持 反对

使用道具 举报

12

主题

330

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2294
金钱
2294
注册时间
2016-5-21
在线时间
954 小时
发表于 2017-12-12 08:44:40 | 显示全部楼层
Dwei03 发表于 2017-12-11 18:28
读PROM没有问题,有数据。每次的ack都有。就是读D1、D2的adc三个字节时返回都是0

我用的是SPI接口,可能你没有ADC转换的等待时间,SPI时序有提到,IIC也说到一点
DELAY.png
IIC.png
SPI.png
回复 支持 反对

使用道具 举报

4

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2015-9-16
在线时间
15 小时
发表于 2017-12-12 17:02:58 | 显示全部楼层
xxssl 发表于 2017-12-12 08:44
我用的是SPI接口,可能你没有ADC转换的等待时间,SPI时序有提到,IIC也说到一点

[mw_shl_code=applescript,true]unsigned long MS561101BA_getConversion(uint8_t command)
{

                        unsigned long conversion = 0;
                        u8 temp[3];
       
            I2C_Start();
                        I2C_Send_Byte(0xEE);                 //写地址
                        I2C_Wait_Ack();
                        I2C_Send_Byte(command); //写转换命令
                        I2C_Wait_Ack();
                        I2C_Stop();

                        delay_ms(10);
                        I2C_Start();
                        I2C_Send_Byte(0xEE);                 //写地址
                        I2C_Wait_Ack();
                        I2C_Send_Byte(0);                                // start read sequence
                        I2C_Wait_Ack();
                        I2C_Stop();
                 
                        I2C_Start();
                        I2C_Send_Byte(0xEE+0x01);  //进入接收模式
                        I2C_Wait_Ack();
                        temp[0] = I2C_Read_Byte(1);  //带ACK的读数据  bit 23-16
                        temp[1] = I2C_Read_Byte(1);  //带ACK的读数据  bit 8-15
                        temp[2] = I2C_Read_Byte(0);  //带NACK的读数据 bit 0-7
                        I2C_Stop();
                       
                        conversion = (unsigned long)temp[0] * 65536 + (unsigned long)temp[1] * 256 + (unsigned long)temp[2];
                        return conversion;

}[/mw_shl_code]
回复 支持 反对

使用道具 举报

4

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2015-9-16
在线时间
15 小时
发表于 2017-12-12 17:03:32 | 显示全部楼层
xxssl 发表于 2017-12-12 08:44
我用的是SPI接口,可能你没有ADC转换的等待时间,SPI时序有提到,IIC也说到一点

我也有延时10ms 啊
回复 支持 反对

使用道具 举报

12

主题

330

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2294
金钱
2294
注册时间
2016-5-21
在线时间
954 小时
发表于 2017-12-12 17:22:18 | 显示全部楼层
我也不清楚了,你的IIC驱动程序传上来分析分析
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-15 03:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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