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.

[参考译文] UCD90320:黑盒字节计数

Guru**** 2538955 points


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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1052271/ucd90320-black-box-byte-count

器件型号:UCD90320

您好!

 对于 black-box_FAULT_INFO (B5h)命令、要读取的正确字节数是多少? 当尝试读取19 (0x13)个字节时、在总线上获得错误。 根据数据表/编程手册、似乎19是正确的数字、并且第一个字节应设置为 byte_count 值、这是正确的吗? 发送 COUT_MODE (20h)命令时、该命令有效并检索单个字节。

谢谢、
Delaney

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

    你(们)好

    它们具有不同的命令和不同的协议。

    请参阅 http://smbus.org/specs/smbus20.pdf 的 SMBus 规范5.5.7 、了解如何发送块读取命令。

    此致

    Yihe

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

    谢谢 Yihe、  

    i2c 驱动器的错误为-1、"不允许操作"。 您以前看过吗?

    按照规范的过程:写入值0xB5的一个字节、然后读取0x13字节。 这是正确的、还是我缺少了什么?  

    谢谢、  
    Delaney

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

    你(们)好

    这不是正确的。 I2C 主机驱动程序应遵循 SMBus 规范中的图5-18列表。

    此致

    Yihe

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

    您好、Yihe、  

    为了澄清我的理解、WRITE 命令应遵循图5-18、而 READ 命令应遵循图5-20、对吧? 因此、在本例中、按照规范读取黑盒信息、byte_count = 0x13或0x12、因为 Block_Box_FAULT_info 的 byte_count 为18?

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

    后续问题:此读操作是否有 PEC? 我们在读取时是否需要考虑该额外位?  

    驱动程序 正在精确 地写入命令代码、然后读取1+18字节(byte_count +其余18位)。 在读取其余18个字节之前、没有机会检查返回的 byte_count。 这是正确的过程吗?

    谢谢、  
    Delaney

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

    你(们)好

    字节计数不包括本身、请将字节计数设置为0x12。 但主机需要完全读取19字节。

    PEC 是可选的。  您可以读取或不读取、如果您读取、请从主机完全读取20个字节。

    此致

    Yihe

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

    即使我们正在读取数据、也需要设置 byte_count、对吧?  

    这些命令用 C 语言代码编写、尝试读取黑盒故障信息时出错、但运行 Vout_mode 命令时未给出错误。  

    谢谢、  
    Delaney

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

    你(们)好

     您必须按照图5-18将字节计数设置为0x12。  

    Vout_mode 具有不同的协议、存在读取黑盒故障。  

    最好有一个示波器来捕获波形、并将其与图5-18进行比较以查看差异。

    此致

    Yihe

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

    我很困惑、为什么我们在尝试从 black_box_FAULT_INFO 读取时遵循图5-18。 这不应该是图5-20吗?

    如果我在本地结构中设置 byte_count、则无论如何不会将其发送到 UCD。 查看图5.20、我没有看到主机发送 byte_count、我看到它从器件读取 byte_count。   

    还可以按照进行阅读吗?

    是否有任何有关如何读取 black_box_FAULT_INFO 的示例代码?

    谢谢、  
    Delaney

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

    你(们)好

    应用程序需要遵循5-19或5-20、直至 PEC 是否被读取。

    该器件应根据5-19或5-20读取19个字节。

    这是交易  

    START + ADDR/W+ACK + XB5+ACK + RSTART+ADDR/R+(读取19字节或20字节)+ NACK + STOP

    此致

    Yihe

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

    您好、Yihe、  

    是的、这就是命令的设置方式。 但是、Linux i2c 驱动程序返回不允许操作的状态、因此 RTRTRT 及其后的所有内容根本不会输出到总线上。  

    您以前看过吗? 您对此有什么建议吗?

    谢谢、  

    Delaney

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

    当客户运行代码时,他们会从 Linux i2c 驱动程序中将错误跟踪返回 ioctl()。 它们仅在尝试从 black_box_FAULT_INFO 读取时收到此错误、而不是在运行命令从 VOUT_MODE 读取时收到此错误。  

    sdA/SCL 上的上拉电阻是否可能太弱?