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.

[参考译文] TUSB2046B:检测每个器件、但没有键盘

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1035575/tusb2046b-detecting-every-device-but-no-keyboards

器件型号:TUSB2046B
主题中讨论的其他器件:SEGGER

您好!

我正在为 Raspberry CM4开发板。  下面是原理图的相关部分:

 

令人困惑的问题:CM4上的 Linux 发行版几乎检测到我测试过的每个器件、如记忆棒、Segger JTAG 适配器、射频鼠标适配器等。 但它不检测任何键盘。 以下是插入键盘时由"sudo tail -f /var/log/syslog 生成的日志:

9月12日15:53:08 AC3000内核:[1113.439475] USB 1-1.4:使用 dwc2的新低速 USB 器件编号54
9月12日15:53:08 AC3000内核:[ 1113.979470] USB 1-1.4:使用 dwc2的新低速 USB 器件编号55
9月12日15:53:09 AC3000内核:[ 1114.420540] USB 1-Port4:尝试重启
9月12日15:53:09 AC3000内核:[1115.079529] USB 1-1.4:使用 dwc2的新低速 USB 器件编号56
9月12日15:53:10 AC3000内核:[1115.619511] USB 1-1.4:使用 dwc2的新低速 USB 器件编号57

这是插入记忆棒时的日志:

9月12日15:54:21 AC3000内核:[1186.750085] USB 1-1.1:使用 dwc2的新全速 USB 器件编号58
9月12日15:54:21 AC3000内核:[1186.882193] USB 1-1.1:不以最高速度运行;连接到高速集线器
9月12日15:54:21 AC3000内核:[1186.888293] USB 1-1.1:找到新的 USB 设备、idVendor=1221、idProduct=3234、bcdDevice=0.00
9月12日15:54:21 AC3000内核:[ 1186.888313] USB 1-1.1:新 USB 器件字符串:MFR=1、Product=2、SerialNumber=3
9月12日15:54:21 AC3000内核:[1186.888332] USB 1-1.1:产品:闪存盘
9月12日15:54:21 AC3000内核:[1186.888349] USB 1-1.1:制造商:USB2.0
9月12日15:54:21 AC3000内核:[ 1186.888356] USB 1-1.1:序列号:1000000000001DCD
9月12日15:54:21 AC3000内核:[ 1186.889648] USB-STORAGE 1-1.1:1.0:检测到 USB 大容量存储设备
9月12日15:54:21 AC3000内核:[1186.890572] SCSI 主机0:USB-storage 1-1.1:1.0
9月12日15:54:21 AC3000 MTP-PROBE:检查总线1、器件58:"/sys/devices/platform/soc/fe980000.usb/usb1/1-1/1-1.1
9月12日15:54:21 AC3000 MTP-PROBE:总线:1、设备:58不是 MTP 设备
9月12日15:54:21 AC3000 MTP-PROBE:检查总线1、器件58:"/sys/devices/platform/soc/fe980000.usb/usb1/1-1/1-1.1
9月12日15:54:21 AC3000 MTP-PROBE:总线:1、设备:58不是 MTP 设备
9月12日15:54:21 AC3000内核:[1186.990115] USB 1-1.4:使用 dwc2的新低速 USB 器件编号59
9月12日15:54:22 AC3000内核:[1187.540120] USB 1-1.4:使用 dwc2的新低速 USB 器件编号60
9月12日15:54:22 AC3000内核:[1187.924222] SCSI 0:0:0:0:0:直接访问 USB2.0闪存盘2.10 PQ:0 ANSI:2.
9月12日15:54:22 AC3000内核:[ 1187.925036] SD 0:0:0:0:连接的 SCSI 通用 sg0类型0
9月12日15:54:22 AC3000内核:[ 1187.929200] SD 0:0:0:0:0:[SDA] 1026216 512字节逻辑块:(526 MB/501 MIB)
9月12日15:54:22 AC3000内核:[ 1187.932202] SD 0:0:0:0:[SDA]写保护关闭
9月12日15:54:22 AC3000内核:[ 1187.932225] SD 0:0:0:0:[SDA]模式检测:0B 00 08
9月12日15:54:22 AC3000内核:[ 1187.935211] SD 0:0:0:[SDA]找不到缓存模式页面
9月12日15:54:22 AC3000内核:[ 1187.935233] SD 0:0:0:[SDA]假设驱动器高速缓存:写入
9月12日15:54:22 AC3000内核:[1187.981183] USB 1-Port4:尝试重启
9月12日15:54:22 AC3000内核:[1187.993181] sda:
9月12日15:54:22 AC3000内核:[ 1188.007196] SD 0:0:0:[SDA]连接的 SCSI 可拆卸磁盘
9月12日15:54:23 AC3000内核:[1188.640106] USB 1-1.4:使用 dwc2的新型低速 USB 器件61
9月12日15:54:24 AC3000内核:[1189.180122] USB 1-1.4:使用 dwc2的新低速 USB 器件编号62

在插入键盘期间、当使用示波器探测 D+和 D-信号时、我会在 D+上看到一些信号、但只有一个平坦的零线离子 D-。  

因为我不是 USB 专家、有没有人会暗示您可以深入了解哪些方面?  

非常感谢!

