sjyxx 发表于 2025-8-1 17:57:09

I2C时序要求表

我需要STC8H系列的I2C的时序要求表


国芯人工智能 发表于 2025-8-1 17:58:00

尊敬的用户,您好!

感谢您对STC8H系列单片机的关注与支持。关于您提到的I2C时序要求表,以下为STC8H系列MCU的I2C接口主要时序参数说明,供您参考:

STC8H系列I2C时序要求

STC8H系列MCU内置I²C(Inter-Integrated Circuit)总线接口,支持标准模式(100 kbps)和快速模式(400 kbps),部分型号支持高速模式(3.4 Mbps)。以下是I²C通信的基本时序要求及关键参数:

1. I²C基本时序结构
I²C协议基于主从架构,主设备发起通信,从设备响应。其基本时序包括:
起始信号(Start Condition):SCL为高电平时,SDA由高变低。
数据位传输:每个数据位在SCL上升沿被采样,数据位为8位,高位在前。
应答信号(ACK):主设备在第9个时钟周期拉低SDA,表示接收成功;若未拉低,则为NACK。
停止信号(Stop Condition):SCL为高电平时,SDA由低变高。

2. 时序参数要求(典型值)

| 参数 | 标准模式 (100 kbps) | 快速模式 (400 kbps) | 高速模式 (3.4 Mbps) |
|------|---------------------|---------------------|----------------------|
| SCL频率 | ≤ 100 kHz | ≤ 400 kHz | ≤ 3.4 MHz |
| 起始信号建立时间(tSU;STA) | ≥ 4.7 μs | ≥ 0.6 μs | ≥ 0.1 μs |
| 起始信号保持时间(tHD;STA) | ≥ 4.0 μs | ≥ 0.6 μs | ≥ 0.1 μs |
| 数据保持时间(tHD;DAT) | ≥ 1.5 μs | ≥ 0.1 μs | ≥ 0.05 μs |
| 数据建立时间(tSU;DAT) | ≥ 1.5 μs | ≥ 0.1 μs | ≥ 0.05 μs |
| 停止信号建立时间(tSU;STO) | ≥ 4.0 μs | ≥ 0.6 μs | ≥ 0.1 μs |
| 停止信号保持时间(tHD;STO) | ≥ 4.0 μs | ≥ 0.6 μs | ≥ 0.1 μs |
注:以上参数为I²C协议标准要求,实际使用中需结合具体器件手册确认。

3. STC8H系列I²C特性说明
支持硬件I²C模块,具备自动应答功能。
可配置I²C地址匹配,支持多主设备通信。
提供I²C中断、DMA支持,适用于复杂通信场景。
电压兼容性:支持1.8V至5.5V宽电压范围。

4. 使用建议
在设计PCB时,建议将SDA和SCL引脚远离高频信号线,以减少干扰。
若使用外部上拉电阻,请根据总线速度选择合适的阻值(一般为4.7kΩ)。
对于高速模式(3.4 Mbps),建议使用屏蔽线或缩短布线长度,确保信号完整性。

如需获取更详细的I²C时序图或寄存器配置说明,建议查阅STC官方提供的《STC8H Series Datasheet》或《STC8H Series User Manual》,其中包含完整的I²C模块寄存器定义及时序图示。

如您有进一步技术问题,欢迎随时联系国芯人工智能技术支持团队,我们将竭诚为您服务。

祝工作顺利!
国芯人工智能 技术支持团队

[本文内容由国芯人工智能辅助生成,仅供参考]

sjyxx 发表于 2025-8-1 19:43:40

人工智能生成的数据保真吗?两份文档也没找到,给个链接吧。

sjyxx 发表于 2025-8-2 14:53:11

国芯人工智能 发表于 2025-8-1 17:58
尊敬的用户,您好!

感谢您对STC8H系列单片机的关注与支持。关于您提到的I2C时序要求表,以下为STC8H系列M ...

你好,两份文档并没有找到,请问有没有链接,我要在数据手册内能直接看到。最好还带上芯片IO的寄生电容

soma 发表于 2025-8-2 17:32:24

i2c时序要求看i2c芯片数据手册,stc8硬件i2c的如图,软件就是自己定义了。


sjyxx 发表于 2025-8-4 09:29:17

soma 发表于 2025-8-2 17:32
i2c时序要求看i2c芯片数据手册,stc8硬件i2c的如图,软件就是自己定义了。

如果STC8H 设定主频是35M,设定MSSPEED=18, I2C总线速度=437.5Khz,所有的建立时间=所有的保持时间=24/(35*10^6)≈0.69us? 是这样理解吗?

王昱顺 发表于 2025-8-4 09:40:12

sjyxx 发表于 2025-8-4 09:29
如果STC8H 设定主频是35M,设定MSSPEED=18, I2C总线速度=437.5Khz,所有的建立时间=所有的保持时间=24/(3 ...

是的,所有的建立保持时间都是一致的,且与MSSPEED有关


sjyxx 发表于 2025-8-4 09:55:19

王昱顺 发表于 2025-8-4 09:40
是的,所有的建立保持时间都是一致的,且与MSSPEED有关

好的,我们这边有客户反馈,使用STM32F1、STM32F7系列的作为I2C总线,I2C总线=400Khz的情况下,从机输出的数值一旦大于127很容易出现I2C挂死的现象。

我在使用STC8H1K作为主机的情况,I2C速度=400K,未能发现此情况。
在使用客户提供的板子上跑,确实能够复现出来,且把I2C_BUFFER数组从xdata改到idata能大幅度减轻此现象。难道真的是因为例程DEMO里放在xdata导致取值时间临界导致的?

sjyxx 发表于 2025-8-4 10:22:47

王昱顺 发表于 2025-8-4 09:40
是的,所有的建立保持时间都是一致的,且与MSSPEED有关

好的,谢谢。

我这边有客户反馈,使用某32的F1系列和F7系列会出现STC8H8K(35M主频)做从机,I2C=400K情况下,从机输出数值高于127极度容易出现I2C总线挂死的现象。

我这边使用客户板子能够复现此情况。使用STC8H1K做主机未能出现。

在把从机的I2C_Buffer数组从xdata改到idata后,使用客户板子(未更改任何东西)出现挂死现象急剧下降,能够长时间运行。

难道真的因为xdata取值导致了时序处于临界状态?可是从波形上没能看到这个现象,时序都是正常的。

神农鼎 发表于 2025-8-4 13:23:57

1, 放慢;2,打开内部 上拉电阻,延时1mS再操作
页: [1] 2
查看完整版本: I2C时序要求表