【问题标题】:SMBus v1.1 voltage threshhold valueSMBus v1.1 电压阈值
【发布时间】:2019-03-26 08:26:16
【问题描述】:

我打算使用 PIC18F26K83 并与使用 SMBus 1.1 版的智能电池进行通信。所以从 PIC 的数据表中它说我需要从 RxyI2C 寄存器中为 SMBus 选择适当的输入阈值。位 0 和 1 用于选择该阈值,但没有 SMBus 版本 1.1 的信息(见下文。)。

TH:I2C 输入阈值选择位

11 = SMBus 3.0 (1.35 V) 输入阈值

10 = SMBus 2.0 (2.1 V) 输入阈值

01 = I2C 特定输入阈值

00 = 标准 GPIO 输入上拉,通过 INLVLxy 寄存器启用

在互联网上,我找不到 SMBus v1.1 的输入阈值。所以我的问题是:

SMBus v1.1 的输入阈值电压是多少?或者我应该如何设置相关位才能使用 RxyI2C 寄存器中的 SMBus v1.1?

【问题讨论】:

  • 不是编程问题 - 试试electronics.stackexchange.com ?
  • 嗯,这可能是一个编程问题,但没关系。
  • 是的,我在发表评论之前犹豫了一下 - 很遗憾我们没有嵌入 StackExchange 来解决此类包含电子和编程的问题。
  • 确实不错。

标签: embedded pic i2c smbus


【解决方案1】:

IC PIC18F26K83 的数据表。 声明 IC 支持 SMBus v2.0 和 v3.0。 比较 SMBus v2.0 和 v1.1,在电压方面存在一些差异,但 SMBus v1.1 和 v2.0 上的电气差异应该足够接近,可以一起工作。 至于向后兼容,请注意 SMBus v1.1 的上拉电阻。 SMBus v2.0 的推荐上拉电阻接近标准 I2C,因此不适用于 SMBus v1.1。

因此,在 SMBus 2.0 配置中使用与 SMBus v1.1 兼容的具有上拉电阻的微控制器应该可以正常工作。

以下是我用于实现 SMBus v1.1 的文档的链接。

Smart batteryData

SMBus datasheet for each version of SMBus

ReadThis

【讨论】:

  • 谢谢,是的,我使用 RB1I2C = 0x02;这是 2.1 V 输入阈值。我也用 SMBus v1.1,你觉得 20K 上拉电阻合适吗?
  • 我对 SMBus 的经验证明,SMBus v1.1 上的不同电池具有不同的容差。大多数主机(主设备)可以在更广泛的高态和低态电压范围内正常工作。所以我最好的建议是使用两个电位器从 12-20k 欧姆开始。 20k 欧姆可以正常工作,但微调电阻可能会提供更好的性能。 “15k 可能就足够了”。 (另外,请记住~50cm 是与主设备的最大距离->从设备)
  • 但在这种情况下,我不会在接收缓冲区中获得任何数据,对吧?否则我的传输不会收到 ACK。
  • 好吧。这就是 SMBus 比较棘手的地方。错误的上拉将意味着您不会从电池中获得 ACK'nowledge。或者更糟糕的是,您给电池的信息将不正确。要么电池根本看不到消息,要么更糟.. 数据损坏返回错误数据。如果您之前没有使用过 i2c 和/或 SMBus,我强烈建议您阅读“SmartBatteryDataSpesification”。以及系统管理总线规范和“ReadThis”(Bren-Tronics“实现 SMBus 接口”。)我使用多个“BB-2590/u”电池。 “70791BK,目前”。
  • 是的,我用的是同一个面糊,解决了这个问题。感谢您的指导!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-07
  • 1970-01-01
  • 2020-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多