此致、
Oliver

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

    全速器件在 D+上具有上拉电阻;在 D-上具有低速器件。

    D 线是否具有正确的电压? 您的下拉电阻是否真的为15 kΩ?

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

    D-为平坦的0V。 下拉电阻不是精确的15k、我放置20k||51k = 14.36k。 我点了15k 来确保这不是问题、他们明天就会来。  

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

    下面是一些从插入时开始的分析器图、这可能会有所帮助。 首先是无法正常工作的键盘:

    这就是使用正常工作的记忆棒时的样子:

    通道0:D-
    通道1:D+

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

    抱歉、我换用了信号 D +和 D-。 我刚刚重新检查了信号、正确的陈述必须是:

    在插入键盘期间、当使用示波器探测 D+和 D-信号时、我会在 D-上看到一些信号、但只有一个平坦的零线离子 D+上。  

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

    14.36 kΩ 不应产生影响。 kΩ 重要的是、它远弱于器件的1.5k Ω 上拉电阻。 (这意味着在空闲状态下、对于连接的低速设备、D+处于低电平、D-处于高电平。)

    µs 将驱动 K 状态(D-低电平、D+高电平) 20ms 以唤醒器件、或在低速数据包开始时驱动0.6 μ s。

    将 D+驱动至高电平时似乎存在问题。 下拉电阻是否太强、或者是否有一些焊接桥? 电缆可能有问题?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="96787" URL"~/support/interface-group/interface/f/interface-forum/1035575/tusb2046b-detecting-every-device-but-no-keyboards/3829149 #3829149"]下拉电阻是否太强,或者是否有焊接桥? [/报价]

    我多次仔细检查了 PCB 和电阻器值、也更换了 TUSB2046。 焊桥是否不会对所有器件都构成问题?

    [引用 userid="96787" URL"~/support/interface-group/interface/f/interface-forum/1035575/tusb2046b-detecting-every-device-but-no-keyboards/3829149 #3829149"]电缆是否存在问题?

    我尝试了四种不同的键盘、都是相同的。  

    在写这行代码时、我意识到问题可能不仅与键盘有关、还与低速设备有关。 我分析了每个正常工作的器件、它们看起来都一样、D+首先上升->高速。  

    然后我找到了其他设备、我发现了一个看起来速度也很慢的旧鼠标(先是 D -上升)。 而且、它也不起作用。

    我仍然不确定这 是否是完全与硬件相关的问题、但另一方面、相同的 CM4在没有使用集线器的另一个电路板上工作(直接连接 到 CM4的 USB 引脚)。 官方 Raspberry CM4 IO 板也是如此、它使用 Microchip 的 USB2514。  尽管如此 、我仍处于亏损状态...  

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

    您能否从 D-首先变为高电平时提供一个捕获?

    来自主机的时序似乎关闭、在发出复位信号之前、D-上拉电阻应保持100ms 的高电平。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="9945" URL"~/support/interface-group/interface/f/interface-forum/1035575/tusb2046b-detecting-every-device-but-no-keyboards/3829448 #3829448"]

    您能否从 D-首先变为高电平时提供一个捕获?

    [/报价]

    这是我上一篇文章的第二幅图像:

    或者、您是否意味着其他事情?

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

    DM 的第一个实例是在连接后变为高电平吗?  应该发生的情况是、DM 变为高电平、并保持高电平~100ms、然后从主机发送 USB 复位信号。  因此、该计时与 USB 规范不匹配、可能会导致键盘互操作问题。   

    您可以尝试在连接低速设备的情况下为系统通电吗?

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

    它看起来是一样的。 下面是一些具有不同分辨率的更多捕获:

    器件最终处于空闲状态、 系统显示:

    sudo lsusb -v

    (笑声)
    集线器端口状态:
    端口1:0000.0100电源
    端口2:0000.0301低速电源连接
    端口3:0000.0100电源
    端口4:0000.0100电源
    (笑声)

    同时、我找到了 https://www.raspberrypi.org/forums/viewtopic.php?t=246248#p1625128 和 https://e2e.ti.com/support/interface-group/interface/f/interface-forum/595619/tusb2046b-single-or-multi-transaction-translator

    您认为这可能是原因吗?

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

    嗯、没有 USB 全速集线器具有单路或多路传输转换器、这些转换器仅用于高速集线器。  Raspberry PI 驱动程序中的内容似乎不支持全速集线器后面的低速设备。

    您提到您可以使用  USB2514器件来实现此功能、您有机会获得 DP/DM 线路的示波器截图吗?

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

    这里我们是:

    第一个区别似乎是300ms 时的复位信号。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="9945" URL"~/support/interface-group/interface/f/interface-forum/1035575/tusb2046b-detecting-every-device-but-no-keyboards/3829670 #3829670"]它看起来像是 Raspberry PI 驱动程序中的某个内容、它不支持全速集线器后面的低速设备

    但 USB2514也是一款全速器件。 从其数据表中删除了有关检测 V_bus 输入的信息:"检测上游 VBUS 电源:检测上游 VBUS 电源的状态。 集线器会监控 VBUS_DET、以确定何时将内部 D+上拉电阻置为有效:(发出连接事件信号)。" 那么、D+上拉->全速、对吧?

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

    USB2514似乎是一个全速集线器。  出于某种原因、主机未像 USB2514那样向 TUSB2046端口发送预期复位、这会导致低速器件问题。  如果不能看到主机和集线器之间的 UBS 流量、则很难判断正在发生什么情况。