I2C 的压摆率是多少?

电器工程 图片 C i2c 软件 c18
2022-01-15 10:20:39

我正在使用 C18 编译器的内置函数在 PIC18 上配置 I 2 C,如文档第 2.4 节所述:

void OpenI2C2( unsigned char sync_mode,
    unsigned char slew );

我不确定我应该怎么做slew我可以从两个选项中进行选择,定义在i2c.h

  • SLEW_OFF: 在 100 kHz 模式下禁用转换速率
  • SLEW_ON:为 400 kHz 模式启用压摆率

第 257 页寄存器 15-1的数据表中,对这两个选项进行了更详细的解释:

  • 1 = 标准速度模式(100 kHz 和 1 MHz)的压摆率控制禁用
  • 0 = 为高速模式 (400 kHz) 启用压摆率控制

虽然我不明白 - 我有几个问题:

  1. 什么摆率?

  2. 对我来说,这两个选项没有意义——如果我想禁用 400kHz 的压摆率并启用 100kHz 怎么办?为什么是这样?

  3. 我应该什么时候选择SLEW_OFF,什么时候选择SLEW_ON

1个回答

摆率是信号从低到高的变化速度,反之亦然。通过限制这种突然的转变,您可以减少信号反射引起的振铃,并限制信号线之间的串扰。

但是,它的工作方式是,在 100kHz 时,信号速率非常慢,压摆率并不重要。在 400kHz 时,您可以通过限制它来修复其他有问题的电路;但是当你达到 1MHz 时,你真的需要你能得到的所有转换速度,所以你只需要做好信号匹配并更仔细地布线你的线路。

有问题的位无非是启用或禁用该功能。其余的只是建议。速度在括号中,因为这只是一个建议。