完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
目前在一项目中使用ADT7420作为温度传感器获取环境温度,但是在使用中发现读取ADT7420的寄存器的返回值始终为0x0D、0x0E或0x0F,同样一套代码与I2C总线上的其他设备通信则无异常,断开总线上的其他设备仅保留ADT7420也无法正常读取数据,请问下可能是哪方面的原因导致的这个问题,谢谢~
|
|
相关推荐
6个回答
|
|
首先从硬件上,您需要检查是否I2C的两个管脚上接了10K的上拉电阻;其次确定A1和A0管脚的值是多少?是否根据A0和A1的值,正确的写入了器件地址?是否有ACK相应?如果这些都确认没有问题的话,您可以将您的I2C波形上传,我们帮您查看一下。
|
|
|
|
yweyerwq 发表于 2018-11-16 09:08 很抱歉这么久才再次登录,之前在测试的时候发现使用10k电阻上拉波形时序稍微有些不满足datasheet的时序要求,现在把上拉电阻换成4.7k的才满足时序要求,但是不论使用的是哪种阻值的电阻,返回的数据均不正常,而且根据配置的不同的A0、A1地址已经对代码中的目标地址进行了更改,抓波形的话都能够抓到相应的ACK数据,有没有办法判断是不是焊接问题造成的异常呢? |
|
|
|
邓刚1234 发表于 2018-11-16 09:15 在硬件上就是注意EP PAD floating或者与地连接。还有I2C管脚的上拉电阻为10Kohm的时候,是具体哪里不正确? 还是希望您能上传一个完整的I2C读时序,我们可以帮您分析一下。 |
|
|
|
yweyerwq 发表于 2018-11-16 09:20 您好,我也遇到了同样的问题。读取寄存器输出总是0x0F或0x10.以下是i2c的时序图。A1,A0设为11。发送设备地址后芯片有ACK,再发送要读取寄存器的地址后,ACK为总高,与datasheet不符。硬件电路应该没有问题。 时序图中第一栏为输出值,第二栏为状态机循环编码,第三栏为SCL(100kHz),第四栏为SDA,第五栏为SDA的输入输出控制(1为主设备输出,0为从设备输出)。读取寄存器地址为0x0B(ID register),应该输出0xCB。 不知道问题出在哪里?谢谢!!! |
|
|
|
用过ADT7410,按照数据手册读写没问题,是不是和其它I2C冲突了,看看示波器的读写时序就应该很清楚了。
|
|
|
|
是的。直接用示波器观测时序是最清楚和直接的方法了。 |
|
|
|
只有小组成员才能发言,加入小组>>
975 浏览 2 评论
给ADUM4223 增加信号驱动15V电压就不正常, 波动很大会被烧是什么情况?
1372 浏览 2 评论
ADP5092 SYS端口为2.09V,但是REG_OUT为0是什么原因?
1933 浏览 1 评论
ad7193差分输入ain1与ain2差是正值时,读到电压与实际值误差小,但为负值值,误差就变的很大
4263 浏览 2 评论
9053 浏览 1 评论
ADC3442采集,分析数据出现有规则毛刺,请问是哪方面的问题啊?
1492浏览 3评论
AD7190状态寄存器一直是0x80,连续转换模式下RDY不拉低
1689浏览 2评论
975浏览 2评论
1662浏览 2评论
给ADUM4223 增加信号驱动15V电压就不正常, 波动很大会被烧是什么情况?
1372浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 13:32 , Processed in 0.955965 second(s), Total 86, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号