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: VBUS error

Part Number: AM3358
Other Parts Discussed in Thread: TPS65217

Tool/software: Linux

Dear TI Member,

I have a problem with USB bus voltage on AM3358 Beaglebone Black

Here's the error :

musb-hdrc musb-hdrc.1.auto: VBUS_ERROR in a_wait_vrise (88, <AValid), retry #3, port1 0008010c

I had removed all the USB devices from the board, but the error is still there,

Any workaround it ?

Thanks

  • What Linux version are you using?
  • I'm using linux yocto for it.
  • I forget the version, but I compile it myself and it's kernel 4.xx, I put extra 147uF capacitor on VBUS, and now it seems stable, I'll give a test.
  • It's not stable,
    I got it again :
    ====================
    usb 1-1: new full-speed USB device number c
    hid-generic 0003:1B3F:2008.0001: timeout initializing reports
    input: GeneralPlus USB Audio Device as /devices/platform/ocp/47400000.usb/474010
    hid-generic 0003:1B3F:2008.0001: input: USB HID v2.01 Device [GeneralPlus USB A3
    usb 1-1: USB disconnect, device number 2
    usbcore: registered new interface driver snd-usb-audio
    musb-hdrc musb-hdrc.1.auto: VBUS_ERROR in a_wait_vrise (88, <AValid), retry #3,d
    (EE) client bug: Invalid path /dev/input/event0
    rusb 1-1: new full-speed USB device number 3 using musb-hdrc
    usb 1-1: device descriptor read/64, error -110
    ====
  • When does the failure in the log above happen? during device insertion or running application after the device is enumerated?
    Please provide the kernel version, 'uname -a' commend will tell it.
    Where on the VBUS line did you put the CAP? It should be close to the receptacle.
    You use the 5V power jack to power the Beaglebone Black board, not usb powered, right?
    What usb device you used to trigger the failure?
  • It happened during booting after reading the kernel,

    Kernel version :

    uname -a
    Linux beaglebone 4.10.9-yocto-standard #19 PREEMPT Sun Jul 23 13:39:35 AWST 2017 armv7l armv7l armv7l GNU/Linux

    I put the cap on USB port, solder on terminal + and Gnd.

    Yes I do use 5V jack,

    It's USB Audio device that trigerring the error and I attach a Creative Speaker as well with it, may be that's another issue causing over current ?

    The speaker itself needs 5V 500mA, probably I need an independent power supply for it ?

    Thanks

  • The Beaglebone board is a community board and I, as a sw guy, not sure if its PMIC design can supply the full 500mA on VBUS line. So if the USB speaker has an external power input, it is better to provide that power supply and not rely on the power from the USB port.
  • If I use external power supply for speaker the board will not boot, why is it ?

  • Now, I'm using a speaker at all, only USB sound device connected and here's the boot message :
    ======================================
    Booting Linux on physical CPU 0x0
    Linux version 4.10.9-yocto-standard (@bianchi77-HP-Pavilion-dv6-Notebook-PC) (g7
    CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
    CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    OF: fdt:Machine model: TI AM335x BeagleBone Black
    cma: Reserved 16 MiB at 0x9e800000
    Memory policy: Data cache writeback
    CPU: All CPU(s) started in SVC mode.
    AM335X ES2.1 (sgx neon)
    Built 1 zonelists in Zone order, mobility grouping on. Total pages: 129664
    Kernel command line: console=ttyO0,115200n8 root=PARTUUID=156b2128-02 rw rootfst
    PID hash table entries: 2048 (order: 1, 8192 bytes)
    Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
    Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
    Memory: 485816K/523264K available (9216K kernel code, 823K rwdata, 2912K rodata)
    Virtual kernel memory layout:
    vector : 0xffff0000 - 0xffff1000 ( 4 kB)
    fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
    vmalloc : 0xe0800000 - 0xff800000 ( 496 MB)
    lowmem : 0xc0000000 - 0xe0000000 ( 512 MB)
    pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
    modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
    .text : 0xc0008000 - 0xc0a00000 (10208 kB)
    .init : 0xc0e00000 - 0xc0f00000 (1024 kB)
    .data : 0xc0f00000 - 0xc0fcdc5c ( 824 kB)
    .bss : 0xc0fcf000 - 0xc106edbc ( 640 kB)
    SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    Preemptible hierarchical RCU implementation.
    Build-time adjustment of leaf fanout to 32.
    NR_IRQS:16 nr_irqs:16 16
    IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
    OMAP clockevent source: timer2 at 24000000 Hz
    sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
    clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7963s
    OMAP clocksource: timer1 at 24000000 Hz
    clocksource_probe: no matching clocksources found
    Console: colour dummy device 80x30
    Calibrating delay loop... 996.14 BogoMIPS (lpj=4980736)
    pid_max: default: 32768 minimum: 301
    Security Framework initialized
    Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
    Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
    CPU: Testing write buffer coherency: ok
    ftrace: allocating 30794 entries in 91 pages
    Setting up static identity map for 0x80100000 - 0x80100058
    devtmpfs: initialized
    VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
    clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 191s
    futex hash table entries: 256 (order: -1, 3072 bytes)
    xor: measuring software checksum speed
    arm4regs : 1218.800 MB/sec
    8regs : 902.800 MB/sec
    32regs : 1172.400 MB/sec
    xor: using function: arm4regs (1218.800 MB/sec)
    pinctrl core: initialized pinctrl subsystem
    NET: Registered protocol family 16
    DMA: preallocated 256 KiB pool for atomic coherent allocations
    omap_hwmod: debugss: _wait_target_disable failed
    cpuidle: using governor ladder
    cpuidle: using governor menu
    OMAP GPIO hardware version 0.1
    hw-breakpoint: debug architecture 0x4 unsupported.
    raid6: int32x1 gen() 208 MB/s
    raid6: int32x1 xor() 142 MB/s
    raid6: int32x2 gen() 226 MB/s
    raid6: int32x2 xor() 162 MB/s
    raid6: int32x4 gen() 209 MB/s
    raid6: int32x4 xor() 136 MB/s
    raid6: int32x8 gen() 175 MB/s
    raid6: int32x8 xor() 118 MB/s
    raid6: using algorithm int32x2 gen() 226 MB/s
    raid6: .... xor() 162 MB/s, rmw enabled
    raid6: using intx1 recovery algorithm
    edma 49000000.edma: TI EDMA DMA engine driver
    SCSI subsystem initialized
    usbcore: registered new interface driver usbfs
    usbcore: registered new interface driver hub
    usbcore: registered new device driver usb
    omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/sce
    omap_i2c 4819c000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/sce
    clocksource: Switched to clocksource timer1
    NET: Registered protocol family 2
    TCP established hash table entries: 4096 (order: 2, 16384 bytes)
    TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
    TCP: Hash tables configured (established 4096 bind 4096)
    UDP hash table entries: 256 (order: 0, 4096 bytes)
    UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    NET: Registered protocol family 1
    RPC: Registered named UNIX socket transport module.
    RPC: Registered udp transport module.
    RPC: Registered tcp transport module.
    RPC: Registered tcp NFSv4.1 backchannel transport module.
    hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available
    workingset: timestamp_bits=14 max_order=17 bucket_order=3
    NFS: Registering the id_resolver key type
    Key type id_resolver registered
    Key type id_legacy registered
    Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251)
    io scheduler noop registered
    io scheduler deadline registered
    io scheduler cfq registered (default)
    pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
    gpio-mockup: probe of gpio-mockup failed with error -22
    omap_uart 44e09000.serial: no wakeirq for uart0
    44e09000.serial: ttyO0 at MMIO 0x44e09000 (irq = 158, base_baud = 3000000) is a0
    console [ttyO0] enabled
    [drm] Initialized
    brd: module loaded
    mtdoops: mtd device (mtddev=name/number) must be supplied
    random: fast init done
    pinctrl-single 44e10800.pinmux: mux offset out of range: 0xfffff950 (0x238)
    pinctrl-single 44e10800.pinmux: could not add functions for spi0_pins 429496558x
    libphy: Fixed MDIO Bus: probed
    davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
    davinci_mdio 4a101000.mdio: detected phy mask fffffffe
    libphy: 4a101000.mdio: probed
    davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver SMSC LAN8710
    cpsw 4a100000.ethernet: Detected MACID = 88:c2:55:81:5a:33
    usbcore: registered new interface driver mt7601u
    usbcore: registered new interface driver rt2500usb
    usbcore: registered new interface driver rt73usb
    usbcore: registered new interface driver rt2800usb
    usbcore: registered new interface driver rtl8187
    usbcore: registered new interface driver rtl8192cu
    usbcore: registered new interface driver rtl8xxxu
    usbcore: registered new interface driver rndis_wlan
    usbcore: registered new interface driver cdc_ether
    usbcore: registered new interface driver plusb
    usbcore: registered new interface driver rndis_host
    ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
    ehci-omap: OMAP-EHCI Host Controller driver
    usbcore: registered new interface driver usb-storage
    47401300.usb-phy supply vcc not found, using dummy regulator
    musb-hdrc musb-hdrc.0.auto: Failed to request rx1.
    47401b00.usb-phy supply vcc not found, using dummy regulator
    musb-hdrc musb-hdrc.1.auto: Failed to request rx1.
    mousedev: PS/2 mouse device common for all mice
    omap_rtc 44e3e000.rtc: already running
    omap_rtc 44e3e000.rtc: rtc core: registered 44e3e000.rtc as rtc0
    i2c /dev entries driver
    omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
    omap_hsmmc 48060000.mmc: Got CD GPIO
    mmc0: host does not support reading read-only switch, assuming write-enable
    mmc0: Problem switching card into high-speed mode!
    usbcore: registered new interface driver usbhid
    usbhid: USB HID core driver
    oprofile: using arm/armv7
    u32 classifier
    Actions configured
    NET: Registered protocol family 10
    Segment Routing with IPv6
    sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
    NET: Registered protocol family 17
    Key type dns_resolver registered
    omap_voltage_late_init: Voltage driver support not added
    ThumbEE CPU extension supported.
    Btrfs loaded, crc32c=crc32c-generic
    Key type encrypted registered
    mmc0: new SDHC card at address 0001
    mmcblk0: mmc0:0001 SD16G 14.6 GiB
    mmcblk0: p1 p2
    tps65217 0-0024: TPS65217 ID 0xe version 1.2
    mmc1: new high speed MMC card at address 0001
    mmcblk1: mmc1:0001 S10004 3.56 GiB
    mmcblk1boot0: mmc1:0001 S10004 partition 1 4.00 MiB
    mmcblk1boot1: mmc1:0001 S10004 partition 2 4.00 MiB
    mmcblk1: p1 p2
    tda998x 0-0070: found TDA19988
    tilcdc 4830e000.lcdc: bound 0-0070 (ops tda998x_ops)
    [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
    [drm] No driver support for vblank timestamp query.
    [drm] Cannot find any crtc or sizes - going 1024x768
    Console: switching to colour frame buffer device 128x48
    tilcdc 4830e000.lcdc: fb0: frame buffer device
    omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
    omap_i2c 4819c000.i2c: bus 2 rev0.11 at 100 kHz
    musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver
    musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus number 1
    hub 1-0:1.0: USB hub found
    hub 1-0:1.0: 1 port detected
    console [netcon0] enabled
    netconsole: network logging started
    omap_rtc 44e3e000.rtc: setting system clock to 2017-07-29 11:39:13 UTC (1501328)
    OF: Duplicate name in testcase-data, renamed to "duplicate-name#1"
    ### dt-test ### start of unittest - you will see error messages
    OF: /testcase-data/phandle-tests/consumer-a: could not get #phandle-cells-missi1
    OF: /testcase-data/phandle-tests/consumer-a: could not get #phandle-cells-missi1
    OF: /testcase-data/phandle-tests/consumer-a: could not find phandle
    OF: /testcase-data/phandle-tests/consumer-a: could not find phandle
    OF: /testcase-data/phandle-tests/consumer-a: arguments longer than property
    OF: /testcase-data/phandle-tests/consumer-a: arguments longer than property
    irq: no irq domain found for /testcase-data/interrupts/intc0 !
    OF: overlay: overlay_is_topmost: #5 clashes #6 @/testcase-data/overlay-node/tes8
    OF: overlay: overlay #5 is not topmost
    ### dt-test ### end of unittest - 148 passed, 0 failed
    EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
    VFS: Mounted root (ext4 filesystem) on device 179:2.
    devtmpfs: mounted
    Freeing unused kernel memory: 1024K
    INIT: version 2.88 booting
    Starting udev
    udev: Not using udev cache because of changes detected in the following files:
    udev: /proc/version /proc/cmdline /proc/devices
    udev: lib/udev/rules.d/* etc/udev/rules.d/*
    udev: The udev cache will be regenerated. To identify the detected changes,
    udev: compareusb 1-1: new full-speed USB device number 2 using musb-hdrc
    the cached sysconf at /etc/udev/cache.data
    udev: against the current sysconf at /dev/shm/udev.cache
    udevd[124]: starting version 3.2.1
    udevd[125]: starting eudev-3.2.1
    omap_rng 48310000.rng: Random Number Generator ver. 20
    musb-hdrc musb-hdrc.1.auto: VBUS_ERROR in a_wait_vrise (88, <AValid), retry #3,f
    usb 1-1: device not accepting address 2, error -110
    usb 1-1: new full-speed USB device number 3 using musb-hdrc
    usb 1-1: device descriptor read/64, error -110

    =========================
  • with external power supply for speaker, it can run now but I got "hummm....." noise on my speaker..
  • I connect USB speaker to VDD_5V on Beaglebone black and it happens :
    ====
    usb 1-1: new full-speed USB device number 9 using musb-hdrc
    input: GeneralPlus USB Audio Device as /devices/platform/ocp/47400000.usb/474011
    random: crng init done
    hid-generic 0003:1B3F:2008.0002: input: USB HID v2.01 Device [GeneralPlus USB A3
    musb-hdrc musb-hdrc.1.auto: VBUS_ERROR in a_wait_vrise (88, <AValid), retry #3,f
    ====
    and the output of my USB sound device is connected to the speaker.

    I use 7805 as my 5V source, is it not enough ?
  • Riko,

    I think the problem you are facing is more like hw/board related, please ask your queries to the Beagleboard community.
  • It's stable when I don't use my active speaker, currently I try with headphone and it works ok,

    Does that USB sound device have an amplifier already, causing missed impedance match ? and triggering over current ?

  • Both of your speaker and headphone use USB connection, and the headphone works fine but the speaker gives VBUS error, right?
    You connect the speaker or headphone one at a time, didn't use a USB hub, right?

    What do you mean by "USB sound device"? the USB host port on AM3358?
  • That's my USB audio device :

    =======

    input: GeneralPlus USB Audio Device as /devices/platform/ocp/47400000.usb/474010
    hid-generic 0003:1B3F:2008.0001: input: USB HID v2.01 Device [GeneralPlus USB A3
    udevd[125]: starting eudev-3.2.1                                                
    musb-hdrc musb-hdrc.1.auto: VBUS_ERROR in a_wait_vrise (88, <AValid), retry #3,f
    omap_rng 48310000.rng: Random Number Generator ver. 20                          
    usb 1-1: 1:1: cannot set freq 48000 to ep 0x5                                   
    usb 1-1: 2:1: cannot set freq 48000 to ep 0x86 

    ==========

    It's not stable, I have put a speaker power outside USB, I used VDD_5V, but it's still intermmitent.

    I have no clue why ??

  • I have to guess on what you are doing based on multiple times reading this thread:

    Your "USB Audio Device", which connects to Beaglebone Black USB host port, has an audio output port, where you connect your speakers or headset. With the headset, the system works fine; connecting the speaker causes USB VBUS error. Even adding a 147uF cap on vbus line doesn't solve the issue. Is it correct?

    If so, it sounds like an issue on the setup with the "USB Audio Device" and the speaker. Please note that the USB2.0 Spec requires any usb device should have no more than 10uF cap on the upstream port vbus line, and doesn't drain more than 500mA current after enumeration and no more than 100mA before enumeration. You have to ensure your system does meet the requirement.
  • Yes I tried with 147uF for rectifying over current issue, but doesn't help.

    Now, I tried with 10uF without USB audio plug in and USB speaker is not connected,

    It's still got :

    ========

    Freeing unused kernel memory: 1024K
    musb-hdrc musb-hdrc.1.auto: VBUS_ERROR in a_wait_vrise (88, <AValid), retry #3, port1 0008010c
    =========

    Any clues ?

    Thanks

  • Riko Husin said:
    Now, I tried with 10uF without USB audio plug in and USB speaker is not connected,

    I don't understand what you are doing. If no USB audio device or USB speaker plugged in, what else you connected to the AM335x USB host port? Please note that the 10uF I mentioned before is the requirement for the USB device upstream port, not host port. The host port requires minimum 120uF.

    Riko Husin said:
    Any clues ?

    No idea.

    To remove any variables, please download the Processor SDK prebuilt from one of the links below, which includes both kernel image and filesystem, and test your scenarios, don't use the kernel image you built.

    http://software-dl.ti.com/processor-sdk-linux/esd/AM335X/latest/exports/ti-processor-sdk-linux-am335x-evm-04.01.00.06-Linux-x86-Install.bin

    http://software-dl.ti.com/processor-sdk-linux/esd/AM335X/latest/exports/am335x-evm-linux-sdk-bin-04.01.00.06.tar.xz

  • I have pulled out everyhing from USB port but I still got it,

    What went wrong with it ??

    ====

    EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)    
    VFS: Mounted root (ext4 filesystem) on device 179:2.                            
    devtmpfs: mounted                                                               
    Freeing unused kernel memory: 1024K                                             
    INIT: version 2.88 booting                                                      
    musb-hdrc musb-hdrc.1.auto: VBUS_ERROR in a_wait_vrise (88, <AValid), retry #3,c
    Starting udev                                                                   
    udev: Not using udev cache because of changes detected in the following files:  
    udev:     /proc/version /proc/cmdline /proc/devices                             
    udev:     lib/udev/rules.d/* etc/udev/rules.d/*                                 
    udev: The udev cache will be regenerated. To identify the detected changes,     
    udev: compare the cached sysconf at   /etc/udev/cache.data                      
    udev: against the current sysconf at  /dev/shm/udev.cache                       
    udevd[124]: starting version 3.2.1                                              
    udevd[125]: starting eudev-3.2.1                                                
    omap_rng 48310000.rng: Random Number Generator ver. 20                          
    EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)                                   
    Populating dev cache                                                            
    INIT: Entering runlevel: 5                     

    ===

    Thanks

  • Riko Husin said:

    I have pulled out everyhing from USB port but I still got it,

    What went wrong with it ??

    Which Processor SDK/Kernel do you use? Please test with the prebuilt binaries in the package in the download link I provided above, and don't plug in any usb device on the usb port.