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.

[参考译文] TPS6593-Q1:将 GPIO3配置为 nsleep2

Guru**** 2493565 points
Other Parts Discussed in Thread: AM62A7

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1466275/tps6593-q1-configuragpion-of-gpio3-as-nsleep2

器件型号:TPS6593-Q1
主题中讨论的其他器件:AM62A7

工具与软件:

您好!

我们需要启用 PMIC 的深度睡眠模式、并使 GPIO3保持深度睡眠使能和禁用功能。
我们使用 AM62A7电路板和该 PMIC。 我们可以如何以及在哪里配置它。
我们使用的是 tps6594-core 和 tps6594-i2c 的默认驱动程序。

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

    您好、Alok、

    指向指南的链接

    在用户指南第7节中、对于应用:

    BR、

    尼古拉斯·麦克纳马拉

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

    您好、Nicholas:

    我阅读了相关内容、并实施了本用户指南中所述的一切内容。  
    下面我将添加使其进入 S2R 状态的命令  
    所以、
    首先、我检查了 INT_MISC 寄存器、该寄存器具有 BIST_PASS_INT、因为在注意中提到了 它应该被清除。

    root@am62axx-evm:/opt/edgeai-gst-apps# i2cget -f -y 0 0x48 0x66
    0x00
    

    此处显示它已被清除。
    然后、我检查了 GPIO3是否已经很低、所以我会使用 am62a7 EVM、以检查我是否喜欢它  

    root@am62axx-evm:/opt/edgeai-gst-apps# echo 335 > /sys/class/gpio/export 
    root@am62axx-evm:/opt/edgeai-gst-apps# cat /sys/class/gpio/gpio335/
    active_low  device/     direction   edge        power/      subsystem/  uevent      value
    root@am62axx-evm:/opt/edgeai-gst-apps# cat /sys/class/gpio/gpio335/value 
    0
    

    是的、我曾尝试将其设置为高电平而不起作用。 告诉我为什么?  
    然后、我检查了 NSLEEP1_MASK 和 NSLEEP2_MASK、它位于 CONFIG1_REGISTER 内。
    root@am62axx-evm:/opt/edgeai-gst-apps# i2cget -f -y 0 0x48 0x7d 
    0x43
    

    当您使它成为二进制时、它成为01000011

    然后我给出了触发器 D、但 PMIC 无法进入 S2R 状态。
    root@am62axx-evm:/opt/edgeai-gst-apps# i2cset -f -y 0 0x48 0x86 0x00
    root@am62axx-evm:/opt/edgeai-gst-apps# 
    

    尽管我尝试了待机模式并且运行良好、但我进入了待机模式、但我不知道如何 WKUP 并退出待机模式。 还告诉我在待机模式下如何退出它。  

    最后告诉我 S2R 我是不是犯了什么错误? 如果正确、请告诉我如何获取 S2R 状态以及如何从中进行 WKUP。

    谢谢!  
    好的  

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

    您好、Alok、

    我将在明天的工作日结束时提供答案。

    我假设从初始 POST 和命令开始、您使用的是 Linux EVM 以及所述的 Linux TPS6594驱动程序?

    BR、

    Nicholas

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

    您好、Nicholas:

    是的、我们将在 Linux 中使用 EVM、编译为 tisdk 9.2与 tps6594驱动程序。

    当前、如果我强制写入0x01寄存器0x86并驱动GPIO3为低电平、系统将进入睡眠模式。 当我驱动为GPIO3高电平时、系统会唤醒、但它不会恢复之前的会话、而是从基础 U-Boot 重新启动。

    我们的要求是系统应在收到唤醒信号后立即唤醒并无缝恢复之前的会话。 您能否澄清一下这种行为是否可以从NSLEEP2深度睡眠功能中获得、或者其实现或配置是否存在问题?

    此外、当我将 PMIC 置于深度睡眠模式时、处理器会将DDR0_RESET_N信号驱动为低电平、从而将 LPDDR 复位。 这是否就是为什么系统从 U-Boot 启动而不是在唤醒后恢复上一个会话的原因?

    如果是这种情况、我如何控制DDR0_RESET_N信号以防止其变为低电平并复位 LPDDR? 值得注意的是、当我将处理器置于深度睡眠模式时、DDR 不会复位。 您能否提供有关确保 LPDDR 在 PMIC 深度睡眠模式期间保持活动状态的指导?

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

    您好、Alok、

    您是否确定 PMIC 侧的 GPIO3读数为低电平?

    GPIO3处于低电平且 ENABLE 为高电平将使您直接进入 S2R 模式、这意味着您无法从终端进行写入/读取。 这就是为什么请读回上述寄存器进行确认。 还可以在下面看到、GPIO3和使能引脚之间有一个简单的引脚对引脚关系。 所有这些都将其发送给 Sitara 团队、作为此 EVM 的作者、他们在此过程中将能够更好地提供帮助。

    导致可能复位的原因可能是当 PMIC 处于 S2R 状态时使能信号变为低电平、在这种情况下会关闭电源轨、因此当发送 GPIO3为高电平时、类似于发送使能高电平、这就是它看起来像是冷上电的原因。

    您可以通过检查 BUCK4上的电压输出来确认这一点、这在 S2R 模式下将为高电平。

    BR、

    尼古拉斯·麦克纳马拉

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

    尊敬的 Alok:

    我们将对此进行研究、并将在星期四结束前收到回复。

    谢谢!

    Anshu

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

    尊敬的 Alok:

    PMIC 不负责将 AM62A SoC 置于深度睡眠状态、而 AM62A 上的 Linux 操作系统将完成这一任务。

    您可以查看有关使用低功耗模式的 Linux SDK 文档: https://software-dl.ti.com/processor-sdk-linux/esd/AM62AX/10_01_00/exports/docs/linux/Foundational_Components / Power_Management / pm_low_power_modes.html

    以下是有关如何配置 PMIC 的一些其他信息: www.ti.com/.../slvucm3.pdf

    此致、

    Anshu

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

    您好、Nicholas:

    我相信 GPIO3正变得很低、因为我们已经使用示波器和探测了线路。

    我们还探测了使能信号、它没有变低、降压转换器4和降压转换器5已启动、因此它处于 S2R 状态。

    您能告诉我 PMIC S2R 状态保持哪些域以及关闭哪些域吗?

    它是否保持 MCU 域开启、因为我发现 PMIC_LPM_EN0信号可以在 PMIC 进入深度睡眠时释放它。

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

    Anshu、您好!

    我们使用 Linux 在 AM62A SoC 上启用了深度睡眠模式。 不过、该状态下的功耗仍为0.5W、明显高于我们的目标。

    为进一步降低功耗、我们尝试根据记录的指南将 PMIC 转换为低功耗状态。

    最初、当 AM62A SoC 进入深度睡眠时 PMIC_LPM_EN0 没有将信号置为低电平。 但是、在配置之后 PMCTRL_SYS 寄存器中找到、

    我们观察到了这一点 PMIC_LPM_EN0 当 SoC 进入深度睡眠时、生效为低电平。

    尽管如此,问题仍然存在:不久之后 PMIC_LPM_EN0 置位为低电平时、信号变为悬空、导致电路板复位、从而导致系统从 U-Boot 重新启动。  

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

    Anshu、您好!

    是否有任何更新、请尽快回复。

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

    尊敬的 Alok:

    根据我的理解、Linux 侧的 DM 固件将使 PMIC_LPM_EN 信号保持在3.3V。 将其发送回 PMIC 团队进行其他查询。

    谢谢!

    Anshu

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

    您好、Alok、

    关于电源轨打开的问题、用户指南包含以下内容。

    BR、

    尼古拉斯·麦克纳马拉

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

    您好、Nicholas:

    我已经尝试取消屏蔽 nsleep1、以便在深度睡眠期间影响主域 IO 电源轨。 我曾通过向 GPIO3提供低逻辑(已配置为 nsleep2并将其保持)并将其置于深度睡眠模式、但现在即使我向 GPIO3引脚提供高逻辑、它也不会退出深度睡眠模式。 以下是我执行的命令
    i2cset -f -y 0 0x48 0x7d 0x03
    i2cset -f -y 0 0x48 0x86 0x00

    我还使用清除这些中断  
    i2cset -f -y 0 0x48 0x63 0x02
    i2cset -f -y 0 0x48 0x65 0x03

    是因为我解封了 nsleep1、现在它不会从深度睡眠中消失?

    我的目标是在 MCU 域内实现一个中断信号、该信号可以通过在深度睡眠期间将 GPIO3引脚驱动为高电平来唤醒 PMIC。 我正在就这种办法的可行性寻求指导、并就其实施提出咨询意见。

    此致、

    Alok Yadav

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

    尊敬的 Alok:

    您能否确认您在 AM62A 上使用的是深度睡眠模式、而不是 I/O 加 DDR 低功耗模式?

    这将帮助我们了解要采取的调试步骤。

    对于 I/O + DDR、 PMIC_LPM_EN0变为低电平、PMIC 将关闭 VDD_CORE 和模拟电源轨。

    对于需要所有 PMIC 电源轨保持开启状态的任何其他低功耗模式(例如 DEEP SLEEP)、PMIC_LPM_EN0 不必变为低电平。

    谢谢!

    Anshu

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

    尊敬的 Anshu:
    我将学习适用于 AM62AX 的 Processor SDK Linux、这里是提到深度睡眠的部分  

    我将使用此命令  
    echo mem >/sys/power/state
    进入深度睡眠模式。
    IO+DDR 模式功耗比深度睡眠低吗? 如果是、那么我们可以保存上一个会话并直接唤醒该会话吗?
    最后、如何使用 Linux 实现 IO+DDR 模式?

    PMIC 中所述的 IO+DDR (STR)状态是否仅与 am62a 的 IO+DDR 模式配合使用、或者深度睡眠可以正常工作?

    谢谢!

    好的

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

    尊敬的 Alok:

    为困惑道歉。 目前、AM62x 仅支持 IO + DDR、但仍针对 AM62A 进行开发。 这种低功耗模式没有预期的时间表。

    您能否提供 PMIC_LPM_EN0信号的示波器快照?

    谢谢!

    Anshu

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

    尊敬的 Anshu:


    这是我使用 Linux 将处理器置于深度睡眠模式之前和之后的 PMIC_LPM_EN0图像。

    https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/10_01_10_04/exports/docs/linux/Foundational_Components / Power_Management / pm_low_power_modes.html


    在 AM62x 的官方 SDK 文档中、我们提到它不支持 IO+DDR 模式。

    您能否确认您所指的模式以及哪个处理器支持此模式。

    此外、我们已能够使用 PMIC_LP_EN0信号将 PMIC nsleep2设置 为低电平、方法是将 PMCTRL_SYS 寄存器(0x43018080)设置为0x15并将 AM62A 处理器进入深度睡眠状态。 但现在、当我通过 MCU GPIO 提供 WAKUP 信号时、不会唤醒。

    这仅在我通过给予 nsleep2=0使 PMIC 进入深度睡眠 FSM 状态时发生。

    此致、

    好的

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

    尊敬的 Alok:

    很抱歉再次造成混淆、不同的器件目前支持不同的低功耗模式。

    我将在下周早些时候与硬件团队一起回顾 o 范围截图。

    谢谢!

    Anshu

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

    尊敬的 Anshu:
    您能解释一下吗、

    我们已经能够使用 PMIC_LP_EN0信号将 PMIC nsleep2置于低电平、方法是将  PMCTRL_SYS 寄存器(0x43018080)设置为0x15并将 AM62A 处理器置于深度睡眠状态。 但现在、当我们通过 MCU GPIO 提供 wakup 信号时、它不会唤醒。 基本上 PMIC_LP_EN0 没有变为高电平。

    这仅在我通过给予 nsleep2=0使 PMIC 进入深度睡眠 FSM 状态时发生。 使用 MCU GPIO 唤醒来唤醒正常的处理器深度睡眠。

    谢谢!

    好的

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

    尊敬的 Alok:

    您能否提供您使用的原理图?


    您可以在寄存器0x43018080上提供回读吗?  

    将0x15写入0x43018080后 、您可以检查 PMIC 的状态吗?  在深度睡眠期间、VDD_CORE (PMIC Buck1)和 VDDA (PMIC LDO4)应打开。  

    此致、

    Anshu

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

    尊敬的 Anshu:

    我们使用的是 AM62A7-EVM 电路板、这是相关分区的原理图、

    这是更改前的回读、

    root@am62axx-EVM:~# devmem2 0x43018080
    /dev/mem 打开。
    存储器映射在地址0xff84944000。
    在地址0x43018080 (0xffffff84944080)处读取:0x00000010

    这是更改后的回读、

    root@am62axx-EVM:~# devmem2 0x43018080 w 0x00000015
    /dev/mem 打开。
    存储器映射在地址0xff92419000。
    在地址0x43018080 (0xffffff92419080)处读取:0x00000010
    在地址0x43018080 (0xffffff92419080)处写入:0x00000015、回读0x00000015

    在将 PMIC 置于深度睡眠状态(即向 NSLEEP2信号提供低值)后 、VDD_CORE (PMIC Buck1)和 VDDA (PMIC LDO4) 均为低电平。  
    只有 Buck4和 Buck5为高电平。

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

    尊敬的 Alok:

    您是否可以在写入0x15后将 J9的引脚1接地?


    此致、

    Anshu

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

    尊敬的 Anshu:

    我们这样做了、结果相同。 我们必须将其保持接地、否则 PMIC_LP_EN0信号会下拉 PMIC_ENABLE 信号、从而禁用 PMIC。 一旦我们将其保持接地、信号就会进入配置为 nSLEEP2的 GPIO3信号、并将 PMIC 置于深度睡眠 FSM 状态。 AM62A 的 PMIC 用户指南中

    这里提到了在我们为 nsleep2信号提供低电平时的 IO+DDR 模式、

    能否仅确认从深度睡眠状态唤醒需要多长时间?

    谢谢!

    好的

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

    尊敬的 Alok:

    从深度睡眠模式唤醒大约需要150ms、但具体取决于应用。  

    您是否能够尝试不写入0x43018080并将 J9接头保持原样?

    谢谢!

    Anshu