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.

[参考译文] 如何在 OMAP-L138 DSP 内核上实现复位逻辑?

Guru**** 2560240 points
Other Parts Discussed in Thread: OMAP-L138, TPS3125

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/621779/how-to-implement-reset-logic-on-the-omap-l138-dsp-core

主题中讨论的其他器件:OMAP-L138TPS3125OMAPL138

你(们)好

我正在为 OMAP-L138 SoC 上的 DSP 内核设计复位逻辑、以便它可以执行复位以从 NAND 闪存加载应用。 这是为了能够远程更新 DSP 软件。  

我想使用 DSP 的 GPIO 引脚之一通过将 GPIO 连接到 OMAP-L138 SoC 的 RESET 引脚来将 RESET 置为有效。 这是个好主意吗?  

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

    我已将此内容转发给硬件设计专家。 他们的反馈应发布在此处。

    BR
    Tsvetolin Shulev
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    请提供有关此内容的任何更新。 ?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Mitesh、

    将 RESET 置为有效而不同时将 TRST 置为有效将产生热复位、而不是 POR (上电复位)-您需要的是这样吗? 请参阅 数据表的6.4.2热复位

    热复位为器件提供有限的复位。 热复位通过仅将 RESET 拉低来启动(通过热复位将 TRST 保持为高电平)。 热复位可将器件的某些部分设置为默认状态、而不会更改其他部分。 除了 RESETOUT 之外、所有引脚都是三态的
    -保留内部内存
    -当复位变为高电平时、引导引脚不会被锁存、而是保留与上一个 POR 相同的值。

    为了确保您执行 POR、您可以始终将 TRST 保持为低电平(直到您想使用 JTAG)-只有在需要使用 JTAG 控制器时才需要释放 TRST。

    您是否介意 ARM 内核也重新启动? 如果不是、则对 NAND 形式的重新启动应用复位可能是一个可行的选项、但您可能需要使用不止一个 GPIO 来驱动复位、并且 TRST 都为低电平...

    根据表6-1。 复位时序要求、复位的脉冲宽度需要至少保持100ns。 如果只需将 GPIO 连接到复位、该 GPIO 在复位时将变为高阻态、并且可能无法满足此要求。 如果您在 Hi-Z GPIO 上添加了一个下拉电阻器、则永远不会释放器件复位-它将始终下拉... 您可以使用 GPIO (带有上拉电阻)触发复位脉冲电路、如下所示。 电容器可确保复位脉冲持续一定的时间。

    您还可以使用具有手动复位功能的电压监控器、如 TPS3125。 有一个内部计时器在指定的延迟时间内将复位保持低电平。

    看门狗复位会触发一个 POR -您可能可以利用它来实现您的目标:强制看门狗计时器过期并以这种方式进行复位。

    还应考虑引导模式引脚-它们是静态上拉的高电平还是低电平? 在正常操作和固件升级期间、它们是否相同? 它们还具有表6-1中规定的要求。 数据表的复位时序要求。 复位上升沿前20ns 设置、复位上升沿后20ns 保持。 如果它们与上拉和下拉电阻器静态连接、则很容易满足。 不要自行使用 GPIO 来驱动引导模式、因为 GPIO 将变为高阻态

    您似乎只想重置 DSP 内核并仅将一些新代码加载到 DSP 内核中(ARM 内核仍在运行)。 我相信有一种方法可以通过共享存储器实现这一点、并关闭 C674x 超级模块的电源。 如果您对此感兴趣、我可以与其他知识渊博的人一起...

    为 C674x 超级模块断电需要以下软件序列:

    1.将 PDCCMD 寄存器的 MEGPD 位域置位为1、使能掉电。

    2.启用要唤醒超级模块的 CPU 中断;禁用所有其他中断。

    3.执行一条空闲指令。

    超级模块将保持断电模式、直到唤醒上面第2步中启用的中断

    请参阅以下 wiki 页面:

    http://processors.wiki.ti.com/index.php/OMAP-L138_Bootloader

    http://processors.wiki.ti.com/index.php/Boot_Images_for_OMAP-L138#Booting_DSP_Binaries

    希望这对您有所帮助、
    标记

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

    Mark、您好、很抱歉我的回复很晚、但非常感谢您的回复。 这很有用。

    我要做的就是:

    如果需要 ARM (Linux)的 DSP 复位功能、我们希望将其用作远程升级重启。 引导引脚是静态的、通常设置为从 NAND 闪存引导 DSP。 TRSTn 通过下拉电阻器连接到 GND。  想法是 Linux 会将新的 DSP 应用写入 DSP NAND 闪存、然后在下一次重新启动时、DSP 应使用最新的 DSP 应用。  

    听起来您最后提到的"一种使用共享存储器实现此目的的方法、并关闭 C674x 超级模块的电源"是否可以在 Linux 中实现? 是否有任何示例应用?  

    谢谢。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Mitesh
    我一直在监视此主题,虽然我仍然不能完全理解预期的用例(抱歉-我知道您已经尝试阐明此主题),但我想指出一些细节

    1) 1)无法在 SoC 内核(即 ARM 和 DSP)上执行具有不同行为的"芯片"复位、如果执行任何类型的芯片复位、则会影响 ARM 和 DSP 内核以及其余的芯片逻辑。 数据表第6.4节提供了上电复位和热复位的定义、并解释了这些复位等将复位的所有逻辑
    2)在 OMAPL138上,ARM 是“引导主控方”,即如果芯片被重置(取决于重置类型),ARM RBL 将启动,您将基本上完成整个引导过程, 在次级引导加载程序/ uboot 中的某个位置、您需要 ARM 来启用 DSP 并重新加载相关代码
    3) 3)几乎看起来您不想干扰整个芯片状态、只是"DSP"内核从 NAND 闪存获取新映像? 通常、这可能比使用任何芯片复位等更多的软件-您可能可以使用 PSC 控制器执行此操作、其中 ARM 可以向 DSP PSC 控制寄存器 MDCTL15写入以执行本地复位等
    4) 4)最常见的是从系统集成的角度来看、只有1个内核可以进行闪存/文件系统管理、因为 ARM 或 DSP 更容易管理各种文件系统、而不能同时管理这两者? processors.wiki.ti.com/.../Filesystem_in_NOR_or_NAND

    我不知道您要求的用例的完整端到端示例。

    通过 IPC 层之类的内容进行 DSP 重置管理应该在 Linux 中提供-如果您有兴趣进一步探讨这一点,我可以将此主题指向我的一位软件同事,以查看您是否可以指向有关此主题的相关链接/软件示例。

    希望这对一些人有所帮助。
    此致
    Mukul
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Mukul、

    从 Mark 的答复中可以看出、使用 DSP PSC 从 Linux 重置 DSP 内核是很清楚和明智的。 我仍在尝试使用 SDK4.0.0.4在定制板上运行 Linux、而我得到的一个工作就是尝试重新启动 DSP 的 IPC 方法。 我试图了解 Linux 中的远程处理器、 听起来好像在加载 DSP FW 的过程中会使用这种想法。 但是的、感谢您的回复。 我已决定不执行任何硬件模式、只需进行复位即可。 将使用 DSP PSC 逻辑从 Linux 中实现它。 谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Mitesh
    感谢您的澄清。 看起来您正朝着正确的方向前进。 如果您对 remote-proc/IPC 有后续问题,请打开一个新线程。
    此致
    Mukul