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

[复制链接]
 楼主| Bblythe 发表于 2025-4-24 07:21 | 显示全部楼层 |阅读模式
主机轮询的时候从机总是反应不过来,软件模拟时序是不是太吃性能了?
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任务优先级过高,可能阻塞其他实时任务;若优先级过低,则可能因调度延迟导致时序错误。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

145

主题

5717

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部