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.

[参考译文] TM4C1294KCPDT:大容量开发 USB ID 引脚

Guru**** 2538950 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/795935/tm4c1294kcpdt-bulk-dev-usb-id-pin

器件型号:TM4C1294KCPDT

什么以及外设 USB0 ID 引脚连接到电缆的微型 USB B 侧/连接到何处?  大多数情况下 、假设 ID 输入信号 在 电缆 B 侧上电阻环入 +5 VBUS 引脚。 为什么要质疑该方法在执行时髦的操作之前是否有效? 即使是 EK1294XL EVM OTG 端口 TP7也无法在我们购买的24英寸电缆中找到任何位置。  USB0 外设 ID 输入似乎按照神的意愿浮动。

 当复合批量器件堆栈配置 为 USBModeDevice 时、ID 输入是否被 USB0外设自动拉高 ? 似乎 将 USB tick 计时器从5ms 加速 到2ms 部分屏蔽 了客户端中止问题。  任何设法进入浮动 ID 输入的瞬态都可能会轻松 地将 USB0库器件层退回到挂起状态?

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

    USB ID 引脚应仅在主机模式下接地、并将为连接的外设提供+5 VBUS 电压。 如果它是 USB 器件、就像一个大容量器件一样、那么 ID 引脚应在连接器上保持浮动。

    至于外设本身、USB0ID 的描述如下:"这个信号感测 USB ID 信号的状态。 USB PHY 支持集成上拉、外部元件(USB 连接器)指示 USB 控制器的初始状态(下拉是电缆的 A 侧、上拉是 B 侧)。"
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ralph、

    [引用用户="Ralph Jacobi"]如果   配置了 ID 模拟端口,USB PHY 会启用集成上拉电阻[/引用],因此电缆的 B 侧不会悬空,但会将 USB 外设 ID 引脚暴露给 micro 公连接器?  那么、如果 我们禁用 ID 引脚、模拟端口 USB0 仍会在内部上拉 ID 引脚或忽略 ID 引脚功能?

    [引用用户="Ralph Jacobi"]并且外部元件(USB 连接器)指示 USB 控制器的初始状态(下拉为电缆的 A 侧、上拉为 B 侧)。"[/quot]  

    关于 A 侧被下拉、  计算机(A)侧 甚至没有 ID 引脚、因此它必须是指 OTG 还是主机模式器件?

    可以在以下位置看到各种 USB 电缆引脚分配: https://images.search.yahoo.com/yhs/search;_ylt=AwrEZ7B1sMBcDHcAvhUPxQt.;_ylu=X3oDMTByMjB0aG5zBGNvbG8DYmYxBHBvcwMxBHZ0aWQDBHNlYwNzYw--?p=usb+id+pinouts&fr=yhs-avg-fh_lsonsw&hspart=avg&hsimp=yhs-fh_lsonsw

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

    如果您通过使用 ForceModeDevice 等禁用 USB0ID 引脚、则 USB 外设将不再使用 USB0ID 和 VBUS 引脚、并且必须通过 TivaWare GPIO API 进行配置。

    这是指典型的 OTG 连接器。 我无法说我已经详细了解了 PC 连接器、 但我猜他们不需要指示 PC 将作为 USB 设备运行、因此在为 OTG 或 Type-C 添加特定端口时、无需离开 A 类连接器
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 USER="Ralph Jacobi"]如果通过使用 ForceModeDevice 等方法禁用 USB0ID 引脚、则 USB0ID 和 VBUS 引脚都将被 USB 外设未使用、并且必须由 TivaWare GPIO API 进行配置。

    我禁用了 GPIO 模拟输入 PB0、 但它无法正常工作、因此 ID 不会被拉高、除非配置了 PB0?   由于模拟端口 不能具有 WPU、这是怎么实现的?  通过 HWREG 调用 USB_O_GPC (如下所示)并配置左侧+VBUS PB1模拟输入、可将 ID 强制为高电平。 当   电缆的一侧插入计算机时、USB0外设不会切换 VBUS 电源寄存器位或启动终端管道连接。 在这两个测试中、首先 设置了堆栈器件模式 USBDeviceMode (如下所示)。

    因此、由于 模拟输入被配置、ID 引脚实际上浮动在1.2V 以上、而不 是由于 ID 引脚设计。  下面的代码应该能够在没有配置 PB0的情况下将 ID 拉高。   请注意、Tivaware (usblib.h)意味 着从外部将 ID 引脚拉至高电平、而不是在内部将其拉至高电平。  中的 TM4C129x 设计指南未正确阐明 如何 通过 PB0输入处理 ID 引脚大容量器件模式。 我在 定制 PCB 之前向论坛询问了 ID 引脚、Amit 的答案与您的答案类似。 似乎 没有人知道 PB0 在1.2V 以上浮动、而 USB0将其拉高、因为即使  未 配置模拟引脚、它也会将 PB0拉高(内部)!  该 ID 保持悬空 是任何低级瞬态都可以轻松 跳过端点客户端管道的原因之一。    

    typedef 枚举
    {
    //
    //! 在 USB 器件模式下运行、并对 VBUS 和进行主动监控
    //! ID 引脚必须拉至逻辑高电平值。
    //
    eUSBModeDevice、    

    请查看以下配置并建议 一种禁用 PB0模拟输入并将 ID 拉至高电平但使 PB1 VBUS 引脚输入保持工作的方法。

    测试案例:

    //为 USB0 (DP)使能引脚94 PL6输入模拟
    ;为
    
    USB0 (DM)使能引脚93 PL7输出模拟
    ;为 GPIO_PORTL_AHB_BASE、GPIO_PIN_6)使能引脚93 PL7输出模拟;为 GPIO_GPIO0_GPIOPTB_IN_PWM=
    
    
    
    
    (GPIO_P0_IN_GPIO_P0_IN_IN_GPIORT_BASE)使能引脚;为 GPIO0_GPIO_PWM0_IN_GPIOPT_IN_GPIO9_GPIO_P0_IN_GPIORB_IN_PWMORP_PWMORP_IN_GPIORT_GPIORT_GPIORT_IN_IN_GPIORT_GPIORT_IN_GPIORT_IN_GPIORT_GPIORT_IN_GPIORT_IN_IN_GPIORT/ IN_GPIORP
    
    
    /*!USBModeDevice;作为 USB 设备运行。 //
    USBStackModeSet (0、eUSBModeDevice、0);
    
    
    //使用 VBUS 和强制 ID 高电平*
    HWREG (USB0_BASE + USB_O_GPC)|= USB_GPCS_DEVMOD_DEVVBUS; 

     

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

    好的、我花了一点时间重新阅读了数据表以确定它。 当使用 USB 通用控制和状态(USBGPCS)寄存器时、可以在内部强制 USB0VBUS 和 USB0ID 信号达到固定电平、或者在这种情况下、启用 VBUS 进行监控、并强制 USB0ID 达到固定电平。

    强制设置该固定电平后、USB0ID 引脚可自由用作 GPIO。 因此、此时您需要像标准 GPIO 一样对其进行配置。

    因此、呼叫后:

    /*使用 VBUS 和强制 ID 高电平*/
    HWREG (USB0_BASE + USB_O_GPC)|= USB_GPCS_DEVMOD_DEVVBUS;

    使用上拉电阻器对 PB0进行 GPIO 配置调用、以对其进行设置。

    所有这一切都说明了、当您以自己的方式使用 GPC 寄存器时、由于 PB0将不会处理 USB0ID、因为内部连接将从 I/O 引脚连接到固定电平、因此即使信号被注入 PB0、它也不会影响 USB 堆栈操作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    SO:

     /*使用 VBUS 和强制 ID 高电平*/
    HWREG (USB0_BASE + USB_O_GPC)|= USB_GPCS_DEVMOD_DEVVBUS;

    使用上拉电阻器对 PB0进行 GPIO 配置调用、以对其进行设置。
    [/报价]

    如果 WPU 必须配置 为数字、则与我的点 PB0不可用相矛盾。  同样、PB0必须配置为模拟、否则 DEVVBUS 似乎不会在内部强制 ID。  似乎 USB0仅强制 ID 引脚状态仅适用于 OTG 或主机模式。

    或者、如果 PB0被配置为模拟并且我们 设置 USB_O_GPC |= USB_GPCS_DEVMOD_HOSTVBUS 和 ID、那么低电平仍然适用于批量器件、hum。  如果我们完全不配置 PB0 、USB_O_GPC 不会强制 ID 引脚的内部状态更改。 此测试似乎确认了在 批量器件模式的任一配置中 ID 引脚保持悬空。

    也许对于 OTG 或主机模式、USB_O_GPC 仅将 ID 拉高或拉低、而不是批量模式或 VBUS PB1必须具有 带批量器件堆栈模式的 PB0 ID?  

    [引用 USER="Ralph Jacobi"]、即使信号被注入 PB0、它也不会影响 USB 堆栈操作。[/引用]

    因为 USB 端点根本没有建立 或工作。 其理念是、GPIO PB0随后可用于  USB0 ID 引脚以外的其他用途、但 数据表中未作说明。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    因此、设计指南并未指示如何规定 PB0与+3V3或 GND 源之间的未来关系。 奇怪的是、我们无法忽略将 PB0配置为模拟输入、因为 USB_O_GPC 不会强制 ID 为高/低、也不会强制 VBUS 为高/低。 这意味着不会将 PB0和 PB1同时配置为模拟输入或模拟输入。

    我的观点似乎是正确的- ID PB0输入按照神的意志浮动!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 BP101、

    当您使用 USB_GPCS_DEVMOD_DEVVBUS 等设置时、ID 引脚在内部连接到高电平或低电平、您无法在器件外部观察到它。 连接到大容量器件的 USB 主机也不会看到 ID 为低电平。 我看不到您如何得出结论、即当您无法观察到 ID 引脚状态时、它不会被强制。 也许我缺少您对您如何得出此结论所观察到的内容?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Ralph、

    [引用 user="Ralph Jacobi"]我看不到您如何得出结论:当您无法观察到 ID 引脚状态时、ID 引脚状态不是强制的[/引用]

     当 USB0 应该  在内部上拉 ID 时、EVM 上的 TP7 ID 模拟输入 PB0悬空、恰好高于接地。   如果将其上拉、则 TP7上应存在2.9V 或更高电压。  当我 通过1K 到3V3连接 TP7时 、USB 端点客户端的抖动更少。 任何一种方式 ID 模拟 PB0输入都不能被禁用、只能使用 VBUS 信号、根本不起作用。

    无论如何 、通过 USB 虚拟 COM 端口  和 TM4C1294 USB 大容量器件将 EVM 用作调试 UART 会在两者连接到同一台计算机时导致某种接地环路干扰。即使   是 EMI 滤波电缆随机抖动、USB 外设也很难解决任何接地漂移问题 端点客户端。    

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

    当 USB0ID 在内部连接时、连接到 TP7的 GPIO 不会连接到 USB。 当然、它是浮动的、这是配置的自然结果!! 您已将其配置为正常 GPIO、或者当 USB0ID 内部连接时、它将始终悬空。

    至于端点客户端弹跳、我从未在 EVM 上看到过这种情况。 如果您希望提供一个示例项目、我可以将其加载到我的 LaunchPad 中、我可以查看是否可以观察到这一点。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [报价用户="Ralph Jacobi"]当 USB0ID 内部连接时、连接到 TP7的 GPIO 不连接到 USB

    我不是专门讨论内部配置的 ID +3V3、甚至是在 TP7上。 只有 当 ID 在 内部配置时、USB0才不允许外部 VBUS 切换控制。  我 指  的是内部 ID 上拉 电阻器、 (配置 为外部的 ID) TP7 仍然悬空、应上拉。 如果 ID 模拟信号 在内部上拉、则对于堆栈模式批量器件、TP7不会悬空。  PB0模拟输入器件不会在 真正的模拟端口中悬空。

    PB0 不是 AINx 输入、被视为专用的模拟 外设引脚、无论  如何配置、它似乎都未连接外部或内部。  否则、我们应该能够配置 VBUS 外部和 ID 内部、除非必须将 USB0配置为 OTG 模式。  这是 一个没有被回答的问题、以及为什么 USB 外设忽略这个控制配置模式。

    [引用 USER="Ralph Jacobi">就端点客户端反弹而言、我从未在 EVM 上看到过这种情况。 如果您希望提供一个示例项目、我可以将其加载到我的 LaunchPad 中、我可以查看我是否可以观察到这一点

         当主机 PC 客户端建立端点连接时、您可以通过数据峰值验证+3V3电源噪声级别翻倍。  为什么 USB0外设会干扰3V3电源?  当  客户端 终端管道 由软件打开时、似乎有+/-DM 差分对入侵 MCU。 也许 需要添加某种串联滤波器或+/-DM 对隔离?  

    我从未想过 USB 将目标连接到交流供电的计算机 、而是将 少数 IOT 变量添加 到  现有示波器小工具旁边的以太网 GUI 中。  过去 曾希望获得 National Instruments 构建的非常稳定的以太网 GUI 的项目文件 、但 TI 从未  公开项目文件。  NI 范围小工具 的读取权限比 GUI 复合器小工具的读取权限高100倍。 我们的 GUI Composer GUI 需要 JTAG 端口、而 另一个非隔离式连接则会 导致高电压入侵和 ICDI 符号加载经常崩溃 在线目标函数。 与 USB 非常相似的以太网是实时客户端可以多次连接/断开、而不会中断目标 功能。

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

    TP7连接到 USB0ID 的 GPIO、即 PB0。

    当 USB0ID 在内部上拉时、USB0ID 的 GPIO 由 TM4C 的 GPIO 外设功能决定。

    GPIO 外设将看到 PB0是未配置的 GPIO、因此其状态为悬空。

    由于 TP7连接到 PB0、因此会观察到其悬空。

    同时、在内部、无法使用任何外部方法进行测量、USB0ID 会根据需要上拉。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Ralph Jacobi">当 USB0ID 在内部上拉时、USB0ID 的 GPIO 将留给 TM4C 的 GPIO 外设功能。 [/报价]

    您 是否认为数据表表表表21-1中的 模拟 ID 输入 PB0设计有内部上拉电阻?

    [报价用户="Ralph Jacobi"]在内部、您无法使用任何外部方法进行测量、USB0ID 会根据需要被上拉。

    这是不正确的、因为如果   PB0  未配置、端点不是通过 VBUS 切换 PB1建立的、并且 ID 在内部上拉! 如果 ID 在内部上拉、则无需将 PB0配置为特殊的其他模拟端口、 VBUS 引脚切换才能正常工作。  逻辑 似乎规则 ID 和/或引脚95 在两种配置(内部/外部)中都处于悬空状态或 ID 被忽略。  

    [引用 user="Ralph Jacobi"]在内部、无法使用任何外部方法进行测量时、USB0ID 会根据需要被上拉[/quot]

    我认为这将是一个假设。  尽管 USB_O_GPC 显示 ID 高/低 CCS 调试、但实际上 会像其他海报所报告的那样被外部忽略。  一项测试是将 TP7配置为高电平时将其置为低电平、应断开 端点的连接?  然而、我通过 TP7进行了测试、没有 端点中断、 无论   如何配置、校样 ID 信号都无法正常工作。   

    [引用 USER="Ralph Jacobi]TP7连接到 PB0时、它将被观察为悬空。 [/报价]

    再次强调 、 当 ID 输入被上拉时、TP7不应悬空、因为它连接到 GPIO 模拟多路复用 器双向逻辑! 我从未见过任何集成模拟 开关 在一个方向上阻断或成为单向电压、某种程度上是静音点。 仅仅因为 AINx 模拟输入通过 共享开关(单向)结构并不能推断 直接连接到 USB0外设 ID 模拟结构会发生同样的情况、尤其是当声称引脚95 ID 输入被内部上拉时、例如表21-1。  

     [引用 USER="Ralph Jacobi]GPIO 外设会发现 PB0是未配置的 GPIO、因此其状态为悬空。 [/报价]

    在    每个 LaunchPad 上预加载的物联网固件中将 PB0引脚95配置为模拟 GPIO (ID 输入)时、该怎么办?

    //为 USB0 (ID) B 侧内部上拉
    MAP_GPIOPinTypeUSBAnalog 启用引脚95 PB0 IN-Analog (GPIO_PORTB_AHB_BASE、GPIO_PIN_0); 

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

    表21-1正确、但内部上拉电阻在内部分配给 USB0ID 连接、而不是作为 GPIO 整体分配给 PB0、因此当多路复用器从内部 USB0ID 连接中移位 PB0、而是将 PB0用作由 GPIO 外设控制的通用 GPIO 时、 上拉电阻保持 USB0ID、因此 PB0未连接到上拉电阻、除非您恢复 PB0连接到 USB0ID。

    关于端点未确定的问题、请再次向我提供一个项目、以便在我的 LaunchPad 上进行测试以观察这一点、如果我无法在我的末尾看到和调试、我无法提供帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [报价用户="Ralph Jacobi"]表21-1正确,但内部上拉电阻分配给 USB0ID 连接内部,而不是作为 GPIO 整体分配给 PB0

    无论 ID 引脚是如何配置的、批量器件模式 TP7似乎都无法正常工作-请自行测试...    当 ID 已在内部上拉且 PB0未配置时、仅 VBUS 引脚切换无法连接 USB0端点。 仅  在禁用 PB0和 PB1这两种类比后、才会在内部工作、而这不是单个 VBUS 引脚信令。       如果 PB0 尚未配置、内部栅极似乎优先于单引脚 VBUS 信号。  尝试在未 配置 PB0且配置 PB1的情况下强制 ID 引脚的两个极性 VBUS 引脚信号传输不起作用。

    也许我们 需要 将堆栈模式 配置为  (单引脚) VBUS 信令的 OTG 模式?  我已经问过两次这个问题,但没有得到答复。

    同样、PB0是一个模拟 I/O 、不是数字的、当 PB0已配置为模拟输入时、ID 引脚内部的任何电压将直接反映在 TP7上。 否则、ID 输入芯片结构 存在缺陷、并解释了为什么任何次要瞬态都可以轻松地退回端点客户端、而不管 ID 是如何配置的。  即使有  一个与 外设 ID 输入串联的内部转向二极管 、TP7上的电压也应大于500mV、尤其是对于 CMOS 硅结构。

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

    [报价用户="Ralph Jacobi"]关于端点未确定的问题,再次请给我一个项目在我的 LaunchPad 上进行测试以观察这一点,如果我无法在我的末尾看到和调试,我无法获得帮助。

    简单测试仅需要在 TP7上使用 DMM 电压检查、 并快速确认 为 模拟 ID 引脚98配置的 PB0未按应有的方式连接到 USB0外设 ID 输入。  TP7 ID 输入可能 是配置问题 USBStackMode、 BulkDevice 与 OTG 器件?   也许 ID 输入的上拉从未实现为数据表状态? 如果 ID 被内部上拉并且 PB0被模拟配置、则 TP7电压应该接近3V 或更高、这是没有理由的。  

    再说一次、 CMOS 模拟输入 与 用于将杂散 EMI 输入到 GPIO MUX 的天线类似、因此将 TP7保持在高于接地500mV 的水平是不合适的。 目前 已将3V3添加到  TP7的1k 上拉电阻、但仍不确定 ID 是否内部连接或是否存在 BulkDevice 模式问题。   

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

    您好 BP101、

    关于需要 OTG 与不需要 OTG 的问题是个好问题、很抱歉、我在前面的所有讨论中都错过了这个问题。 首先、D/S 的 USB 部分中的此部分包含一些与您的设置相关的详细信息:

    当在 OTG 模式下使用时、USB0VBUS 和 USB0ID 不需要任何配置、因为 它们是 USB 控制器的专用引脚、并且直接连接到 USB 连接器的 VBUS 和 ID 信号。 如果 USB 控制器用作专用主机或设备、 USB 通用控制和状态(USBGPCS)寄存 器的 DEVMOD 域可用于将 USB0VBUS 和/或 USB0ID 输入内部连接到固定电平、释放 PB0和 PB1管脚供 GPIO 使用。

    基于这一点、根据您的最终目标、您可能希望避免为 USB 控制器设置 OTG、因为它必须配置为主机、 或作为器件(即您正在执行的操作)、以便使用 GPC 将 USB0ID 连接到内部级别并释放 PB0以供使用。

    但是、关于 VBUS 信号、如果您在 VBUS 上沿着主机尝试启动会话的线路接收信号、并在会话结束时关闭 VBUS 以节省功耗、那么这种功能就是 USB OTG 的一部分。 此时、您需要将其配置为 OTG 器件并将 PB0连接为 USB0ID。

    此外、可能还有用、但自供电 USB 大容量器件的 VBUS 将按如下方式处理、不确定是否适用于您的情况:

    为了使自供电设备正常运行、仍必须对 VBUS 值进行监控 、以确保主机移除 VBUS 时、自供电设备会禁用 D+/D-上拉 电阻器。

    关于 TP7电压与悬空、进行此测量时、您对 USB 外设使用的确切配置是什么? 是否将 PB0设置为 USB 模拟引脚而不是将 GPC 寄存器设置为将 USB0ID 从内部连接到上拉电阻器? 我上次看到、您发布的代码启用了内部连接、这将根据我先前在该线程中提供的解释解释解释其浮动的原因。 如果您想重新发布您现在使用的 USB 初始化 API、以便您观察此情况、我可以修改 USB_DEV_BULK 示例并重复您的 DMM 测试。

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

    [引用 user="Ralph Jacobi"]最后我看到,您发布的代码启用了内部连接,这将解释为什么它会根据我先前在该主题中提供的解释浮动。 如果您想重新发布您现在使用的 USB 初始化 API、以便您观察此情况、我可以修改 USB_DEV_BULK 示例并重复您的 DMM 测试[/QUERPLET]

    您必须更加具体一点、这就是内部连接的含义。 正如我多次提到过的、ID 是否被强制为高电平并不重要、并且 PB0配置的模拟 TP7在 BulkDevice 模式下仍处于悬空状态。

     [引用用户="Ralph Jacobi">但是、关于 VBUS 信号、如果您在 VBUS 上按照主机尝试启动会话的线路接收信号、并在会话结束时关闭 VBUS 以节省功耗、那么这种功能就是 USB OTG 的一部分。 此时、您需要将其配置为 OTG 器件并将 PB0连接为 USB0ID。[/QUERP]

    OTG 器        件可能只将 TP7直接连接到 USB 外设的 ID 输入、因为 BulkDevice 模式根本不会这样做、TP7在所有 GPC 或 PB0配置中处于悬空状态。  VBUS 信号  传输不是用于节能模式、而是  用于在突然挂起时建立和重置客户端连接。 OTG 模式可能会确认 TP7确实可以 连接到 USB 外设的 ID 输入 、以验证 是否存在内部上拉电阻。 应该   是所有模式下都始终启用 ID 上拉、因此这是通过 TP7对 OTG 和 BulkDevice 自供电模式进行良好测试的好方法。  除了 将 VBUS 电源信息传递给主机的批量描述符之外、在自供电模式下运行的时间不多。

    [引用 USER="Ralph Jacobi">关于 TP7电压与浮动电压、进行此测量时、您对 USB 外设使用的确切配置是什么? [/报价]

      TP7的任何和所有 PB0或 GPCS ID 引脚的 BulkDevcie 配置均保持悬空状态。

    [报价用户="Ralph Jacobi"]您是否将 PB0设置为 USB 模拟引脚、而不是将 GPC 寄存器设置为在内部将 USB0ID 连接到上拉电阻器?

    我认为您错了、因为表21-1描述 了在 ID 输入上启用固定上拉电阻、无论 配置了哪种模式的 GPC。    下面从表21-1中得到的语句不是 false、就是取决于 USB 控制器的模式、假定或保留、 否则 ID 引脚芯片结构被置换。

    USBID:此信号用于检测 USB ID 信号的状态。 USB PHY 支持集成上拉、外部元件(USB 连接器)指示 USB 控制器的初始状态(下拉为电缆的 A 侧、上拉为 B 侧)。

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

    BTW:USBStackModeSet()根据所设置的器件模式修改 GPC 寄存器 ID/VBUS 字段位。 即使强制 GPCS ID 位字段进行高 ID 输入检测并使 PB0模拟输入 TP7保持悬空。 它必须与 OTG 有关、数据表表表21-1中省略或假定了相关信息。

    从技术上讲、我们应该能够在批量器件模式下禁用 PB0、并强制 GPCS ID 位字段进行高检测、因为在所有器件模式下都启用了内部 ID 上拉。 与此相关、多次 ID 输入 TP7的作用就像在 BulkDevice 模式下断开连接一样、即使 PB0配置为模拟输入、也可能是在 OTG 模式下也是如此、尚未经过测试。

    在 USB0外设简单启用且 PB0配置为模拟输入后、您是否通过 DMM TP7电平进行了测试? 表21-1未说明为了使 ID 引脚上拉功能、必须首先将 GCPS 寄存器位域配置 为一些其他非 POR 值。

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

    感谢您的讲解、以便我能够在我的结尾进行测量和后续研究

    我在 TP7上确认了在不更改 GPCS 寄存器的情况下、何时使用 GPIOPinTypeUSBAnalog 配置了大容量器件的观察结果。

    深入了解一下、内部上拉电阻是基于 USB PHY 启用的。 由于批量器件模式不需要 USB0ID 引脚、因此它不会被上拉。 设计中有意这样做、即 ID 上拉电阻并不总是使能、而是必须由 PHY 针对所需模式(其中应包括 USB OTG)或通过 GPC 寄存器强制启用。

    至于表21-1中的内容、我看不到任何一条规定它始终启用上拉电阻、因此虽然可能没有所需的描述性、但它不是"false"。

    所有这一切的关键点是、由于 USB0ID 甚至不用于 USB 大容量器件操作、它不需要上拉电阻器、浮动是可接受的自然状态。 对于 USB 大容量器件模式、与 ID 引脚状态相关的问题从未有过可追溯、因此您所面临的端点问题在其他地方仍有根本原因。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 USER="Ralph Jacobi"]所有这些要点的关键在于、由于 USB0ID 甚至不用于 USB 大容量器件操作、它不需要上拉电阻、

    当    VBUS 被提出时、该语句不是完全正确且 ID 是必需的、或者会话请求协议未能建立端点连接。 同样、如果您禁用 PB0、即使 ID 在内部被拉至高电平或被拉至高电平、也会发生完全相同的情况。 OTG 和设备模式都需要 ID、当  VBUS  通过 PB1产生时、会话请求协议永远不会建立批量端点。 Tivaware USB 库注释状态 批量器件模式 VBUS 控制会话状态、ID 必须被拉至高电平。 然而奇怪的是、模式更改为 OTG 在控制 ID 输入上没有对 PB0行为产生任何影响。

    当 PB0   看似 TTL 到 USB0外设、 且在 GPIO MUX 中预配置了集成 WPU 时、问题似乎出在模拟表21-1上。 这是 目前唯一有意义的事情。  OTG 和器件模式在 PB0的表现方式上没有区别 、因为 TP7悬空 、永远不 会成为 ID 信号的控制输入。  

     在  ID 通过 TP7拉高之前或之后、当 VBUS 处于活动状态时、无法从外部拉高死区免费 ID (OTG 模式)并启动会话请求。   因此、此类 ID 输入行为使 声明 OTG 能够 直接连接到 PB0和 PB1、这是一个错误的叙述! TP7通过 DMM 探测从330mV 向下浮动到接地、因为 PB0 作为模拟输入已连接 到未配置的 GPIO MUX 空间、 如果您愿意、这是一个黑洞。

     [引用 USER="Ralph Jacobi]'关于表21-1的内容、我看不到任何一条语句说它始终启用上拉、因此虽然可能没有必要的描述性、但它不是"false"。 [/报价]

    这是一个总括性声明、一个上拉(WPU)总是存在并且不 会减少任何推测。  "USB PHY 支持集成上拉"、这一点还可以说是多么简单。 当我们启用任何功能时、它始终可用。 PB0 必须是 TTL 输入 并在内部转换以供 GPC 使用。  PB0 变为数字、因此 TP7将不再 悬空 、使用 集成的 WPU 、USB0 将在 OTG 模式下将 ID 拉至高电平。  同样、在任何情况下 都不能 将任何模拟输入保持 在悬空状态、 没有其他方法可以说明 单靠这一点会导致其他模拟多路复用器发生混乱。    

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

    您好、Ralph、

    PB0 确实不是数字的、但如果您 通过1K 电阻器下拉 TP7、则可以确认其在 USB0中处于活动状态。 这样、无论 GPC 最后 一步强制 ID 为高电平、都将禁用会话状态协议、并通过 VBUS PB1切换控制。 未 将 PB0配置为 TP7的模拟输入引脚、这与我注意到的行为相匹配。  发现 的 GPIOPinTypeUSB() 配置 为模拟输入与 硬件外设, 硬件外设似乎 使 PB0控制 ID 输入 , 而 TP7仍然以任意方式浮动。 DM+/DM-也设置 为模拟 输入、而不是适当的硬件 保持与其他使用 AFSEL 寄存 器识别 USB 外设的外设一致、GPIO 或 SW 没有控制权。  Tivaware 调用 有时会将 外设配置与数据表文本中经过验证和写入的外设配置有所偏差。   

    我之前通过 1K 到  +3V3系列运行一个跳线 PB0、并移除 了跳线来测试 一个到 接地的下拉电阻、所以 PB0引脚98不会悬空。  奇怪   的是、如上所述、即使通过 VBUS PB1控制会话状态且 ID 被强制为低电平的器件主机、当强制拉低以匹配 PB0输入接地以停止 TP7的悬空时、通过 GPC 的 ID 状态也不起作用。