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.

[参考译文] TM4C123GH6PM:使用 Tiva EK-TM4C123GXL 删除 USB 记忆棒后无法识别它

Guru**** 2462530 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/650967/tm4c123gh6pm-not-recognizing-usb-stick-after-i-removed-it-using-tiva-ek-tm4c123gxl

器件型号:TM4C123GH6PM
主题中讨论的其他器件:DK-TM4C123GTM4C123

您好!

我正在处理 USB 应用程序以与闪存驱动器通信。 打开 Launchpad 或在闪存驱动器已连接的情况下按 RESET 键后、我能够识别闪存驱动器并准备好器件。 断开闪存驱动器后、我的代码将分支至无器件、这是合理的。 问题是、断开连接后、只要我将闪存驱动器重新连接到 USB、仍然没有显示设备。 我必须按下 RESET 或重启 Launchpad 的电源、以便再次识别闪存驱动器并显示器件就绪。 是否有任何关于如何在不进行复位或循环通电的情况下使其正常工作的建议? 重新连接闪存驱动器时、为什么无法识别闪存驱动器?

谢谢。

AJ  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此外、只需添加一点、我对原理图有点困惑。 对于主机配置、我需要短接 H18和 H19、它可以正常工作。 但根据原理图、无论滑块位于何处、ICDIVbus 始终短接至 USBVbus、这意味着您始终可以获得5V 电压。 但在 Launchpad 中并非如此、当滑块定位到器件时、您只能获得5V 电压。 这是打印错误还是缺少内容?

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

    正如您所描述的那样、我没有任何关于外部闪存驱动器的直接经验。     这种承认——也许是一种一般的“基于 kiss 的”问题解决技术——将帮助您(或其他人)解决问题。

    通常对"将您报告的问题分解为其组成部分"很有用、这最能让您对每个问题进行深入/孤立的关注。    其中包括:

    • 仔细检查(和记录)现有代码路径 、"上电后"和/或"MCU 复位"。   (包括寄存器默认设置)   很明显、在这个"后置复位"周期内(某些内容)可以让您的系统检测到闪存驱动器。
    • 仔细检查(和记录)您的"无器件代码"-寻求识别"无器件"和 MCU 复位之间的任何/所有差异。
    • 必须注意的是、您的报告"不包括"(同样重要的)模式、"首次插入闪存驱动器-加电后!"    (您只会注意到"插入闪存器件后加电!")

    如您所述-似乎"卸下闪存驱动器"未完全/正确:

    • 检测到
    • 已处理/受管-禁用后续的"重新连接检测"

    所有相关变量和关键 MCU 寄存器设置/配置的"记录"操作-无论是在"正确"(已识别)插入(在您的情况下、如所示)期间 、还是在"失败"(未识别)插入期间(必须扩展以包括"加电后插入")、似乎是一个"强/实"解决问题的定向路径...

    [编辑]... 此帖子是在您刚到达(03:04)帖子之前撰写的、注意到"原理图问题"。    仍很重要的是、当闪存驱动器首次插入到"供电系统..."时、结果为"截至尚未描述"。   (即未取出然后重新插入!)

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

    这是来自 http://www.ti.com/lit/ug/spmu296/spmu296.pdf 第21页原理图的摘述

    滑动开关将 ICDI VBUS 或+USB VBUS 连接到+VBUS、但不将 ICDI VBUS 连接到+USB VBUS。 我们使用双极双投开关、但将其连接为单极双投功能、这有点令人困惑。

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

    感谢您的回答。 根据一些论坛、为了使 USB 主机正常工作、我需要短接 H19和 H18。 看一下开关图、通过短接这两个、无论开关的位置如何、除非 H18位于引脚2的右侧、否则5V 电压始终会下降到 USBVBUS 上。 对此有什么想法吗?

    此致、
    AJ
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我忘记在 Launchpad 上添加、情况并非如此。 仅当滑块设置为器件时、5V 下降、而当设置为调试时、USBVBUS 上的0V 下降、这使得 H18看起来位于引脚2的右侧。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、我明白了。 您希望通过将 H18与 H19短接、从 ICDI VBUS 为+USB VBUS 供电。 由于电路板上没有标记它们、您如何识别 H18和 H19?  对我来说、它们看起来是这样的:

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

    您好 Bob、

    在您看来-可能是通过直接体验而获得的-此板能否"检测 USB 驱动器的插入情况"-然后"检测其移除情况"-然后"准备"(再次)检测此类 USB 驱动器的插入情况?   (持续、"加电"下的所有3个条件。)   我认为,这是一个"真正"的问题,应该得到解决。

    关于 H18和 H19 -评论"看起来是这样的"(可能)表明海报"颠倒了"他对这两者的识别。   然而,当他提议"短接"这些问题时,这种逆转(仍然)将会成功,难道不会成功?

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

    我在下面的第一个链接中找到了 H18和 H19的位置。 其他链接是我查看过的其他论坛。 我想解决这个问题、只是为了排除我可能短路了错误的引脚、这可能会导致我的问题。 或者、这可能与此完全无关。 不过、我想完全确保我的硬件设置正确。 我短接了中间孔和右侧孔、这是根据下面的链接进行的。
    e2e.ti.com/.../339350

    e2e.ti.com/.../364790
    e2e.ti.com/.../1278380

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

    如果您将中间孔短接到右侧孔、则 H23与 H19短接。 这就是为什么您必须让开关处于"器件"位置才能将 ICDI VBUS 连接到+USB VBUS。

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

    实际上、当我处于"器件"位置时、在 USBVBUS 上获得5V 电压;当我处于"调试"位置时、在 USBVBUS 上获得0V 电压。 我的设置似乎可以正常工作。 但我感到不舒服的是、原理图与我在 Launchpad 上看到的内容不匹配。 根据对第一条连线的建议答案,他说将 R14上方的两个孔短接。 在我看来、这是原理图上的打印错误。

    此致、
    AJ
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我认为原理图不是错误的。 只是电路板未指示测试点或开关的引脚1。 我认为我在理解中旋转了开关。 给我大约30分钟时间、我将更新上面的图片、同时显示交换机的插针编号。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、我已经更正了图片上的标签。 现在有道理吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    再次原谅-如果可以的话-我们已经用欧姆表示出了3个这样的"123个基本 LPad"并报告了这些结果:  (关于电源开关的位置)

    • 在调试中:"H23对 H19短路"。    (中间引脚短接到最右侧的引脚-右侧朝上-在电路板上向下看)
    • 在器件中:"H23对 H18短路"。    (中间引脚短接到最左侧的引脚-(与上述条件相同)

    中间引脚(H23)接收大部分开关动作。   (我们已经在3块"EK-TM4C123实验板"中进行了此类测试(从我们的原始库存中新鲜出炉)

    不过、对于以下问题没有直接的答案:

    此电路板在通电后能否识别闪存驱动器的"插入"、然后识别驱动器的"移除"、然后再识别(再次)驱动器的插入。?   在所有这种情况下-电路板已通电-不使用复位。"    是否可以回答这个基本问题?    谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Bob、您好、我目前正在查看您的最新回复、但我看不到任何图片。

    AJ
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我更新了之前回复中的图片、以避免有人稍后查看错误图片。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [报价 USER="CB1_MOBIT"]当电路板通电后,此电路板能否识别闪存驱动器的"插入",然后识别驱动器的"移除",然后再识别(再次)驱动器的插入。?   在所有这种情况下-电路板已通电-不使用复位。"  [/报价]

    CB1、

    我不是忽略这个问题。 我很确定答案是肯定的、但我需要一些时间向自己证明。 (这是忙碌的一天。)

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

    为了确保我们位于同一页、如果我将 H19和 H18短接在一起(这是其他论坛在配置 USB 主机时所说的)、这意味着无论开关的位置如何、USBVBUS 都将具有5V 电压?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    AJ、CB1、

    我已经验证了在示例 C:\ti\TivaWare_C_Series-2.1.4.178\examples\boards\dk-tm4c123g\USB_host_msc 中、TM4C123能够检测到 USB 记忆棒已移除、然后检测到它已重新插入而不会重置 TM4C123器件。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢 Bob 和 CB1。 非常感谢你们帮助我解决这个问题。 只是想做得非常彻底、以确保我不会错过任何东西。 下一步是让我再次浏览我的代码。 我将看到我是否错过了任何东西。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 USER="AJ_e"]为了确保我们位于同一页上,如果我将 H19和 H18短接在一起(这正是其他论坛在配置 USB 主机时所说的),这意味着无论开关的位置如何,USBVBUS 都将具有5V 电压?

    是的。

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

    您提到的示例是在主机模式下运行而不是在 OTG 下运行吗? 我找到了这个线程

    e2e.ti.com/.../2022594 H18 H19

    这可能是我的问题的答案、但我不太理解其中一些问题、比如海报提到 OTG 脉冲的部分。

    我的问题的解决方案似乎是在主机模式下运行而不是 OTG... 有什么想法吗?

    此致
    AJ
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、我引用的示例在主机模式下运行。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    不过、需要考虑一个问题。 我从使用 DK-TM4C123的 QS 记录器示例中获得了代码。 代码正在运行 OTG。 我从未测试过这个准确的代码、因为我没有 DK 评估板。 我想知道这是否会出现与运行 OTG 时遇到的问题相同的问题。 它设置为 OTG、因为它允许用户将数据传输到闪存盘(主机)或通过串行通信(器件)与 PC 通信。 我希望我最终也能做同样的事情。 但现在、我只想整理闪存棒。

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

    DK-TM4C123GXL 板具有一个电子开关、允许 TM4C123器件将+5V 连接到+USB_VBUS (OTG 连接器)。 这样、OTG micro A 连接器就可以断电、直到 TM4C 协商是否应该供电。

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

    Bob、

    这不是我"催促你"的企图。    相反,我注意到几个关于"AJ"的帖子,并担心我可能会"在论坛交通中丢失"。   (在这里、多年来-与 Amit 交换-我"知道"论坛对供应商员工提出的沉重要求...)

    我认为"AJ"尚未发现最初插入闪存驱动器的(更常见的)情况、即"加电后"。   (与 Rarer 情况相反-在上电之前插入的闪存驱动器。)

    以上所述-由于闪存驱动器不提供5V 电压- MCU (静止)检测到"闪存驱动器存在"的确切电路机制会让我转义。    (我无法查看电路板的原理图-曾希望"此类检测机制"在这里会得到"覆盖"。)     

    [编辑] 2008年12月20日:03: 现在访问了 LPAD 的原理图- PG。 20 (顶部、中心)显示"J9作为闪存驱动器插座" (PCB 的左侧)、其引脚4 (ID)显示为"闪存驱动器存在的可能来源"!   (该插座引脚路由到用户的 PB0)    简单的 PB0 "监控"-插入和不插入驱动器-应启用此类"驱动器存在"的识别。    然而、我"不得不评论 PB0被允许"浮动"-这(可能)强制要求使用"内部 MCU 上拉(上拉或下拉)电阻器"以防止"PB0的读取混乱"。

    最后、尚未提及标有"器件"的 USB 插座。    我假设这个"器件插座"通过一条合适的 USB 电缆为闪存驱动器供电并进行连接。   (该电缆必须提供相对较大的闪存驱动器插接(插件)连接器、然后将其转换为驻留在 LPAD 上的较小的5引脚 USB 连接器。    

    这种电缆是否为"标准"?   如果是-是否有人建议使用"电缆器件型号?"   电缆可以描述为 USB "A"母型转 USB "B"微型插头。    FiRM /我有超过10条不同的 USB 电缆和适配器-但没有一条可以在"USB 闪存驱动器和 LPAD 的 Micro B 插座之间建立短连接!"    再说一次-这种连接挑战 通常是如何处理的?

    如果不是"标准"-"AJ "的困难可能是"电缆黑客攻击失败?"   (哪个"吞没"引脚4 (ID)的存在信号)

    感谢 Bob 提供的详细信息以及"练习 LPAD "、以便 对"闪存驱动器的存在"进行积极验证...  非常感谢。    (希望用户 AJ 和 CB1...)

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

    如果我要在这个线程的火焰中添加一个"更多的火焰"、现在将出现一个尖头的 LPAD、PG。 20:

    请注意(两者) R25和 R29 (突出显示)。    现在 J9是"器件 USB 插座"-必须注意的是、在我们新/未使用的"123 LPad (EK-TM4C123)"的"全部三个"上、两个电阻器都不存在!

    因此-如果 PB0指示 USB 驱动器的"存在"-在"存在检测"方面、未修改的 LPAD 似乎出现故障!      请注意、"添加(插入)这2个电阻器的说明"确实出现在 LPAD 手册中、但它建议使用"仅限于添加 OTG 功能。"     ("存在检测"仅扩展(超出) OTG 和 OTG 似乎是合理的-不是吗?)

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

    [引用 USER="AJ_e]Bob、CB1、

    您提到的示例是在主机模式下运行而不是在 OTG 下运行吗? 我找到了这个线程

    e2e.ti.com/.../2022594 H18 H19

    这可能是我的问题的答案、但我不太理解其中一些问题、比如海报提到 OTG 脉冲的部分。

    我的问题的解决方案似乎是在主机模式下运行而不是 OTG... 有什么想法吗?

    此致
    AJ

    [/报价]

    最后、我能够通过配置为 USB 主机而不是上面链接中提到的 OTG 来使其正常工作。  

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

    很好。  我们是否可以询问-您是否添加了 R25 (存在检测)和/或 R29?    3月3日、我们未使用的123个 LPad 上都有(缺失)。

    原理图(1或2 (MY) 上的帖子)记录了此类要求...   再强调一次——“鼠疫——抗议者”应该“扬”,以防止未来的误区!  

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

    我从我在本论坛开头的某个位置发布的链接复制了该链接、

    下面是我所做的硬件更改

    1 -电源开关下方有三个孔、您必须连接 R14上方的孔并将开关移至器件模式、您可以使用导线、但我焊接了固定解决方案。
    2 -在 USB 连接器旁边的 R25和 R29上安装0欧姆电阻器、在我的示例中、我进行了正常焊接、结果很好。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    良好-原理图确实要求 R25和 R29 (用于驱动器检测)的存在-您的确认会增加可信度。 Mercî μ A。