找回密码
 立即注册
查看: 139|回复: 6

关于AI8G1K17使用I2C做从机的时序

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-07-07 10:23:43
已绑定手机

1

主题

2

回帖

21

积分

新手上路

积分
21
发表于 2025-7-7 10:23:43 来自手机 | 显示全部楼层 |阅读模式
AI MCU从机时序图如下:
IMG_3686.bmp
IMG_3688.bmp
ACK完成后SDA较SCL前会误认为STOP

其他从机时序图如下:
IMG_3687.bmp
IMG_3689.bmp
ACK完成后SDA在SCL拉低后

请问哈以上有什么办法让SDA延时一下确保完美在SCL低电平后上拉至高
回复

使用道具 举报 送花

3

主题

252

回帖

-785

积分

等待验证会员

积分
-785
发表于 2025-7-7 10:28:00 | 显示全部楼层
关于STC8G1K17使用I2C作为从机时的时序问题,您提到在ACK应答完成后,SDA信号较SCL提前上拉至高电平,可能被误认为是STOP条件。而其他从机设备在ACK后,SDA会在SCL下降沿之后才上升,因此不会产生误判。

针对该问题,我们建议采取以下几种方法来确保SDA在SCL低电平之后再上拉至高电平,从而避免误判STOP条件:

1. 软件延时控制SDA上升沿
在I2C从机应答(ACK)完成后,通过软件延时控制SDA信号的上升沿,确保其在SCL下降沿之后才开始上升。此方法适用于对时序要求较高的应用场景。

实现方式:
在发送ACK信号后,等待一定时间(如5μs~10μs),再将SDA置为高电平。
延时时间可根据实际测试调整,以满足I2C总线标准的时序要求。

优点:
实现简单,无需额外硬件支持;
可灵活调整延时时间。

缺点:
需要精确控制延时时间,否则仍可能影响通信稳定性。

2. 使用I2C模块的硬件延时功能
部分MCU提供I2C模块的硬件延时配置,可通过设置寄存器控制SDA与SCL之间的时序关系。

操作步骤:
查阅STC8G1K17的I2C模块手册,确认是否支持SDA延迟控制;
若支持,配置相关寄存器,设定SDA在SCL低电平后上升。

优点:
精确控制时序,提高系统稳定性;
减少软件干预,提升实时性。

缺点:
可能受MCU硬件限制,不同型号支持情况不同。

3. 采用外部逻辑电路进行信号整形
若软件和硬件手段难以满足需求,可考虑使用外部逻辑门或专用I2C缓冲器对SDA信号进行处理,确保其在SCL低电平后上升。

实现方式:
使用一个与门或触发器,在SCL为低时允许SDA上升;
或使用I2C隔离芯片(如PCA9306、TCA9548等)进行信号隔离与延时处理。

优点:
灵活且稳定,适用于复杂时序需求;
可有效避免误判STOP条件。

缺点:
增加硬件成本和设计复杂度。

4. 优化主控端I2C时序
如果问题源于主控端的时序不规范,也可建议主控端适当调整SCL与SDA的时序关系,确保SDA在SCL下降后才上升。

建议:
检查主控端I2C驱动代码,确保ACK响应后SCL先下降,再释放SDA;
若主控端支持,可启用I2C时序校准功能。

总结
对于STC8G1K17作为I2C从机时,ACK完成后SDA提前上升的问题,推荐优先采用软件延时控制或硬件延时配置的方法,确保SDA在SCL低电平后才上升。若上述方法无法满足需求,可考虑引入外部逻辑电路进行信号整形。建议根据实际应用环境选择合适的解决方案,并结合实测验证效果。

如需进一步技术支持,欢迎联系国芯人工智能团队,我们将为您提供详细的技术文档与调试建议。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:512
  • 最近打卡:2025-07-30 06:22:07
已绑定手机

87

主题

5525

回帖

1万

积分

超级版主

DebugLab

积分
10105
发表于 2025-7-7 12:14:54 | 显示全部楼层
从机一定是接收到下降沿后才释放总线(高电平)的,不存在逻辑错误,实际是测量原因导致的
根据逻辑分析仪界面猜测是旧版Logic软件,猜测是二十元左右的仿saleae逻辑分析仪(CY7C68013),这种逻辑分析仪的0通道接有LED,0通道有延迟,存在通道间不同步问题,请使用非0通道测试,如1、2通道
建议使用示波器观察一下
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-07-07 10:23:43
已绑定手机

1

主题

2

回帖

21

积分

新手上路

积分
21
发表于 2025-7-7 12:37:00 来自手机 | 显示全部楼层
都是同一分析仪测试其他设备I2C就不会呢

点评

可能是上拉电阻不一致,上拉较强,上升沿速度快 这个时间差比这个廉价逻辑分析仪0通道延迟大,就会造成逻辑分析仪测量结果有误 建议使用示波器测量看看  详情 回复 发表于 2025-7-7 12:42
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:512
  • 最近打卡:2025-07-30 06:22:07
已绑定手机

87

主题

5525

回帖

1万

积分

超级版主

DebugLab

积分
10105
发表于 2025-7-7 12:42:21 | 显示全部楼层
mczt*** 发表于 2025-7-7 12:37
都是同一分析仪测试其他设备I2C就不会呢

可能是上拉电阻不一致,上拉较强,上升沿速度快
这个时间差比这个廉价逻辑分析仪0通道延迟大,就会造成逻辑分析仪测量结果有误
建议使用示波器测量看看
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-07-07 10:23:43
已绑定手机

1

主题

2

回帖

21

积分

新手上路

积分
21
发表于 2025-7-7 12:55:53 来自手机 | 显示全部楼层
从机都无上拉,主机有统一的上拉电阻,STC内部上拉也断开,工作都可以,就是有点不稳定

下面是两种的时序图
IMG_3694.jpeg
IMG_3695.jpeg IMG_3697.jpeg

点评

用示波器测量看看  详情 回复 发表于 2025-7-9 15:55
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:512
  • 最近打卡:2025-07-30 06:22:07
已绑定手机

87

主题

5525

回帖

1万

积分

超级版主

DebugLab

积分
10105
发表于 2025-7-9 15:55:02 | 显示全部楼层
mczt*** 发表于 2025-7-7 12:55
从机都无上拉,主机有统一的上拉电阻,STC内部上拉也断开,工作都可以,就是有点不稳定

下面是两种的时序 ...

受测量仪器性能限制,测量不准确
请使用高性能仪器测量
或使用示波器测量
DebugLab
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-7-31 03:39 , Processed in 0.115212 second(s), 88 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表