hello.thanks 2024-04-15 17:35 采纳率: 0%
浏览 1

I2C莫名多出异常设备地址

今天在调试中发现I2C1总线莫名的多了很多设置地址,不知道是什么原理产生,有知道的朋友麻烦分享一下经验:

# i2cdetect -r -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
10: 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
20: 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
30: 30 31 32 33 34 35 UU UU UU UU UU 3b 3c 3d 3e 3f
40: UU UU UU UU UU 45 46 47 48 49 4a 4b 4c 4d 4e 4f
50: 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f
60: 60 61 62 63 64 65 66 67 68 69 UU 6b 6c 6d 6e 6f
70: 70 71 72 73 74 75 76 77

正常的设备地址是UU,其它都是异常的地址。

这是什么原理引起的,问了硬件同事也没有给答复。

谢谢!

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-15 17:35
    关注

    引自免费微信小程序:皆我百晓生

    I2C(Inter-Integrated Circuit)是一种串行通信协议,用于连接微控制器和其他IC设备。当您看到如上所示的i2cdetect输出中显示的非正常设备地址时,这可能由以下几种情况引起:

    1. 物理干扰:有可能是由于电源噪声、信号线上的干扰或其他电子设备的电磁干扰导致的假象。
    2. 错误的SCL/SDA线连接:检查I2C总线上的SCL(时钟线)和SDA(数据线)是否正确连接到每个设备,并且没有短路或开路。
    3. 未正确配置的设备:某些设备可能默认为I2C模式,但它们并未正确配置为您的系统中的某个特定地址。这可能导致多个地址被检测到。
    4. 硬件故障:设备的I2C接口可能存在故障,导致它在不应该响应的时间段内响应了I2C请求。
    5. 软件错误:可能是驱动程序或固件中存在错误,导致设备在不应活动时发送或接收信号。
    6. 外部干扰源:如果有其他I2C设备在同一个总线上操作,可能会造成冲突并产生额外的地址检测结果。

    要解决这个问题,您可以尝试以下步骤:

    步骤1:排查物理连接

    • 确保所有连接都牢固,无短路或开路现象。
    • 检查电源和地线是否有足够的滤波,以减少噪声影响。

    步骤2:重新配置设备

    • 如果可能,查阅相关文档,确认所有设备的I2C地址是否正确设置。
    • 对于可编程的I2C设备,考虑重置其寄存器以恢复默认配置。

    步骤3:软件检查

    • 更新或重新编译I2C驱动程序,确保其与硬件兼容。
    • 如果是嵌入式应用,检查应用程序代码,确保I2C初始化和传输函数没有错误。

    步骤4:隔离测试

    • 将其他可能干扰的设备从总线上移除,看是否还有异常地址。
    • 分别对每个设备进行单独测试,确定具体哪个设备造成了问题。

    步骤5:使用示波器分析

    • 使用示波器监控SCL和SDA线的信号,查找异常信号,这可以帮助定位问题源头。

    步骤6:替换硬件

    • 如果上述步骤都无法解决问题,可以尝试更换怀疑有问题的设备,看看问题是否仍然存在。

    在排查过程中,可能需要配合硬件工程师一起进行,因为涉及到电路板布线、硬件配置等问题。如果问题依然存在,可能需要进一步深入硬件层面或固件层进行调试。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月15日

悬赏问题

  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程