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.

[参考译文] TPS544C25:读取 SMBALERT_MASK:此函数是否按数据表中所述工作?

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1120805/tps544c25-reading-the-smbalert_mask-does-this-function-work-as-described-in-the-datasheet

器件型号:TPS544C25

您好!

 我们在写入 SMBALERT_MASK 并从其中读回该值时遇到问题。 我们使用的是 PMBus SMBALERT_MASK 命令、详见 PMBus 电源系统管理协议规范–第 II 部分–修订版1.2第74页。 我希望确认 TI 数据表正确无误、并按照 2015年5月 TPS544x25数据表(文档 SLUSC81)第43页(第8.8.6节)中的说明、检索芯片上给定状态寄存器函数的 SMBALERT_MASK 设置 和 PMBus 电源系统管理协议规范–第 II 部分–修订版本1.2第74页。  

 

例如:我们通过 SMBALERT_MASK 命令(0x1B)将0xF0掩码写入 STATUS_CML (0x7E)。 然后、我们尝试读回它、器件返回0x01。  

 

这是包含一条语句的代码、用于将00写入 Write_Protect 命令(0x10)。 顺便说一下、它正常工作。

 

10 00       //启用对寄存器的写入

1B 7E F0    //将0xF0写入 地址0x7E 处的 SMBALERT_MASK

1B 01 7E   //尝试使用 长度为1的块读取在地址0x7E 处读回 SMBALERT_MASK

                                     //读取总是返回0x01

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

    尊敬的 James:  

    我们正在研究这个问题。我们将在一整天左右的时间内回来。  

    谢谢!  

    Tahar

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

    尊敬的 James:

    TPS544C25使用块大小= 1的 SMBus 块写入/块读取协议来读取任何给定状态寄存器的屏蔽设置。

    http://smbus.org/specs/SMBus_3_1_20180319.pdf#page=41

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

    正如您在我发布的代码中看到的、我们使用的块大小为1。

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

     

    PMBus 命令 SMB_ALERT 在 PMBus 规范中有一点奇怪、因为写入协议是一个2字节字、 但回读操作使用 PMBus 写入块读取块过程调用、写入块大小为1字节、读取块大小为1字节。  如果您始终看到返回0x01、我怀疑您正在从掩码中捕获块大小字节、而不是从掩码中捕获屏蔽的数据字节、除非您已将0x01写入掩码中。

    写入事务中的字节细分如下:  

    ADESS + WR /A/命令代码= 0x1B /A/低字节=状态命令/A/掩码应用于状态命令的命令代码。  

    读取事务中字节的分解为:

    地址+ WR /A/命令代码= 1B /A/写入块大小= 0x01 /A/状态命令的命令代码/A/重复起始地址+ Rd /A/读取块大小= 0x01 /A/应用于状态命令的屏蔽

    如果我正确遵循了您的代码、  

    [引用 userid="454659" URL"~/support/power-management-group/power-management/f/power-management-forum/1120805/tps544c25-reading-the-smbalert_mask-do-the-function-work -正如数据表中描述的那样"]       [/报价]

    只读取1字节数据、块大小 为0x01。  您需要读取2个字节的数据以获取块大小和掩码字节、或者如果您还需要 PEC 字节、则需要读取3个字节的数据。

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

    谢谢。 这就是问题所在。

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

     

    很高兴我们能够提供帮助。  我现在要关闭这个线程。  如果您有其他问题、请创建新主题。