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.

[参考译文] BQ78350-R2-DEVICE-FW:重新建立 SMBus 通信后、GPIO 输出值会复位为默认值

Guru**** 2609895 points
Other Parts Discussed in Thread: BQ78350, BQSTUDIO, EV2400

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1112626/bq78350-r2-device-fw-gpio-output-values-get-reset-to-default-values-after-reestablishing-smbus-comm

器件型号:BQ78350-R2-DEVICE-FW
主题中讨论的其他器件:BQ78350BQSTUDIOEV2400

我将 BQ78350 GPIO 配置设置如下:



在我们的操作过程中、有时我们会向0x2D 寄存器写入数据、以将 GPIO 设置为0x0C。
我发现、发出该命令后、0x2C 中的值确实反映了所需的0x0C 值。 但经过一段时间后、似乎它被重置为默认值0x06。 当我移除并重新连接 SMBus 通信链路时、这一点尤其可重复。

想知道我们是否应该定期发出所需的值、否则它将重置为默认值? 导致这种情况的原因是什么?

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

    您好、Min、

    对于 GPIO 配置寄存器、您似乎已将 LED3、LED2、LED1设置为活动(0x0E)。 GPIO 类型将这些引脚设置为开漏(0x0E)。

    对于 GPIO 输出使能寄存器、LED3和 LED1作为输出、LED2作为输入(0x0A)。

    对于默认输出使能寄存器、您要将 LED3设置为默认低电平、将 LED2设置为默认高电平(但这是输入、而不是输出)、并将 LED1设置为低电平。 (0x06)

    因此、您的 GPIOControl 命令(0x2D)尝试设置 LED3和 LED2、但 LED2配置为输入。  

    此致、

    Matt

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

    是的、我知道 LED2设置为输入、这是我的意图。 如果我错了、请纠正我的错误、但由于 LED2设置为输入、因此它应忽略我向0x2D 寄存器发出的任何命令。 这似乎与我迄今为止在 GPIO 方面的经验一致。

    无论 LED2如何、我的真正问题是 为什么在我将0x0C 写入寄存器0x2D 并通过读取0x2C 进行确认之后、所有内容都设置回0x06 (默认值)?

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

    您好、Min、

    是否使用过 RESET 命令? 此命令将输出重置为闪存的默认值。

    此致、

    Matt

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

    我不确定您是否理解我的问题。

    我说 GPIO 值会重置为默认值、这是没有明显原因的。 (我不发出 RESET 命令)

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

    您好、Min、

    您说过、当您重新连接 SMBus 通信链路时会发生这种情况吗? 您知道 SMBus 连接后会在它上发送什么命令吗?

    谢谢、

    Matt

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

    我刚使用 BQstudio、打开了扫描功能。 任何操作都不应发出 GPIO 设置命令

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

    您好、Min、

    我以前从未见过此问题的报告。 可能会尝试关闭扫描功能、偶尔检查 GPIO 状态? 扫描功能在 SMBus 上发送大量流量。

    Matt

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

    我可以尝试在我的一侧做更多的实验。
    但这最初是从我们的实际产品中发现的、当 GPIO 设置为0x0C 时、实际产品实际上不加电。 但经过一段时间后、它以磁力的方式设置回0x06。 然后、我尝试使用 BQstudio 和 EV2400重现(成功)问题。
    您是否建议唯一可能发生这种情况的方法是 bq78350被某种程度的复位、或者0x2D 寄存器被意外写入默认值?

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

    您好、Min、

    Matt 在周五下班。

    是的、据我所知、发生这种情况的唯一方法是器件被复位或0x2D 寄存器被意外写入。 但我非常怀疑每次写入它的默认值都是"意外"的。

    谢谢、
    Caleb