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

I2C总线只需SDA和SCL两条线路,每个设备有独特地址,支持多主机模式,数据传输速率可达3.4Mbit/s。上拉电阻选择要考虑功耗和速度,计算公式为Rmin={(Vdd(min)-0.4V)/3mA},Rmax={(T/0.874)*C},T与总线速率有关,C为总线电容。在实际设计中,通常选取5.1K@5V或3.3K@2.8V的上拉电阻。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

补充:

I2C 总线的一些特征:

• 只要求两条总线线路 一条串行数据线 SDA 一条串行时钟线 SCL
• 每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机 从机关系软件设定地
址 主机可以作为主机发送器或主机接收器
• 它是一个真正的多主机总线 如果两个或更多主机同时初始化数据传输可以通过冲突检测和仲裁
防止数据被破坏
• 串行的 8 位双向数据传输位速率在标准模式下可达 100kbit/s 快速模式下可达 400kbit/s 高速
模式下可达 3.4Mbit/s
• 片上的滤波器可以滤去总线数据线上的毛刺波 保证数据完整
• 连接到相同总线的 IC 数量只受到总线的最大电容 400pF 限制

上拉电阻的选取要考虑上限值和下限值这两点:

牵涉到两方面的问题,首先是功耗的问题,其次是速度的问题,二者是矛盾的!如果你想尽量提高速度,那么就牵涉到总线电容的问题,其实很容易理解, 上拉电阻与总线的电容形成了RC,高速时将直接影响通讯!因为总线拉高时有个充电时间以及高电平的阀值,如果还没有充电到足以保证从器件可以识别的高电平 的阀值时主器件就以为完成了一个总线动作的话,那么通讯肯定是不能进行的!如果你想尽可能降低功耗,那么就要尽可能增大电阻以最大可能的减小电路各部分的 消耗电流从而实现整体降低功耗!但不可能无限大,否则充电时间你会受不了的

I2C上拉电阻确定有一个计算公式:

Rmin={Vdd(min)-o.4V}/3mA

Rmax=(T/0.874) *c, T=1us 100KHz, T=0.3us 400KHz

C是Bus capacitance

Rp最大值由总线最大容限(Cbmax)决定,Rp最小值由Vio与上拉驱动电流
(最大取3mA) 决定;

于是 Rpmin=5V/3mA≈1.7K(@Vio=5V)或者2.8V/3mA≈1K(@Vio=2.8V)

标 准模式:100Kbps ; 总线的负载最大容限<=400pF;
快速模式:400Kbps;总线的负载最大容限<=200pF

,根据具体使用情况、 目前的器件制造工艺、PCB的走线距离等因素以及标准的向下兼容性,设计中以快速模式为基础,即总线负载电容<200pF,也就是传输速度可以上到 400Kbps是不成问题的。于是Rpmax可以取的范围是1.8K~ 7K @ Vio=5V对应50pF~200pF

根据Rpmin与Rpmax的限制范围,一般取5.1K @ Vio=5V , 负载容限的环境要求也容易达到。在2.8V系统中选3.3K,低供耗的设计选4.7K牺牲速度换取电池使用时间

总的来说:电源电压限制了上拉电阻的最小值 ; 负载电容(总线电容)限制了上拉电阻的最大值

————————————————

部分转自:https://blog.csdn.net/Mr_Define/article/details/84800869

FPGA(现场可编程逻辑门阵列)是一种可编程器件,可以通过重新编程来实现不同的功能和电路设计I2C(Inter-Integrated Circuit)总线是一种串行通信协议,用于连接不同的设备和芯片之间的通信。 在设计FPGA的I2C总线IP核时,首先需要理解I2C总线的工作原理和规范。I2C总线由两条信号线(SDA和SCL)组成,其中SDA线用于数据传输,SCL线用于时钟同步。在I2C总线上,有一个主设备(Master)和一个或多个从设备(Slave)。主设备负责发起通信,并控制总线上的数据传输。 为了设计FPGA的I2C总线IP核,我们需要考虑以下几个方面: 1. I2C控制器:IP核需要实现I2C控制器的功能,包括生成起始信号、发送和接收数据、发送和接收确认信号等。控制器需要实现协议的各个阶段,如起始条件、地址传输、读写操作和停止条件等。 2. 时钟和状态机:IP核需要使用FPGA的时钟资源,并设计状态机来控制I2C总线的通信流程。状态机可以根据I2C协议的状态转换规则来进行设计,以保证通信的正确性和稳定性。 3. 数据缓存和寄存器:IP核需要提供数据缓存和寄存器,用于暂存发送和接收的数据。缓存和寄存器可以使用FPGA内置的存储单元来实现,以提高数据传输的效率和可靠性。 4. 错误检测和错误处理:IP核需要实现错误检测和错误处理机制,以确保通信的可靠性。例如,可以检测到通信超时、传输错误或其他异常情况,并在发生错误时采取适当的措施,如重新发送数据或发出错误提示。 设计完FPGA的I2C总线IP核后,可以将其集成到FPGA的整体设计中,以实现其他设备的I2C通信。这个IP核可以提供给其他设计人员使用,使得他们可以方便地在FPGA上实现I2C总线的功能,并实现其他I2C设备的通信。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值