This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TPSM846C23EVM-806:I2C 接口

Guru**** 2928980 points

Other Parts Discussed in Thread: TPSM846C23, TPSM846C23EVM-806

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1557382/tpsm846c23evm-806-i2c-interface

器件型号:TPSM846C23EVM-806
主题中讨论的其他器件:TPSM846C23

工具/软件:

你好。

我们将 在新的评估板设计中使用 TPSM846C23。  

在验证过程中、我订购了 TPSM846C23EVM-806 模块来验证其 i2c 功能、但无法正常运行。 我一直使用 Raspberry PI 作为 I2C 接口并控制电压、但无法使 2 个器件之间的通信正常工作。

Q1: TPSM846C23EVM-806 表示它是一款兼容 PMBus 的封装。 我认为它应该与 I2C 配合使用、因为它们具有两种相同的协议?

问题 2:Raspberry PI 是否可以作为主 I2C 来验证此模块? 如果没有... 我可以使用任何其他设备/接口来验证它?  

或者、我是否遗漏了本模块的任何重要技术细节以使其正常工作?

谢谢、

Jay

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jay:

     TPSM846C23 是一款 PMBus 器件、因此您需要确保使用 PMBus 1.3 协议进行通信。 该器件通常的采样方式是订购您已完成的 EVM、但此外、您可以订购 USB2GPIO2 以将器件连接到计算机并下载我们的 GUI 、从而访问所有数字功能。

    这是 USB2GPIO2 软件狗在 EVM 中的连接方式:

    https://www.ti.com/lit/ug/slvub26d/slvub26d.pdf#page=7 

    这样、您无需进行任何编码、也无需担心以特定方式写入、因为该设置与我们的 GUI 一起自动识别 TPSM846C23 器件、并显示所有命令以及读取的值。 它具有很多功能、例如用于跟上 IOUT/IOUT/TEMP/TEMP VOUT 等的 MONITOR 选项卡、用于跟踪特定错误的状态选项卡以及所有命令页面:

    我还没有尝试覆盆子 PI、但上述方法应该可行。  

    此致、

    Eileen

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Eileen:

    感谢您的回答。

    我知道 USB2GPIO2 和软件 GUI。 但是、我们的电路板设计已经完成、我们无法也不打算使用 gui/usb2gpio。

    我当前的设置是连接 TPSM846C23 和 Raspberry Pi(或任何 i2c 接口)的 SDA、SCL 和 GND。  

    您是否尝试过或者它是否可以与其他 i2c 接口模块配合使用? 我想在不使用 GUI/usb2gpio 的情况下验证并控制电压输出。

    谢谢、

    Jay

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jay:

    如果您可以复制 USB2GPIO 的设置并通过 Raspberry PI 执行 GUI 的操作、我认为它应该有效。 PMBus 是一种基于 I2C 接口构建的通信协议、因此在技术上、它应该通过一些更改来支持它。

    确保将 PMBus 相关引脚连接到  Raspberry PI 才能正常工作、即 ALERT、DATA、CLK、CNTL(如果在外部设置,则可能不需要这最后一个引脚)。   

    我们没有使用方法的设置/步骤、因为我们仅支持前面提到的设置、但是我可以告诉您注意的几件事是:确保在进行读取/写入时它 遵循 SMBus 格式、这往往与 I2C 不同、另外还要确保遵循器件/PMBus 协议允许的数据速率速度、该器件的频率尤其高达 400kHz。

    DS 不会详细介绍需要写入主数据之外的各个位、但您可以在此处查找协议: https://pmbus.org/  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Eileen:

    由于我们不使用   USB2GPIO、因此 我是否需要为 USB 接口/接头 (P1) 上电以增加 SCL 和 SDA?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jay:

    SDA 应等同于 DATA 引脚、SCL 应等同于 CLK 引脚。 未熟悉直接能力方面的更改、但如果您可以按照 下面的说明进行操作、则应该可以:

    我忘记提到的另一件事是 I2C 通信为特殊功能保留了某些地址(不知道是哪些地址)、因此在通过 ADDR0 和 ADDR1 电阻器选择器件地址时要小心。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Eileen:

    是的、我知道这些和 SDA SCL 引脚。 每当我测量 SDA 和 SCL 引脚时、就看不到任何电压、通常为 3V 至 5V。  

    它是否需要在某个位置上电?  

    我只向 TB1 Vin 施加 12V 电压来为模块加电。

    谢谢、

    Jay

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jay:

    先前我添加了这些引脚的电压图像。 通常、我们具有上拉电阻器以确保电压保持在低电平/高电平、但这适用于我们的设置。 我认为 SDA 和 SCL Raspberry PI 线路应该具有内部上拉电阻器、在这种情况下、您可能不需要添加内部上拉电阻器。 如果您不确定是否可以尝试在外部添加一些内容。 如果线路没有上拉电阻、它们将悬空、您将无法读取电压。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Eileen:

    很抱歉、我忽略了您分享的第一张图片。 在 USB 接口的引脚 7(即 CNTRL 引脚)上添加了一个 3.3V 电源、该电源也与 PGOOD 连接。 3.3V 是否来自外部电源?

    看一下原始原理图...  芯片的 BP3 引脚已经有一个 3.3V 电压用于 CNTRL 和 PGOOD。

    谢谢、

    Jay

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jay:

    我之前连接的图像来自 2PH EVM 原理图、它们将 3V3 命名为 BP3、这应该是相同的。 无外部源。

    另一方面、您提到  SDA 和 SCL 引脚通常为 3V 至 5V。 确保它不会高于绝对最大值、因为它很接近:

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Eileen:

    这点已经开始了。

    Raspberry PI I2C 也具有 3.3V - 5V 范围、因此它应该没有问题。 我现有的问题是我无法从 TPSM 模块的 SDA 和 SCL 引脚获得任何输出电压:(.. Raspberry Pi 的 SCL 引脚的 SDA 使用 3.3V 输出进行验证。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Jay、

    明白了! 在哪里 可以让 SDA 和 SCL 成功处理 DATA 和 CLK? 如果没有、您可能需要上拉电阻器、但我认为 Raspberry PI  在内部应该有一些上拉电阻器。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    到目前为止没有运气。 Im 仍不测量来自 TPSM 数据 TP 和 CLK 的电压。 这可能是它无法通信的原因。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jay:

    我更深入地查看了这个和我们的典型设置。 USB2PIO 用户指南中有一些相关内容可供参考。 在此基础上、看起来 SDA/SCL =数据/CLK 线路具有上拉电阻器来启用这些通信线路。

    我们的 GUI 和 USB2GPIO 设置具有多个上拉电阻器 668Ω、1.1kΩ、2.2kΩ 或开漏选项、但 2.2kΩ (典型速度为 400kHz“快速模式“)可连接到 3.3V 源。 我猜  SDA/SCL 线路是开漏的、因此会拉至低电平。  

    您可以检查 您的 Raspberry PI UG、看看内部是否已包含此功能、以及您是否只需采取一些措施来启用它。

    如果结果正常、请告诉我。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Raspberry PI 具有专为 I2C 构建的 I 内部上拉电阻器。 我也尝试了添加额外的外部,但仍然无法使其正常工作。

    我担心的是、在不使用 USB2PIO 接口的情况下、模块 TPSM i2c 功能可以正常工作?

    谢谢、

    Jay

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    由于 TPSM 为 PMBus、因此器件本身应能够支持 i2c。

    如果在接通线路时出现问题(默认状态)、则可能与连接本身有关上拉电阻值或电压。 一些 Raspberry PI 需要通过库启用/禁用内部上拉/下拉电阻器、这时需要仔细检查 Raspberry PI 默认情况下是否不下拉。 此外、DATA+CLK 引脚与 SCL/SDA 引脚的电压可能存在不匹配、在这种情况下、您可能需要双向逻辑电平转换器来确保两个器件在高电平下读取正确的 V。   

    DS 上给出了 TPSM 值:

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Eileen:

    如前所述、在外部和内部 Rasp-PI 中都已启用上拉电阻器。

    供参考。 其他 i2c 模块,我尝试了与 Raspberry 工作没有问题,除了这个模块. 感谢您的帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jay:

    您是否尝试了 为正确的 V READ 添加双向逻辑电平转换器? Raspberry 和模块可能在电压方面有差异  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jay:

    不用担心! 您说 P1 指的是 NC 引脚 1 吗? 您之前做过什么、现在它可以正常工作?

    就 VOUT_COMMAND 尾数而言、十进制 641 对于 1.199Vout 应该正确。

    有 2 个问题:

    1) 您是否尝试过写入其他命令以查看写入是否在 VOUT_COMMAND 之外进行?  

    2) 能否检查 设备是作为主设备还是从设备读取?

    您可以 通过以下方式进行检查:

      

      

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    在 EVM 原理图和实际 EVM 板上、P1 在引脚 9 下方标记、这告诉我们引脚 9 = CLK 的方向。 但是、正确的引脚配置是颠倒的。 所以,我得把它翻过来。

    关于 2 个问题:
    1.我尝试了写入 VOUT_MIN 和 VOUT_MAX、但进度相同。 没有错误、但模块似乎未收到或确认。
    2.我尝试读取 STATUS_CML、但我得到 0xFF、这表示所有位为 1。

    侧注、我之前遇到的第一个问题是 Raspberry 无法检测到模块。  但现在它可以读取 PMBus 地址= 0x1b、我认为该地址已建立通信。 但是、现在的问题是读取和写入输出电压。 :(

    谢谢、

    Jay

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Eileen:

    我设法写入 VOUT_COMMAND 并立即更改/控制输出电压。 事实证明、模块的写保护功能在默认情况下已启用、必须将其禁用。  

    现在的问题是、每当我尝试直接从 READ_OUT 0x8B 读取原始输出值时、我始终会得到 65535 (0xFFFF) 的原始输出。  

    有什么想法可能会导致这种错误读数?

    谢谢、

    Jay

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jay:

    您是否遇到与另一个 read_..相同的问题。 命令?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的。 似乎无法读取所有寄存器。 我尝试读取 DEVICE_ID、READ_IOT 和读取状态 CML。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    自打开新线程后关闭该线程。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     TPSM846C23DEVM-807:无法读取电压输出