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.

[参考译文] Linux/AM3358:U-boot USB 错误

Guru**** 2611705 points
Other Parts Discussed in Thread: TPD4S012, TPD3S014, TPD2E2U06, TPD4E1U06

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/656474/linux-am3358-u-boot-usb-error

器件型号:AM3358
主题中讨论的其他器件:TPD4S012TPD3S014TPD2E2U06TPD4E1U06

工具/软件:Linux

我在从 u-boot 启动 USB 时收到此错误。 您知道会导致它吗?

=> USB 开始

正在启动 USB...

USB0:  正在扫描设备的总线0 ... USB_CONTRAL_MSG:请求:0x6、请求类型:0x80、值0x100索引0x0长度0x40

无法获取设备描述符(error=-71)

失败、错误-71

=>

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

    我已在 u-boot 中启用更多调试:

    => USB 开始
    正在启动 USB...
    USB0:musb-hdrc:ConfigData=0xde (UTMI-8、dyn FIFO、HB-ISO Rx、HB-ISO Tx、SoftConn)
    MUSB - hdrc:MHDRC RTL 版本2.0
    musb-hdrc:设置 fifo_mode 4.
    musb-hdrc:28/31最大 EP、16384/16384存储器
    musb-hdrc:hw_EP 0shared、最大64
    MUSB - hdrc:HW_EP 1Tx、最大512
    musb-hdrc:hw_EP 1RX、最大512
    musb-hdrc:hw_EP 2TX、最大512
    musb-hdrc:hw_EP 2RX、最大512
    musb-hdrc:hw_EP 3tx、最大512
    musb-hdrc:hw_EP 3rx、最大512
    musb-hdrc:hw_EP 4tx、最大512
    musb-hdrc:hw_EP 4rx、最大512
    musb-hdrc:hw_EP 5tx、最大512
    musb-hdrc:hw_EP 5rx、最大512
    musb-hdrc:hw_EP 6tx、最大512
    musb-hdrc:hw_EP 6rx、最大512
    musb-hdrc:hw_EP 7tx、最大512
    musb-hdrc:hw_EP 7rx、最大512
    musb-hdrc:hw_EP 8tx、最大512
    musb-hdrc:hw_EP 8rx、最大512
    musb-hdrc:hw_EP 9tx、最大512
    musb-hdrc:hw_EP 9rx、最大512
    musb-hdrc:hw_EP 10tx、最大256
    musb-hdrc:hw_EP 10rx、最大64
    musb-hdrc:hw_EP 11tx、最大256
    musb-hdrc:hw_EP 11rx、最大值为64
    musb-hdrc:hw_EP 12tx、最大256
    musb-hdrc:hw_EP 12rx、最大64
    musb-hdrc:hw_EP 13shared、最大4096
    musb-hdrc:hw_EP 14共享、最大1024
    musb-hdrc:hw_EP 15共享、最大1024
    USB Host mode controller at 47401000 using PIO、IRQ 0
    <= devctl 98
    0
    usbintr (110) epintr (0)
    ** IRQ 主机 usb0010 tx0000 rx0000
    <= Power=f0、DevCtl=5d、int_USB=0x10
    正在扫描设备的总线0 ...
    调用 USB_setup_device(),portnr=0
    USB_CONTRAL_MSG:请求:0x6、请求类型:0x80、值0x100索引0x0长度0x40
    0
    0
    qh 9df82500模板9df814e4 dev0 ep0out、hw_EP 0、9df34e00/8
    --> hw0模板9df814e4 spd3 dev0 ep0out h_addr00 h_port00字节8
    TX ep0 fifo 47401420计数8 buf 9df34e00
    启动 TX0 PIO
    0
    usbintr (0) epintr (1)
    ** IRQ 主机 usb0000 tx0001 rx0000
    <= csr0 0010、QH 9df82500、计数0、模板9df814e4、阶段1
    无响应、csr0 0010
    正在中止
    完整的9df814e4 9ff829f1 (-71)、dev0 ep0in、0/64
    无法获取设备描述符(error=-71)
    'USB@47401000'的 READ_descriptor:RET=-71
    失败、错误-71
    扫描结束
    =>

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

    请提供原理图的 USB 部分。
    您使用的是哪个处理器 SDK 版本?
    此 USB 端口是否可在 Linux 内核中工作?
    您是否有 USB 总线分析仪来捕获总线跟踪?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Bin Liu ] Bill、

    请提供原理图的 USB 部分。

    [/报价]

    [引用用户="Bin Liu ]
    您使用的是哪个处理器 SDK 版本?

    [/报价]

    我不知道、但我们使用 meta-ti 的 Morty 分支: Git://git.yoctoproject.org/meta-ti

    提交 d6f38aac2460bd82b7c91ef7b647e23cd2db9c4c
    作者:Gaurav Mitra
    日期:2017年12月21日23:09:32日+0000

    [引用用户="Bin Liu ]
    此 USB 端口是否可在 Linux 内核中工作?

    [/报价]

    还没有。

    [引用用户="Bin Liu ]
    您是否有 USB 总线分析仪来捕获总线跟踪?

    [/报价]

    否 但我有一个范围。

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

    这可能是信号完整性问题。 在 uboot 中调试 USB 函数会很困难。 您能否引导至内核并检查 USB 端口是否在内核中以主机模式工作?

    在内核中、'uname -a'命令将告知内核版本。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Bin Liu ] Bill、

    这可能是信号完整性问题。 在 uboot 中调试 USB 函数会很困难。 您能否引导至内核并检查 USB 端口是否在内核中以主机模式工作?

    [/报价]

    您希望我在内核中使用什么命令?

    [引用用户="Bin Liu ]

    在内核中、'uname -a'命令将告知内核版本。

    [/报价]

    Linux 4.9.69-g89d085d1a4 #2抢先于 CST 2018年1月12日16:32:09星期五 armv7l GNU/Linux

    供参考:我发现我们有一个可以使用的 Teledyne LeCroy USB 分析仪。

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

    Bill Morgan 说:
    您希望我从内核中使用什么命令?

    就像在 Linux PC 上执行的操作一样、将 USB 设备(例如拇指驱动器)插入您的板、然后检查您的板上是否枚举了该设备、 如果您可以访问 USB 器件、这基本上会告诉您电路板上的 USB 主机端口是否正常工作。

    [引用 USER="Bill Morgan ]Linux 4.9.69-g89d085d1a4 #2挤占周五1月12日16:32:09 CST 2018 armv7l GNU/Linux

    这似乎是 TI 支持的最新内核。

    [引述 USER="Bill Morgan "]我发现我们有一台我可以使用的 Teledyne LeCroy USB 分析仪。[/QUERPLE]

    好的、我会在我们需要时通知您。

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

    [引用用户="Bin Liu ]

    Bill Morgan
    您希望我在内核中使用什么命令?

    [/报价]

    抱歉、我不熟悉 Linux、不确定要使用什么命令。

    我有一个拇指驱动器连接到端口。

    如何检查设备是否已枚举?  

    我已尝试此命令、但未获得任何内容:

    ~# cat /sys/kernel/debug/usb/devices
    编号

    是否有任何其他命令可用于验证端口是否正常工作?

    更新:  

    我还尝试了以下命令:lsusb

    无法初始化 libusb:-99

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

    [引用用户="Bill Morgan "]

    我还尝试了以下命令:lsusb

    无法初始化 libusb:-99

    [/报价]

    这意味着 USB 驱动程序未正确加载。 请在您的板上运行以下脚本并发布输出日志、它应提供更多详细信息。

    e2e.ti.com/.../chkusb.sh_5B00_3_5D00_.txt

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

    [引用用户="Bin Liu ]

    Bill Morgan

    我还尝试了以下命令:lsusb

    无法初始化 libusb:-99

    这意味着 USB 驱动程序未正确加载。 请在您的板上运行以下脚本并发布输出日志、它应提供更多详细信息。

    (请访问网站以查看此文件)

    [/报价]

    chkusb.sh 版本0.2.4
    Linux 4.9.69-g89d085d1a4 #2抢先于 CST 2018年1月12日16:32:09星期五 armv7l GNU/Linux
    USB 初始化失败
    USB@47401000:主机、好的
    USB@47401800:OTG、禁用

    小工具内核配置:启用了 G_ZERO
    小工具内核配置:启用了 G_AUDIO
    小工具内核配置:启用了 G_ether
    小工具内核配置:启用 G_NCM
    小工具内核配置:启用了 G_MUS_STORAGE
    小工具内核配置:启用了 G_serial
    小工具内核配置:启用了 G_printer
    加载小工具驱动程序:(无)

    已安装的 USB 小工具驱动程序列表:
    /lib/modules/4.9.69-g89d085d1a4/kernel/drivers/usb/gadget:
    功能/
    传统/
    libcompose.ko
    UDC/

    /lib/modules/4.9.69-g89d085d1a4/kernel/drivers/usb/gadget/function:
    U_ete.ko
    U_serial.ko
    USB_f_acm.ko
    USB_f_ecmC.ko
    USB_f_ECM_subsbe.ko
    USB_f_eem.ko
    USB_f_fs.ko
    USB_f_hid.ko
    USB_f_mass 存储.ko
    USB_f_midi.ko
    USB_f_NCM
    USB_f_OBEX.ko
    USB_f_printer.ko
    USB_f_RNDIS.ko
    USB_f_serial.ko
    USB_f_ss_lb.ko
    USB_f_uac1.ko
    USB_f_uac2.ko
    USB_f_uvc.ko

    /lib/modules/4.9.69-g89d085d1a4/kernel/drivers/usb/gadget/legacy:
    G_ACM_ms.ko
    G_AUDIO_KO
    G_CDC.ko
    G_dbgp.ko
    格醚.ko
    G_FFS.ko
    g_hid.ko
    g_mass 存储库
    G_midi
    G_MULTI.ko
    G_NCM.ko
    g_printer.ko
    G_serial.ko
    G_webcam
    g_zero.ko
    gadgetfs.ko

    /lib/modules/4.9.69-g89d085d1a4/kernel/drivers/usb/gadget/udc:
    UDC-core.ko

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    脚本不能说明为什么 USB 失败。 我想这是一个新的问题、我不知道脚本中没有涵盖哪些内容。

    请提供内核启动日志。 在 UART 控制台上运行命令'dmesg'并捕获所有日志、然后将其附加到此处。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Bin Liu ]脚本不能说明为什么 USB 失败。 我想这是一个新的问题、我不知道脚本中没有涵盖哪些内容。

    请提供内核启动日志。 在 UART 控制台上运行命令'dmesg'并捕获所有日志、然后将其附加到此处。

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

    内核日志显示与 MUSB 相关的内核模块未加载、但未给出任何原因。

    内核启动后、请运行命令'lsmod'并发布日志。

    然后运行命令'modprobe musb_AM335x'并发布控制台日志。

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

    [引用用户="Bin Liu ]

    内核日志显示与 MUSB 相关的内核模块未加载、但未给出任何原因。

    内核启动后、请运行命令'lsmod'并发布日志。

    然后运行命令'modprobe musb_AM335x'并发布控制台日志。

    [/报价]

    modprobe musb_AM335x 输出为空。

    烟雾:

    模块          使用的大小  

    ARC4           1822 2.

    wl18xx          86831 0

    wlcore         184073 1 wl18xx

    mac80211        381231 2 wl18xx、wlcore

    cfg80211        254253 wl18xx、wlcore、mac80211

    MUSB DSP         9734 0

    Musb_hdrc        88063 1 MUSB DSP

    UDC_CORE         19450 1 musb_hdrc

    PHY_AM335x        2372 4.

    子内核         202244 1 musb_hdrc

    PHY_AM335x_CONTROL   2937 1 phy_AM335x

    PHY_generic        5372 1 phy_AM335x

    USB_common        4737 5 phy_AM335x、UDC_CORE、musb_hdrc、musb_dsp、usbcore

    Pm33xx          6433 0

    wkup_m3_IPC        8240 1 pm33xx

    wkup_m3_rproc       3670 1.

    远程处理器        28581 2 wkup_m3_rproc、wkup_m3_IPC

    TI_EMIF_SRAM       5663 1 pm33xx

    OMA_AES_DRIVER     19334 0

    Crypto_engine       7098 1 OMA_AES_DRIVER

    OMAP-SHIM        21950 0  

    wlcore_SDIO        6897 0

    RTC_OMAP         9662 1.

    MUSB AM335x        1426 0

    OMA_WDT         4634 0

    SH_FQ_CODEL       9115 6.

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

    您在运行'modprobe musb_AM335x'命令之前是否捕获了您在上面发布的 lsmod 日志?

    请在您的电路板上附加/proc/config.gz 文件。

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

    [引用用户="Bin Liu ]

    您在运行'modprobe musb_AM335x'命令之前是否捕获了您在上面发布的 lsmod 日志?

    [/报价]

    是的。 我先运行 lsmod、然后调制探针 musb_AM335x。

    [引用用户="Bin Liu ]

    请在您的电路板上附加/proc/config.gz 文件。

    [/报价]

    e2e.ti.com/.../7065.config.gz

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

    Bill、

    这将是我们解决这一问题的最后一个武器。
    请启用内核详细探测调试选项并重建内核、然后附加 dmesg 内核引导日志。 这将说明 MUSB 驱动程序探测器失败的原因。

    在内核 menuconfig 中、启用

    设备驱动程序-->
    通用驱动程序选项-->
    [*]驱动程序内核详细调试消息 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Bin Liu ]

    Bill、

    这将是我们解决这一问题的最后一个武器。
    请启用内核详细探测调试选项并重建内核、然后附加 dmesg 内核引导日志。 这将说明 MUSB 驱动程序探测器失败的原因。

    在内核 menuconfig 中、启用

    设备驱动程序-->
    通用驱动程序选项-->
    [*]驱动程序内核详细调试消息 

    [/报价]

    e2e.ti.com/.../4606.dmesg.txt

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

    似乎您没有在 DTS 中启用 cppi41dma 节点(内核引导日志用于打印一条消息以间接指示它、但内核显然不再启用)。

    以下 wiki 提供了相关详细信息。
    processors.wiki.ti.com/.../MUSB_Linux_Porting_Guide

    您还可以提供您对电路板所做的 USB 相关 DTS 更改、我可以为您进行仔细检查。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Bill、

    我更新了诊断脚本、以检查下面所附的设备树节点。 您可以在电路板上运行它并为我提供输出日志。

    e2e.ti.com/.../0777.chkusb_2D00_0.2.5.sh.txt

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

    [引用用户="Bin Liu ] Bill、

    似乎您没有在 DTS 中启用 cppi41dma 节点(内核引导日志用于打印一条消息以间接指示它、但内核显然不再启用)。

    以下 wiki 提供了相关详细信息。
    processors.wiki.ti.com/.../MUSB_Linux_Porting_Guide

    您还可以提供您对电路板所做的 USB 相关 DTS 更改、我可以为您进行仔细检查。

    [/报价]
    我已将 cppi41dma 添加到器件树中。
    USB{(&D)
    状态="确定";
    }
    
    ;&USB_CTRL_mod{
    状态="确定";
    };
    
    /usb0_phy{
    状态="确定";
    };
    
    /usb0{
    状态="正常";
    DR_MODE ="主机";
    };
    //新
    的 cppi41dma{
    状态="正常";
    };
    

    现在、当我运行 lsusb 时、我得到:

    总线001器件001:ID 1d6b:0002 Linux Foundation 2.0根集线器

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

    [引用用户="Bill Morgan "]

    现在、当我运行 lsusb 时、我得到:

    总线001器件001:ID 1d6b:0002 Linux Foundation 2.0根集线器

    [/报价]

    很棒! 现在、请插入拇指驱动器以查看 UART 控制台是否有任何枚举日志。

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

    [引用用户="Bin Liu ]

    Bill、

    我更新了诊断脚本、以检查下面所附的设备树节点。 您可以在电路板上运行它并为我提供输出日志。

    (请访问网站以查看此文件)

    [/报价]

    -sh:./chkusb-0.2.5.sh:第264行:语法错误:意外"("(期望"}")

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

    [引用用户="Bin Liu ]

    Bill Morgan

    现在、当我运行 lsusb 时、我得到:

    总线001器件001:ID 1d6b:0002 Linux Foundation 2.0根集线器

    很棒! 现在、请插入拇指驱动器以查看 UART 控制台是否有任何枚举日志。

    [/报价]

    [922.784522] USB 1-1:使用 musb-hdrc 的新型高速 USB 器件编号6
    [922.924507] USB 1-1:器件描述符读取/64、错误-71
    [923.184515] USB 1-1:器件描述符读取/64、错误-71
    [923.444524] USB 1-1:使用 USB
    923.45c-1的新高速 USB 设备:USB 923.45c-1 器件描述符读取/64、错误-71
    [923.844515] USB 1-1:器件描述符读取/64、错误-71
    [923.96464] USB USB1-port1:尝试重启
    [924.444522] USB 1-1:使用 musb-hdrc
    的新型高速 USB 器件编号8 [925.024526] USB 1-1: 使用 musb-hdr
    
    /mnt/storage 的新型高速 USB 器件9:lsusb
    总线001器件001:ID 1d6b:0002 Linux Foundation 2.0根集线器
    /mnt/storage 

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

    [引用 user="Bill Morgan "]–sh:./chkusb-0.2.5.sh:第264行:语法错误:意外的"("(预期为"}")[/quot]

    嗯、看起来您的板上的 bash 不能识别下面的行、但我不确定如何解决它。 没关系、不再需要该脚本、因为 USB 主机端口已启动并正在运行。

    264 局部_ent=('.' 'control@44e10620''USB-phy@47401300''USB-phy@47401b00'\
    265 '控制器@47402000')
    
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 USER="Bill Morgan "] USB 1-1:使用 musb-hdrc [922.924507]的新型高速 USB 器件编号6 USB 1-1:器件描述符 read/64、error -71

    这似乎是一个信号完整性问题。

    请使用分析仪捕获 USB 总线跟踪。 请附加原始的.USB 捕获文件、而不仅仅是屏幕截图。

    您可能需要考虑进行硬件检查、以确保 USB 布局正确完成。

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

    [引用用户="Bin Liu ]

    这似乎是一个信号完整性问题。

    请使用分析仪捕获 USB 总线跟踪。 请附加原始的.USB 捕获文件、而不仅仅是屏幕截图。

    您可能需要考虑进行硬件检查、以确保 USB 布局正确完成。

    [/报价]

    e2e.ti.com/.../20180117.usb

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

    [引用用户="Bin Liu ]

    您可能需要考虑进行硬件检查、以确保 USB 布局正确完成。

    [/报价]

     如果 USB0_DRVVBUS 悬空会发生什么情况?

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

    总线跟踪几乎不显示任何合法的 USB 数据包、甚至显示任何有效的高速 SOF。 您需要检查 USB 信号完整性。

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

    [报价用户="Bill Morgan "] 如果 USB0_DRVVBUS 悬空会发生什么情况?[/QUERPLET]

    只要这是好的

    插座的 VBUS 线直接连接到5V 电源轨;

    插座的 VBUS 线连接 USB0_VBUS 引脚;

    VBUS 线在插座旁边有一个120uF 的电容器。

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

    您是否使用不是24MHz 的晶体? 您能否使用示波器检查 USB 总线是否确实是480MHz?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Bin Liu ] Bill、

    您是否使用不是24MHz 的晶体?  

    [/报价]
    我们在 OSC_IN V10上使用26MHz。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请确保 Uboot 代码已修改、以便与此26MHz 晶体配合使用、它位于 include/configs/AM335x_evm.h 中 否则、USB 总线时钟不正确。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否有 omapconf 运行"omapconf export CTT > CTT.RD1"? 如果是、请在此处附上 RD1文件。

    或者、您可以使用时钟树工具中包含的 CCS 或 Lauterbach 脚本获取时钟树转储:

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

    [引用 USER="Bin Liu ]请确保 Uboot 代码已修改、以与此26MHz 晶体配合使用、它位于 include/configs/AM335x_EVM.h 中 否则、USB 总线时钟不正确。

    [/报价]
    我们不使用 AM335x_EVM.h、但我们的特定于电路板的接头具有以下特性:
    /*时钟定义*/
    #define V_OSCK 来自 T2的26000000 /*时钟输出*/
    #define V_SCLK (V_OSCK)
    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    因此、您已经正确设置了时钟、但 USB 仍然无法发送正确的数据包。 您能否使用示波器检查 USB 总线时钟是否为480MHz?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    e2e.ti.com/.../CTT_2D00_AM335x_5F00_SR2.x_5F00_SR1.0.rd1.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    RD1文件对我来说不是正确的... 在提取数据之前、芯片看起来像是被复位(例如、所有 PLL 处于旁路状态、大多数外设被禁用等)。 您能再试一次收集吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Brad Griffies"> RD1文件对我来说不正确.... 在提取数据之前、芯片看起来像是被复位(例如、所有 PLL 处于旁路状态、大多数外设被禁用等)。 您能再试一次收集吗?

    [/报价]

    第一个是在 U-Boot 之前的 SPL 结束之后。

    这个位于 U-Boot 之后、内核之前。

    e2e.ti.com/.../1033.CTT_2D00_AM335x_5F00_SR2.x_5F00_SR1.0.rd1.txt

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

    [引用 user="Brad Griffies">是否有 omapconf 运行"omapconf export CTT > CTT.RD1"? 如果是、请在此处附上 RD1文件。

    [/报价]

    我将 omapconf 添加到 rootfs.以下是输出:

    e2e.ti.com/.../ctt.rd1.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我查看了您的时钟、它们看起来是正确的。 您似乎有硬件问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Brad Griffies">我查看了您的时钟、它们看起来是正确的。 您似乎有硬件问题。

    [/报价]
    我们在 D+和 D-上使用了这些 ESD 器件之一: octopart.com/uclamp0501p.tct-semtech-1326764
    我移除了它们、现在可以从 U-Boot 和内核中看到 USB 器件、但我不确定这些器件是否正常工作。
    我将收到大量这些消息到 dmesg 日志:
    [447.414072] SCSI host0:USB-storage 1-1:1.0
    [448.487238] SCSI 0:0:0:0:0:0:直接访问 Kingston DataTraveler 3.0 PMAP PQ:0 ANSI:6
    [448.501181] SD 0:0:0:0:[SDA] 60622848 512字节逻辑块:(31.0 GB/28.9 GiB)
    [448.534494] SD 0:0:0:0:[SDA]写保护关闭
    [448.554554]
    不支持 USB 缓存[448.534494]、不支持 SDA 0:0:读1:SDA 使用 musb-hdrc [449.094441] USB
    1-1重置高速 USB 器件编号16:使用 musb-hdrc
    [449.4445444544] USB 1-1:使用 musb-hdrc 重置高速 USB 器件编号16
    [449.79454545] USB 1-1:使用 musb-hdrc 重置高速 USB 器件编号16
    :使用 musb-1 使用 MUSB hdrc
    [450.4945]复位高速 USB 器件编号16 USB 1-1:使用 MUSB hdrc
    [450.665813] SD 0:0:0:0:[SDA] TAG#0 UNKNOWN (0x2003)结果:byte=0x07 driverbyte=0x00
    、编码= 0x00、编码= 0x00、编码:028 00 00 08 00
    [450.681814] blk_update_request:I/O 错误、dev sda、扇区0
    [450.687567] dev sda 上的缓冲器 I/O 错误、逻辑块0、异步页面读取
    [450.854549] USB 1-1:使用 musb-hdrc 重置高速 USB 器件编号16
    [451.025141] USB 1-1-1: 无法获取 BOS 描述符集
    [451.030283] USB 1-1:器件固件已更改
    [451.042475] USB 1-1:USB 断开连接、器件型号16
    [451.084645] SD 0:0:0:0:[SDA]标签#0未知(0x2003)结果:hostbyte=0x01 driverbyte=0x00 [451.084645]
    SD 0:00:00:0X39:0X00:00:SDA 标签 SDA 0:0X39:0X00:0X00:28 00 00 08 00
    [451.100664] blk_update_request:I/O 错误、dev sda、扇区0
    [451.106416] dev sda 上的缓冲器 I/O 错误、逻辑块0、异步页面读取
    [451.113996] sda:无法读取分区表
    [451.175316] SD 0:0:0:0:0:0:0:0x3946:[hostbyte result:0x000=18000] sda:无法读取分区表[451.5316] SD:[451.000=0x000=0x000] sSDA 字节[result:0x000=0x000=18000=18000=000
    [SDA]检测不可用。
    [451.201849] SD 0:0:0:[SDA]连接的 SCSI 可拆卸磁盘
    [451.594430] USB 1-1:使用 musb-hdrc 的新高速 USB 器件编号17
    [451.773653] USB-storage 1-1:1.0:检测到 USB 大容量存储设备
    [451.791359] SCSI host2.0:USB-0
    :8570:1[SCSI 直接存储设备访问: Kingston DataTraveler 3.0 PMAP PQ:0 ANSI:6
    [452.901133] SD 0:0:0:0:[SDA] 60622848 512字节逻辑块:(31.0 GB/28.9 GiB)
    [452.934102] SD 0:0:0:0:0:[SDA]写保护关闭
    [452.955353] USB 0:0:0:0:0:读1:无读高速缓存[SDA
    使用 musb-hdrc
    [453.494440]重置高速 USB 器件编号17 USB 1-1:
    使用 musb-hdrc [453.844543]重置高速 USB 器件编号17 USB 1-1:使用 musb-hdrc 重置高速 USB 器件编号17
    [454.194548] USB 1-1:使用 musb-hdrc
    重置高速 USB 器件编号17 USB 4.45c1:使用 musb-1 使用 musb-hdrc
    [454.894547] USB 1-1重置高速 USB 器件编号17:使用 musb-hdrc
    [455.066183] SD 0:0:0:0:[SDA] tag#0 unknown (0x2003) result:byte=0x07 driverbyte=0x00
    [4500:0720:28]标签[SDA]:0720:24] 0:28 00 00 08 00
    [455.082153] blk_update_request:I/O 错误、dev sda、扇区0
    [455.087929] dev sda 上的缓冲器 I/O 错误、逻辑块0、异步页面读取
    [455.244547] USB 1-1:使用 musb-hdrc 重置高速 USB 器件编号17
    [455.594471] USB 1-1[455.24471] 使用 musb-hdrc [455.964416]重置高速 USB 器件编号17
    USB 1-1:
    使用 musb-hdrc 重置高速 USB 器件编号17 [456.314544] USB 1-1:使用 musb-hdrc 重置高速 USB 器件编号17
    [456.664601] USB 1-1:使用 musb-hdrc 重置高速 USB 设备编号457.17]
    USB 使用 musb-hdrc
    [457.185812] SD 0:0:0:0:0:[SDA]标签#0未知(0x2003)结果:hostbyte=0x07 driverbyte=0x00
    [457.194103] SD 0:0:[SDA]标签#0 CDB:操作码=0x00 28 00 00 00 08 00
    [457.201813] blk_update_request:I/O error、dev sda、sector 0
    [457.207564] Buffer I/O error on dev sda、logical block 0、async page read
    [457.221922] sda:Unable to read partition table
    [457.256558] SD 0:0:0:0:0:0:0:SDA [457.2219221922] sda:无法读取分区表[457.457.256558] SD [457.451]
    使用 musb-hdrc 重置高速 USB 器件编号17
    [457.7845] USB 1-1:使用 musb-hdrc 重置高速 USB 器件编号17
    [457.955096] USB 1-1:无法获取 BOS 描述符集
    [457.97241] USB 1-1:器件固件已更改
    [457.972293] USB 器件编号450
    :0469] USB 器件断开连接 拒绝 I/O 到脱机设备
    [458.019971] SCSI 0:0:0:0:[SDA]正在中止请求
    [458.024778] SCSI 0:0:0:0:0:[SDA]未知(0x2003)结果:hostbyte=0x01 driverbyte=0x00
    [458.03269] SCSI 0:0:028_028_028]
    I/O 错误、dev sda、扇区60622720
    [458.047328] dev sda 上的缓冲器 I/O 错误、逻辑块7577840、异步页面读取
    [458.464427] USB 1-1:使用 musb-hdrc 的新高速 USB 设备编号18
    [458.644789] USB 存储设备1-1:
    SCSI Mass Storage 1:691.0:检测到的 USB 主机 USB-STORAGE 1-1:1.0
    [459.824547] USB 1-1:使用 musb-hdrc
    [460.036445] SCSI 0:0:0:0:0:0:0:0:0:直接访问、重置高速 USB 器件编号18 Kingston DataTraveler 3.0 PMAP PQ:0 ANSI:6
    [460.050347] SD 0:0:0:0:[SDA] 60622848 512字节逻辑块:(31.0 GB/28.9 GiB)
    [460.082901] SD 0:0:0:0:0:[SDA]写保护关闭
    [ 460.099175] SD 0:0:4648:0:0:0:0:0:0:0:0:0:0:0:0:0:0
    使用 musb-hdrc [460.644546]
    USB 1-1重置高速 USB 器件编号18:使用 musb-hdrc
    [460.994545] USB 1-1:使用 musb-hdrc 重置高速 USB 器件编号18
    [461.344544] USB 1-1:使用 musb-hdrc 重置高速 USB 器件编号18
    :使用 musb-1 使用 musb-hdrc
    [462.044544] USB 1-1重置高速 USB 器件编号18:使用 musb-hdrc
    [462.216184] SD 0:0:0:0:[SDA] tag#0 unknown (0x2003) result:hostbyte=0x07 driverbyte=0x00 [462.216184] SD
    0:028]标签:[SDA] 02800:28] 0:[SDA]标签0:0x2428 00 00 08 00
    [462.2155] blk_update_request:I/O 错误、dev sda、扇区0
    [462.237934] dev sda 上的缓冲器 I/O 错误、逻辑块0、异步页面读取
    [462.394547] USB 1-1:使用 musb-hdr 重置高速 USB 器件编号18
    [462.74451] USB 1-451: 使用 musb-hdrc [463.094545] USB
    1-1:使用 musb-hdrc
    [463.444546] USB 1-1重置高速 USB 器件编号18:使用 musb-hdrc 重置高速 USB 器件编号18
    [463.79454545] USB 1-1:使用 musb-hdrc 重置高速 USB 设备编号18
    :使用 musb-1 使用 musb-hdrc [
    464.315138] USB 1-1:无法获取 BOS 描述符集
    [ 464.320281] USB 1-1:器件固件已更改
    [ 464.332179] USB 1-1:USB 断开连接、器件编号18
    [ 464.33874] SD 0:0:0:0:0:[464.332179] USB 1-1:0x300] SDA 0:0x370=0 (未知 driverbyte 0:0x300] SD 0:0x370=0:0x300=0
    [SDA]标签#0 CDB:操作码= 0x28 00 00 00 00 00 00 08 00
    [464.337927] blk_update_request:I/O error、dev sda、sector 0
    [464.337948] dev sda 上的缓冲器 I/O 错误、逻辑块0、异步页面读取
    [464.338082] sda:Unable to read partition table
    [464.435044] SD 0:0:0:0:46427] sSDA 页面读取[464.338082] sSDA:无法读取分区表[464.435044] SD [464.1[46446424]
    使用 musb-hdrc
    [464.994770] USB-storage 1-1:1.0:检测到 USB 海量存储设备
    [465.018894] SCSI host0:USB-storage 1-1:1.0
    [466.087324] SCSI 0:0:0:0:直接访问 Kingston DataTraveler 3.0 PMAP PQ:0 ANSI:6
    [466.101337] SD 0:0:0:0:[SDA] 60622848 512字节逻辑块:(31.0 GB/28.9 GiB)
    [466.133221] SD 0:0:0:0:[SDA]写保护关闭
    [466.149888][USB 缓存
    :466.13321]不支持[SDA 0:1:4250:0:读1:0:0:0:4250 SDA 使用 musb-hdrc 重置高速 USB 器件编号19
    [466.664546] USB 1-1:使用 musb-hdrc 重置高速 USB 器件编号19
    [466.835082] USB 1-1:无法获取 BOS 描述符集
    [466.840226] USB 1-1:器件固件已更改
    [466.852094] USB 器件编号0:461.94] USB 460
    :0:0:0:0:0:0:0:断开 USB 器件连接 [SDA] TAG#0未知(0x2003)结果:hostbyte=0x01 driverbyte=0x00
    [466.902938] SD 0:0:0:[SDA] TAG#0 CDB:操作码=0x28 00 00 00 00 00 00 00 00 00 00 08 00
    [466.910665] blk_update_request:I/O error、dev sda、sector 0
    [466.916416] dev sda 上的缓冲器 I/O 错误、逻辑块0
    
    、异步页面读取[466.924333] sda:Unable to read partition table [466.985375] SD 0:0:0:0:0:0:0:0:0:0x4000:0:0:driverbyte SDA 读取失败[466.924333] sda:无法读取分区表[466.985375] SD [466.000] SD [466.000=0x4000:0x4000:0x000=0
    [SDA]检测不可用。
    [467.026061] SD 0:0:0:0:[SDA]写保护开启
    [467.039248] SD 0:0:0:[SDA]连接的 SCSI 可移动磁盘
    [467.424548] USB 1-1:使用 musb-hdrc 的新高速 USB 设备编号20
    USB 设备[467.605242] USB 直接存储设备[467.902]USB 存储:
    461.0:1:461.0:6290] USB 存储设备461.0:1:1001:461.0:6291:0:1:100:100291:100:100:1:461.0[461.0:1:1:6USB-0:100293]USB 存储设备
    Kingston DataTraveler 3.0 PMAP PQ:0 ANSI:6
    [468.661208] SD 0:0:0:0:[SDA] 60622848 512字节逻辑块:(31.0 GB/28.9 GiB)
    [468.694512] SD 0:0:0:0:[SDA]写保护关闭
    [468.714554]
    USB 缓存:0:0:0:0:0:1 SDA 0:0:0:0 使用 musb-hdrc [469.264546]重置高速 USB 器件编号20
    USB 1-1:使用 musb-hdrc [
    469.614529]重置高速 USB 器件编号20 USB 1-1:使用 musb-hdrc 重置高速 USB 器件编号20
    [469.96454545] USB 1-1:使用 musb-hdrb 重置高速 USB 器件编号
    20 使用 MUSB hdrc
    [470.664544]复位高速 USB 器件编号20 USB 1-1:使用 MUSB hdrc
    [470.835812] SD 0:0:0:0:[SDA] TAG#0未知(0x2003)结果:byte=0x07 driverbyte=0x00
    、标签:0x4400:0[SDA]标签0:28] 0:0[SDA]标签:028 00 00 08 00
    [470.851816] blk_update_request:I/O 错误、dev sda、扇区0
    [470.857567] dev sda 上的缓冲器 I/O 错误、逻辑块0、异步页面读取
    [471.014548] USB 1-1:使用 musb-hdrc 重置高速 USB 器件编号20
    [471.45451] USB 1-1: 使用 musb-hdrc [471.714544]重置高速 USB 器件编号20
    USB 1-1:使用 musb-hdrc [
    472.064546]重置高速 USB 器件编号20 USB 1-1:使用 musb-hdrc 重置高速 USB 器件编号20
    [477614546] USB 1-1:使用 musb-hdrc 重置高速 USB 设备编号20
    USB 使用 musb-hdrc
    [472.935787] SD 0:0:0:0:0:[SDA]标签#0未知(0x2003)结果:hostbyte=0x07 driverbyte=0x00
    [472.944076] SD 0:0:0:[SDA]标签#0 CDB:操作码=0x00 28 00 00 00 08 00
    [472.951789] blk_update_request:I/O error、dev sda、sector 0
    [472.957543] Buffer I/O error on dev sda、logical block 0、async page read
    [472.971891] sda:Unable to read partition table
    [473.006428] SD 0:0:0:0:0:0:SDA:1:451:连接的 SCSI [472.971891] sda:
    使用 musb-hdrc [473.534444] USB
    1-1重置高速 USB 器件编号20:使用 musb-hdrc
    [473.884332] USB 1-1:使用 musb-hdrc 重置高速 USB 器件编号20
    [474.23454545] USB 1-1:使用 musb-hdrc 重置高速 USB 器件编号20
    :使用 musb-1 无法获取 BOS 描述符集 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    进度良好、但仍然存在数据包损坏问题、SCSI 驱动程序无法与拇指驱动器通信。 仍然看起来像信号完整性问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Bin Liu ]进度良好,但仍然存在数据包损坏问题,SCSI 驱动程序无法与拇指驱动器通信。 仍然看起来像信号完整性问题。

    [/报价]

    我从主机和从机之间拔下了一根长 USB 电缆、不再看到错误。

    我现在可以成功地在拇指驱动器上传输文件。

    是否有推荐使用的 ESD 器件?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我是一名软件人员、但我看到 AM335x GP EVM 使用 TPD4S012。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    建议将 TPD4S012用于 OTG 应用。  对于仅主机运行的 USB 2.0、我建议使用 TPD2E2U06 (单 USB 端口)或 TPD4E1U06 (双 USB 端口)。  您可能还会考虑 TPD3S014、它具有用于 D+/D-线路的 TVS 二极管、另外还有一个用于 VBUS 的限流开关。

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

    [引用用户="Brad Griffies"]

    建议将 TPD4S012用于 OTG 应用。  对于仅主机运行的 USB 2.0、我建议使用 TPD2E2U06 (单 USB 端口)或 TPD4E1U06 (双 USB 端口)。  您可能还会考虑 TPD3S014 、它具有用于 D+/D-线路的 TVS 二极管、另外还有一个用于 VBUS 的限流开关。

    [/报价]

    谢谢 Brad 和 Bin!

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

    我想在此补充一下 Bin 和 Brad 提供的出色支持:如果仅仅移除 ESD 保护器件即可解决此问题、我建议您查看 USB 布局。 听起来、在信号完整性方面可能微不足道、移除 ESD 保护器件会释放所需的裕量。

    TI.com 上的 SPRAAR7是一个很好的起点。