TMS320F280039: 关于PMBus中命令宏定义的疑惑

Part Number: TMS320F280039

TI专家您好!

我在以下链接看到你们的一篇关于PMBus协议的Application Note:

Software Implementation of PMBus over I2C for TMS320F2803x

我下载源代码后看到PMBus.h的一个宏定义有些奇怪,如下图所示,编译器也出现了警告,这个宏表示什么?为什么要这样定义?

另外,我还看到在PMBusSlave.c文件中有如下的定义,请问那个0x00(dummy byte)和0x0(红色部分标注),这两个命令有什么不同?

希望能得到您的回复,谢谢!

  • 您好,

    已经收到了您的案例,调查需要些时间,感谢您的耐心等待。

  • 这个应用程序说明和代码是很久以前写的,所以我不确定,但以下是我对此的理解:

    / GENERAL CALL应该是宏定义后的注释,正确的应该是 #define PAGE 49 // GENERAL CALL

    这个定义实际上并没有直接在代码中的任何地方使用,所以这可能就是为什么错误从未被捕获的原因。

    命令字节定义了PMBus_Commands数组的索引,以获取正确的命令字节。看起来没有等于零的实际定义,因此放置在PMBus_Commands的第0个索引中的dummy数据实际上从未被使用过。可能只是希望命令索引从1开始,而不是从0开始(一种风格选择)。

  • Taylor先生您好!非常感谢您的回复。我有一个疑惑,就是PAGE指令为0x0,也就是数组中的索引49,和dummy byte的值相同,那如果我发送PAGE指令,那该指令会不会被当作dummy数据?如果我将索引0(即数组中的dummy byte)改为和其他命令不重复的值来作为dummy byte,例如0xFF,这样应该也可以吧?

  • 也可以,但没有必要就不要改了。

  • 好的,谢谢了!