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.

[参考译文] AM3358:eMMC 复位

Guru**** 2551110 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/909526/am3358-emmc-reset

器件型号:AM3358

您好-

我们一直在使用 BeagleBone Black、我有一个相关的问题。  BeagleBone 使用 GPIO1_20像我们一样重置 eMMC。 我正在尝试了解这是如何工作的。  由于启动时所有启动代码(最低级启动代码除外)都位于 eMMC 中,因此为了使 GPIO 引脚退出其默认模式(在处理器复位时为低电平), 在某些时候、Sitara ROM 中的低级启动代码必须释放 GPIO 引脚、使其变为高电平。  由于 GPIO 的寄存器设置尚未发生、我猜 低电平引导 ROM 代码会将引脚配置为输入、从而悬空、以便复位线路由复位引脚上的外部上拉电阻上拉。

您能否确认发生了什么情况、您能否建议使用电路板上的系统复位来控制 eMMC 不会更好?   

谢谢

标记

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

    很抱歉-仔细检查后、我发现处理器 GPIO 引脚和 eMMC 复位之间有一个逆变器、这意味着 GPIO 引脚在复位后保持低电平、这意味着 GPIO 引脚在上电时直接被拉低或驱动为低电平。  因此、这对我来说意味着 eMMC 唯一可以复位的时间就是加电和处理器上电复位完成之间的时间、这对我来说似乎是不可避免的。  

    我在这里一定会错过一些东西,请帮助。

    谢谢

    标记

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

    Mark、您好!

    注意事项:

    • ROM 引导加载程序不使用 GPIO1_20信号来复位 eMMC。 您可以在 AM335x TRM 的"初始化"一章中看到这一点、具体而言是 由于表26-27中没有上述信号。 用于 MMC1引导的引脚
    • 当前 U-Boot 和内核也不使用此信号。 我认为从某些故障场景中恢复可能会很有用、但由于根本无法访问该故障场景、因此我认为 AM335x 器件上不需要此操作。 但是、此处的线程指向存在连接的另一个原因: https://e2e.ti.com/support/processors/f/791/t/362808

    此致、Andreas

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

    你(们)好、Andreas

    非常感谢您的快速回答。  这很清楚。

    因此,根据这些信息,我是否建议如何处理系统中 eMMC 设备的复位?  

    是预期连接到系统复位或其他设备的 eMMC 引脚。  在我看来、使用 BeagleBone 方案的 eMMC 在上电时不会经过受控良好的复位、而是取决于特定系统中电源的上电配置文件。  我的意思是,驱动 eMMC 复位引脚的逆变器输入变为高电平(可能是也可能不是)的唯一时间是 Sitara IO 线路上0伏之间的一段时间(无电源) 以及 Sitara 的上电复位、此时引脚 GPIO1_26 (在本例中)变为低电平。  它还取决于逆变器栅极的加电特性。  这是我所说的不是很好地控制。  

    请提供建议。

    感谢您的帮助

    标记

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

    Mark、您好!

    [引用 USER="Mark Mitchell)]因此,根据这些信息,TI 是否有人建议如何处理系统中 eMMC 设备的复位?  [/报价]

    我建议只将 eMMC 复位信号与 SOC  的 nRESETIN_OUT (低电平有效热复位)信号连接在一起(可能需要确保电压电平匹配)。 原因是当您在系统中使用 eMMC 时、最有可能是您的引导设备、因此您希望在每次引导期间都能为该设备准备好并按工作顺序运行提供最大的可靠性。 这意味着您可能希望硬件以某种方式控制 eMMC 复位信号。 在看门狗计时器超时等情况下、SOC 的 nRESETIN_OUT 引脚也会被 SOC 驱动为低电平、这样、无论 eMMC 控制器状态如何、您都有机会成功重启。 如果您要通过 GPIO 控制 eMMC 复位信号、则在看门狗复位等情况下无法轻松实现。 我看到的唯一使用由 GPIO 控制的 eMMC 复位信号的方法是、如果您需要一种方法来提高在已经运行的系统(已经启动、至少部分启动)中探测(或"恢复") eMMC 模块的稳健性。 在 U-Boot 和内核中执行一些操作这看起来并不是一种广泛使用的方法(此外、您找不到真正的建议、例如"确保将 eMMC 复位信号连接到 GPIO!" 在线任意位置)。

    [引述 USER="Mark Mitchell]]我不认为使用 BeagleBone 方案的 eMMC 在上电时不会经过受控良好的复位,而是取决于特定系统中电源的上电配置文件。  我的意思是,驱动 eMMC 复位引脚的逆变器输入变为高电平(可能是也可能不是)的唯一时间是 Sitara IO 线路上0伏之间的一段时间(无电源) 以及 Sitara 的上电复位、此时引脚 GPIO1_26 (在本例中)变为低电平。  它还取决于逆变器栅极的加电特性。  这是我所说的不是很好地控制。  [/报价]

    我同意此评估。 该电路不能作为加电序列的一部分为 eMMC 器件提供受控良好的复位。 无论如何、您都希望在 SOC 每次复位时进行复位、以实现最大的稳健性、因此我先前建议这样做。

    此外、当您查看诸如 BeagleBone AI 等较新设计时、您会发现 eMMC 复位实际上也直接连接到系统复位电路(原理图可在此处找到: https://github.com/beagleboard/beaglebone-ai)

    此致、Andreas

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

    您好 Andreas

    我要说,这是我在很长一段时间内所得到的最佳答案。  我被你们的回答所震惊了,完整,深思熟虑,详细,研究得很清楚。  你远远超出了我的预期。  干得不错。  我知道你所做的工作可以是一项非常感谢的工作。

    我认为您在所有方面都是对的。 我认为 eMMC 是一个非常重要的部分、因为从某种意义上讲一切都是从 eMMC 产生的。  我将实施您建议的更改。

    我相信、这个答案的清晰性将帮助许多其他人浏览论坛寻找答案。


    再次感谢。

    标记

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

    Mark、

    [引用用户="Mark Mitchell)]我不得不说,这是我在很长一段时间内收到的最佳答案。  我被你们的回答所震惊了,完整,深思熟虑,详细,研究得很清楚。  你远远超出了我的预期。  干得不错。  我知道您所做的工作是一项非常感谢的工作。[/引述]

    感谢您的友好话语。 这并不是一份非常感谢的工作(毕竟是支付我的账单)、但获得一些关于产生影响的反馈/确认(也是如何改进-我们都能做到)是使我们作为一个团队保持敬业并乐于提供帮助的原因。 只有客户成功、我们才能取得成功。

    此致、Andreas