I2C总线SCL信号无法正常拉高的问题

I2C多主设备冲突怎么办?手把手教你理解时钟同步与仲裁机制 本文深入解析了I2C总线在多主设备场景下发生冲突的根源,并手把手教你理解其核心的时钟同步与仲裁机制。通过剖析总线底层的“线与”逻辑,详细阐述了设备间如何通过时钟同步实现步调一致,以及如何通过逐比特仲裁优雅地解决访问权竞争,为设计稳健的嵌入式多主通信系统提供关键思路和实用解决方案。 阅读详情

    昨天板子起来以后,发现I2C总线不能正常工作。挂载到I2C总线上的设备出去RTC可以正常工作外,其他都“完蛋”了。于是抓波,发现SCL高电平无法达到3.3V的幅值。起初以为是上拉电阻太大了,于是更换为阻值更小的,但发挥的作用微乎其微,只能勉强上拉到2.3V左右。

    紧接着去查电路和PCB设计,这次PCB走线有些绕,整板看上去类似一个“几”字,3.3V的上拉靠近源端一侧。由于各种原因,此次使用GPIO模拟的I2C的时序来对I2C设备进行控制。因此,目标再一次转移到GPIO的问题上来。首先,这些IO口为复用管脚,在配置上作为输出,那么SOC内部应该有弱上拉。按照这个思路,我将外部上拉电阻全部干掉。在kennel当中,把这个两个PIN当作IO口在操作。进行简单的拉高和拉低操作,结果问题依然存在。

    模拟SCL的GPIO口的高电平还是上不去。于是就去网络寻求帮助,在网络上找到了一篇关于I2C总线的博客(http://blog.21ic.com/user1/1721/archives/2005/5753.html),这篇博文中描述到:上拉电阻Rp的值由三个参数决定:电源电压、总线电容和连接器件的数量(输入电流+漏电流)。此处再援引另外一篇博文(http://yuqix.blog

I2C通讯过程中SDA被一直拉低 I2C通讯过程中SDA被一直拉低 一、现象 二、分析原因 2.1 正常情况该部分数据 正常情况sl... 阅读详情

相关推荐

I2C总线原理及总线信号的实现

I2C总线是一种多主机总线,连接IIC总线上的器件分为主机和从机,主机有权发起和结束一次通信,而从机只能被主机呼叫;当总线上有多个主机同时启用总线时,I2C也具备冲突检测和仲裁的功能来防止错误产生;每个连接到IIC总线上的器件都有一个唯一的地址(7bit),且每个器件都可以作为主机也可以作为从机(同一时刻只能有一个主机),总线上的器件增加和删除不影响其他器件正常工作;I2C总线在通信时总线上发送数据的器件为发送器,接收数据的器件为接收器;主要用于近距离(抗干扰能力稍弱),低速的芯片之间的通信(传输视频,带宽

YLG_lin的博客 3934

深入解析I2C总线:SDA与SCL的协同工作机制

本文深入解析I2C总线中SDA(串行数据线)与SCL(串行时钟线)的协同工作机制,详细阐述了两者在数据传输、时序同步、开漏输出设计及多设备通信中的关键作用,并提供了实际应用中的调试技巧与常见问题解决方案。

k8s6orchestrator的博客 859

I2C总线通信原理与电路设计

下面是 I2C 总线的一些特征 • 只要求两条总线线路 一条串行数据线 SDA 一条串行时钟线 SCL • 每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机 从机关系软件设定地 址 主机可以作为主机发送器或主机接收器 • 它是一个真正的多主机总线 如果两个或更多主机同时初始化数据传输可以通过冲突检测和仲裁 防止数据被破坏 • 串行的 8 位双向数据传输位速率在标...

sinat_15677011的博客 1万+

嵌入式中I2C 相关的硬件问题汇总及死锁解决办法

MCU 在开始信号后发送地址,得到从机设备响应,准备开始返回数据,在这个时候,从机将 SDA 信号拉为低电平,如果 MCU 异常复位,会导致总线上 SCL 停止发送时钟信号,从机等待 MCU 的时钟信号,产生钳住并且拉低 SDA 的现象。如果想要解锁 SDA,从机需要 9 个时钟信号,使得从机完成响应,释放 SDA。具体原因是从机设备在回数据,还没有发送完成,主机时钟消失,从机等待时钟信号, MCU重启,如果从机设备的电源没有复位,从机继续等待 MCU 时钟信号,数据一直被钳住,总线无法完成数据交互。

嵌入式技术开发 1864

MT6739 Android 8.1 I2C口电平转换低电平无法到0V的解决办法.docx

MTK Android I2C口电平转换低电平无法到0V的解决办法

SAP 配额修改 + 修改记录写入实现

采购配额修改并写入修改记录 cdhdr 和 cdpos

GAVIN 1080

KDD 2025 | 人大团队提出多任务贝叶斯联邦学习算法,同时处理分类和回归

©PaperWeekly 原创 ·作者 |吕俊良单位 |中国人民大学统计学院本文介绍了中国人民大学统计学院的一篇关于多任务贝叶斯联邦学习的文章“Task Diversity in Bayesian Federated Learning: Simultaneous Processing of Classification and Regression”,本文被 KDD 2025 接收,代码已经...

Paper weekly 2739

汽车OBD接口实战:如何用STM32读取CAN总线数据(附完整代码)

本文详细介绍了如何利用STM32微控制器通过汽车OBD接口读取CAN总线数据的完整实战方案。内容涵盖硬件连接(如OBD引脚定义与TJA1050收发器接线)、STM32的CAN外设初始化与滤波器配置,并深入解析OBD-II诊断协议,演示了如何请求和解析发动机转速、车速等关键数据。文末提供了构建稳定数据读取系统的代码框架与错误处理建议,为嵌入式开发者和汽车电子爱好者提供了从零到一的实践指南。

9q8w7e6r5的博客 285

物理专业书库模板(1):物理学书单(适合物理专业本科生、研究生、科研工作者、物理爱好者...)

物理专业书库模板(1):物理学书单(适合物理专业本科生、研究生、科研工作者、物理爱好者...) 求赞求喜欢求分享,建议关注,防止文章丢失。

hepyang的博客 2173

STM32L476低功耗实战:LPTIM精准定时唤醒STOP2模式与系统级功耗优化

本文深入探讨了STM32L476低功耗实战技巧,重点解析了LPTIM精准定时唤醒STOP2模式的配置与优化。通过详细的步骤指南和实战经验分享,帮助开发者实现系统级功耗优化,特别适合电池供电设备开发。文章涵盖LPTIM1定时器配置、STOP2模式进入流程及常见问题排查,助力将整机功耗降至8.2uA级别。

weixin_33686714的博客 433

Android OTA 升级实战指南:从原理到实现

本文详细解析了Android OTA升级的原理与实现方法,包括AB升级与Recovery升级的机制对比、OTA升级包制作流程以及应用层升级功能的实现。通过实战案例和常见问题排查指南,帮助开发者掌握Android系统无线升级技术,提升设备维护效率。

weixin_42652674的博客 192

UG\NX二次开发 获取对象的层、颜色、隐藏状态、线宽、线型、高亮显示状态

获取对象的层、颜色、隐藏状态、线宽、线型、高亮显示状态。

王牌飞行员_里海的博客 1972

081、LLC谐振变换器的短路特性与保护

本文深入分析了LLC谐振变换器在短路工况下的特性与保护策略。作者通过实际案例指出,LLC在输出短路时会出现谐振电流失控、ZVS条件丧失等危险现象,导致MOS管炸毁。文章详细阐述了短路保护的三大难点:响应速度、频率与电流的耦合、重启策略,并提出了硬件级快速保护、频率快速拉升、打嗝模式等实用解决方案。作者分享了关键参数设计经验,包括电流检测阈值设置、最高频率限制和保护响应时间控制,并通过实测波形验证了保护效果。最后总结出五点重要经验,强调硬件保护的必要性和系统设计的注意事项,为LLC变换器的短路保护设计提供了有

Jack010169的博客 63

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: DDR3内存更换调试总结
下一篇: Altium designer中蛇形线走法和操作说明
源流之道
博客等级 码龄18年 30粉丝 16原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值