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.

[参考译文] Linux/AM3352:PMIC_POWER_EN 问题

Guru**** 2931640 points

Other Parts Discussed in Thread: AM3352, TPS65910

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/667462/linux-am3352-pmic_power_en-issue

器件型号:AM3352
主题中讨论的其他器件: TPS65910

工具/软件:Linux

你(们)好  

我们拥有 AM3352和 TPS65910A3A 的硬件。

AM33502的 PMIC_POWER_EN 引脚连接到 TPS65910 PWRHOLD 引脚作为参考设计。

 使用5V 电源首次为硬件上电时、PMIC_POWER_EN 将保持高电平。  

我启用 Linux 驱动程序代码来设置 AM3352 RTC ALARM2以关闭电源(poweroff 命令)。  

到目前为止都很好。  

我们使用 TPS65910 PWRON 引脚作为按钮来控制电源。  

按下电源键时、TPS65910为 SoC 供电、但释放电源的按钮消失。

我们发现 AM3352的 PMIC_POWER_EN 驱动为低电平。  

在断电序列之后,第二次上电不会触发  PMIC_POWER_EN 输出。  

是否有任何代码可以复位 RTC_SS 或保持 PMIC_POWER_EN 为高电平?  

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

    下面是 TPS65910原理图

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    从何处为 AM335x RTC 供电? 如何提供 RTC 复位信号?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 USER="Biser Gatchev-XID"] AM335x RTC 从何处供电? 如何提供 RTC 复位信号?

    [/报价]

    TPS65910的 VRTC。 下面是 RTC_PORz 原理图

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

    以下是我的理解。

    第一次上电:RTC_PORz 原理图将重置 AM335x 的 RTC_SS。 PMIC_POWER_EN 将驱动为高电平。

    在 ALARM2关闭 AM335x 和 TPS65910 (VRTC 除外)后。 上电(TPS65910)的切换将使 TPS65910状态机转换为就绪(低电平上电)并为 AM335x 上电。  

     第二次上电不会复位 RTC_SS、PMIC_POWER_EN 不会作为初始状态驱动为高电平。

    我们在引导加载程序(uboot)中尝试一些实验。 希望手动复位 RTC_SS 或将 PMIC_POWER_EN 驱动为高电平。

    1.复位 PWR_ENABLE_EN 位(AM335x RTC_PMIC)、清除 RTC_INTERRUPTS_REG、在  u-boot 清除 RTC_STATUS_REG。  ->不奏效。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    通过这种硬件配置、您将使处理器进入仅 RTC 模式。 只能使用处理器 EXT_WAKEUP 信号从仅 RTC 模式唤醒。 您需要将按钮连接到此引脚以唤醒处理器。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Biser Gatchev-XID"]您通过此硬件配置实现的目标是将处理器驱动为仅 RTC 模式。 只能使用处理器 EXT_WAKEUP 信号从仅 RTC 模式唤醒。 您需要将按钮连接到此引脚以唤醒处理器。

    [/报价]

    感谢您的快速响应。 我们将 EXT_WAKE 信号连接到 VRTC 电源。 然后单击加电按钮并成功打开硬件。

    但会出现奇怪的情况。 通过切换按钮启动电源并引导 Linux 成功后,我们再次通过 Linux 软件命令(poweroff)关闭电源。

    我们再次尝试通过切换按钮打开电源,但无法打开电源。
    TPS65910即使上电信号为低电平(按下按钮)也不会激活。 我们检查 EXT_WAKE 信号是否保持高电平。

    按照整个步骤操作:

    1.通过连接电源线/电池(USB 5V/锂 电池)接通电源。
    2.通过 Linux 命令关闭电源(成功)。
    3.通过电源切换按钮打开电源(成功)。
    4.通过 Linux 命令关闭电源(成功)。
    5.通过电源切换按钮加电(失败。TPS65910除 VRTC 外无任何电源输出)。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不理解您所做的修改。 请发布更正后的原理图。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    下面是原理图。

    我将具有10K 电阻的 VRTC 连接到 EXT_WAKE。 在 ALARM2关闭电源后。 电源按钮仍然无法 持续通电。

    我在 u-boot 添加了代码以设置 RTC_PMIC 寄存器、我们在上一帖子中得到奇怪的结果。  

    RTC_PMIC = 0x1;//启用 ext_wake0  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    也尝试将电源按钮连接到 EXT_WAKEUP。 请注意 PMIC 和处理器侧的不同电压电平。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们下拉 EXT_WAKEUP (手动连接到 GND)。 但在第二次断电后仍无法为 TPS65910通电。

    根据以下状态机,我们检查 PWRHOLD (1.8V)、 PWRON (低电平有效)、DEVCTRL = 0x70。   

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

    我们找到了问题。 我稍后会解释。  

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

    我们的目标:
    第一。 通过电源连接(电池/USB VBUS)或电源按钮为硬件供电。
    2。 通过软件命令关闭电源。

    硬件必须支持#1 (TPS65910 MB > VMBHI 或 PWRON LOW)。 和#2内核必须支持关闭 TPS65910的电源输出。

    我们仔细检查 TPS65910的输出。 先前的观察结果有误。
    1.通过电源线/连接的电池(USB VBUS/锂离子电池)接通电源。
    2.通过 Linux 命令关闭电源(ALARM2驱动 PMIC_POWER_EN 为低电平)。
    3.通过电源切换按钮打开电源(EXT_WAKE 保持 PMIC_POWER_EN 为高电平)。
    4.通过 Linux 命令关闭电源(失败。内核停止、但电源输出保持供电。 PMIC_POWER_EN 保持高电平)。
    5.通过电源切换按钮加电(失败。TPS65910为激活模式。)。

    EXT_WAKEUP 具有电平传感器性、可通过软件进行编程。 但我们没有精确的参考设计(HW)来实现我们的目标。

    我们尝试另一种权变措施。
    1.在 u-boot 加载程序中设置 TPS65910的 DEV_ON 位。 这将使 TPS65910在没有 PWRHOLD 的情况下保持工作状态。
    2.在 OMAP RTC 断电功能时清除 TPS65910的 DEV_ON 位。 这将关闭 TPS65910的输出。