一、I2C Hs-mode
HS mode 为什么单独讲解?因为高速模式和其他模式有很多不一样的地方。
- 速度高达3.4MHz。
- Hs 模式下,主机 SDAH 有一个开漏输出 buffer, SCLH 有一个输出的开漏极下拉和电流源上拉电路,这个电流源电路缩短了 SCLH 信号的上升时间。任何时侯在 Hs 模式只有一个主机的电流源有效。
- 在多主机系统的 Hs 模式中,不执行仲裁和时钟同步,以加速位处理能力。仲裁过程一般在前面用 F/S 模式传输主机码后结束。
- Hs 模式主机器件以高电平和低电平是 1:2 的比率产生一个串行时钟信号。解除了建立和保持时间的时序要求。
- 还可以选择 Hs 模式器件有内建的电桥。在 Hs 模式传输中,Hs 模式器件的高速数据 SDAH 和高速串行时钟 SCLH 线通过这个电桥与 F/S 模式器件的 SDA 和 SCL 线分隔开来。减轻了SDAH 和 SCLH 线的电容负载,使上升和下降时间更快。
- Hs 模式从机器件与 F/S 从机器件的唯一差别是它们工作的速度。Hs 模式从机在 SCLH 和 SDAH输出有开漏输出的缓冲器。SCLH 管脚可选的下拉晶体管可以用于拉长 SCLH 信号的低电平,但只允许在 Hs 模式传输的响应位后进行。
- Hs 模式器件的输出可以抑制毛刺,而且 SDAH 和 SCLH 输出有一个 Schmitt 触发器。
- Hs 模式器件的输出缓冲器对 SDAH 和 SCLH 信号的下降沿有斜率控制功能。
- 调整了串行数据 SDA 和串行时钟 SCL 信号的时序。没有必要与其他总线系统如 CBUS 兼容,它们不能在增加的位速率下工作。
- 如果快速模式器件的电源电压被关断,SDA 和 SCL 的 I/O 管脚必须悬空,不能阻塞总线。
- 连接到总线的外部上拉器件必须调整以适应快速模式 I2C 总线更短的最大允许上升时间。对于负载最大是 200pF 的总线,每条总线的上拉器件可以是一个电阻;对于负载在 200pF~400pF 之间的总线,上拉器件可以是一个电流源(最大值 3mA)或者是一个开关电阻电路,如下图:
只有 Hs 模式器件的系统的物理 I2C 总线配置。
(可选)串联电阻器 Rs 保护 I2C 总线设备的 I/O 免受总线上的高压尖峰影响,并将振铃和干扰降至最低。
右下角两个设备,不光是从设备,也可以当主设备。这种期间有一个 MCS 电流源。如果总线上器件较多,会导致总线电容较大,拉升总线电压相当于给电容充电,这需要时间,这会导致波形上升沿过缓,所以加了电流源可以使上升沿很快。
1、data transfer format in Hs-mode
(1)START condition (S)
(2)8-bit master code (0000 1XXX)
(3)Not-acknowledge bit (A)
2、在Hs模式下启用电流源上拉电路
3、在下一次重复启动条件后,依旧在 Hs-mode
由上图可以看出,在快速模式(FS mode)下发送一个 Master code,然后切换到高速模式(HS mode),发送从设备地址。
在第一阶段 FS mode 时候,发送主设备的编码,这时候会进行仲裁,因此高速模式阶段没有时钟同步和仲裁。
上图为完整通信波形示意图。先在快速模式下发送主机地址,不需要从机回复。然后切换到高速模式,会发送一个 reSTART,然后再发送自己想要操作,读或者写。