Bblythe 发表于 2025-4-24 07:21

软件I2C用在从机上是不是不靠谱?

主机轮询的时候从机总是反应不过来,软件模拟时序是不是太吃性能了?

Clyde011 发表于 2025-4-24 07:24

有些主机对ACK要求特别严格。

公羊子丹 发表于 2025-4-24 07:25

感觉软件模拟做主机还行,从机真不行。

周半梅 发表于 2025-4-24 07:26

你是中断模拟的还是定时器驱动的?

帛灿灿 发表于 2025-4-24 07:27

会不会是响应速度跟不上主机?

童雨竹 发表于 2025-4-24 07:28

我用硬件I2C才勉强稳定。

万图 发表于 2025-4-24 07:28

软件I2C容易出应答问题。

Wordsworth 发表于 2025-4-24 07:29

拿逻辑分析仪抓一波看看。

Bblythe 发表于 2025-4-24 07:30

是不是拉电阻选得太小了?

Pulitzer 发表于 2025-4-24 07:31

用DMA能不能优化一下?

Uriah 发表于 2025-4-24 07:32

实时性要求高还是别用软件版。

风凉 发表于 2025-5-18 16:48

SCL信号响应延迟,若CPU被中断或高优先级任务占用,可能无法及时响应SCL时钟边沿,导致从机时钟不同步(Clock Stretching失效)。

捧一束彼岸花 发表于 2025-5-18 16:55

软件I2C通过GPIO模拟SCL/SDA信号,依赖CPU循环和延时函数控制时序,无法像硬件I2C(如STM32的I2C外设)那样精确生成时钟脉冲。

失物招領 发表于 2025-5-18 17:02

STM32C0的硬件I2C外设已被占用(如同时连接多个传感器)。芯片型号无硬件I2C(如部分超低成本MCU)。软件I2C可作为替代方案,但需权衡可靠性

故意相遇 发表于 2025-5-18 19:00

SDA信号竞争:在多主机系统中,若多个主机同时尝试通信,软件I2C可能无法正确处理总线仲裁,导致数据冲突。

春日负喧 发表于 2025-5-18 19:30

问题根源,软件I2C依赖CPU轮询或中断检测总线状态,若CPU忙于其他任务(如RTOS调度、中断处理),可能错过SCL边沿或SDA状态变化。

她已醉 发表于 2025-5-18 20:01

数据丢失,若从机未及时检测到起始条件或地址匹配,可能漏读数据。

西洲 发表于 2025-5-18 23:00

ACK/NACK错误,若从机在发送ACK/NACK时被中断打断,可能导致总线卡死

白马过平川 发表于 2025-5-19 10:00

.软件I2C需要持续占用CPU资源检测总线状态,尤其在高速模式(如400kHz)下,CPU需频繁轮询或中断处理。

温室雏菊 发表于 2025-5-19 23:00

从机会影响其他任务:在RTOS系统中,若软件I2C任务优先级过高,可能阻塞其他实时任务;若优先级过低,则可能因调度延迟导致时序错误。
页: [1] 2
查看完整版本: 软件I2C用在从机上是不是不靠谱?