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.

Problem to get USB_DRVVBUS active on am335

Other Parts Discussed in Thread: TPS2505

Hi.

We have done a custom design based on xam3359zcz. The design of the USB connection is almost identical to that of the Beaglebone. We are using the Ti SDK kernel and those drivers for the MUSB.

Everything seems ok on the hardware side and on the sofware side everything seems to be set up by default as expected in the source code. We are running USB0 as OTG and the USB1 as host. The drivers are loadeded and everything looks ok on the kernel side. But devices are not detected. However we can not get an active signal on the USB_DRVVBUS lines to the boost converter wich is a Ti TPS2505. We presume that this is our problem but we don't see how we can make it USB_DRVVBUS pin active!

Will be very grateful for any help.

Regards

Daniel Eriksson

  • Which TI PSP kernel are you using? Please try with the latest available at http://arago-project.org/git/projects/?p=linux-am33x.git;a=shortlog;h=refs/heads/v3.2-staging

    ajay

  • We are using the ti-sdk-am335x-evm-05.04.01.00-Linux-x86-Install.

  • Hi again

    Now I have tried the latest kernel from the repo you pointed me at. No apparant difference. Still no voltage on the USB_DRVVBUS pin from the SoC. Any more ideas?

    Regards

    Daniel

  • Can you confirm if used micro-A plug to connected to usb0 (OTG port)  and ID pin of usb1 (host only) port is grounded.

    Ajay

  • We have configured both ports as hosts in the hardware. E.i both ID-pins are grounded. We are not using micro-A plugs to connect to the ports.

  • You wrote in first post "We are running USB0 as OTG and the USB1 as host." So I thought usb0 is in OTG mode and not in host mode. How is Vbus line connected. I would recommend you to either post schematics or get it reviewed by your local ti contact.

    Ajay

  • Hi.

    Yes you're right, sorry about the confusion. We used the default configuration in the software of USB0 as OTG and USB1 as host. But hardware wise they are both configured as host.

    The USB0_DRVVBUS and USB1_DRVVBUS lines are connected directly to ENUSB1 and ENUSB2 on the Ti TPS2505. The drvvbus lines are pulled down by 10k resistors (like the Beaglebone).

    When I configure the USB1_DRVVBUS as a GPIO and set it high the signal is high and we get 5V on the USB2 output pin on the TPS2505. Also USB1_DP is high as expected. The problem is that the USB_DRVVBUS lines won't go high when they are configured to be USB pins (and not GPIO).

    I also noted that the out from driver info in this thread is different. I also made a post there but I will repeat it here.

    I happened to notice that the output from /proc/drivers/musb_hdrc.x is different compared with the output posted in the references thread above. Do you have any idea what might be wrong? It seems that our ports are inactive. is that correct? There where no devices connected when I printed this out.

    cat /proc/driver/musb_hdrc.0
    Status: MHDRC, Mode=Host (Power=e0, DevCtl=80)
    OTG state: a_idle; inactive
    Options: ?dma?, otg (peripheral+host), [eps=16]
    Peripheral address: 00
    Root port status: 00000100
    CPPI: txcr=0 txsrc=0 txena=0; rxcr=0 rxsrc=280de80 rxena=0

    cat /proc/driver/musb_hdrc.1
    Status: MHDRC, Mode=Host (Power=e0, DevCtl=80)
    OTG state: a_idle; inactive
    Options: ?dma?, otg (peripheral+host), [eps=16]
    Peripheral address: 00
    Root port status: 00000100
    CPPI: txcr=0 txsrc=0 txena=0; rxcr=0 rxsrc=280de80 rxena=0

    Regards

    // Daniel

  • Hi again.

    Problem solved. It showed that the ID pins where not connected directly to ground. The where connected via 120k resistors! When we connected the ID pins directly to ground without any resistors it worked. I guess the SoC did not detect the state of the pins correct so it thought it was a device instead of a host.

    Regards

    Daniel Eriksson