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.

Query about Am389x USB PHY Power UP

Hi experts,

I am writing for your help for the question to enable the USB PHY for AM389x.  Thanks ~

 

I followed the chapter 24.2.7 USB PHY Initialization of AM389x TRM to enable the USB0 controller as USB host (USB0MODE, bit 8 is 0 ).

 [Quote]

*0x48180B10 &= 0xFFFFFF9F; // RSTCTRL (Release USB Module from Reset)
while ((0x48180B14 & 0x00000060)>>5)!=0x3); // Wait until Modules come out Reset
*0x48180B14 |= 0x00000060; // RSTST (Clear Reset Presence)
*0x48180514 |= 0x2; // L3_SLOW_CLKSTCTRL (Enable Interconnect Clock)
*0x48180558 |= 0x2; // USB_CLKCTRL (Enable USB OCP Clock)
while(((*0x48180558) & 0x70000)>>16)==0x7); // Wait until USB Module is Ready
// Configure Access Capability to be in Supervisory Mode
*0x48140620 =0x0000_0003 //USB_CTRL Use PLL Ref Clock, Wake USB PHY1/00
USBPHY_CTRL0 default configuration is good as is and works with out the need for
adjusting parameters for most boards (boards with good h/w design).
USBPHY_CTRL1 default configuration is good as is and works with out the need for
adjusting parameters for most boards (boards with good h/w design).
// USB0 Controller Role Assumption Configuration
*0x4740_10E8 = 0x0000_0000. //A-Type, Normal Phy Mode, Normal Loopback Mode
*0x4740_10E8 = 0x0000_0100. //B-Type, Normal Phy Mode, Normal Loopback Mode
// USB1 Controller Role Assumption Configuration
*0x4740_18E8 = 0x0000_0000. //A-Type, Normal Phy Mode, Normal Loopback Mode
*0x4740_18E8 = 0x0000_0100. //B-Type, Normal Phy Mode, Normal Loopback Mode

 [Quote]

[Note] we set 0x4740_10E8 as 0 to enable the A type mode.

 

When the board boot up, Vbus error will be detected continually .  And the DEVCTL register is 0x91. (That means it is B device, and the power not up).

 

I set the USB 2.0 test mode register as 0x80 (Force Host mode) in manually for testing, the Vbus error gone, with  DEVCTL  register as 0x35,

but the controller still cannot communicate with the USB device plugged in.

 

Can you give me any clue for the right way to enable the PHY correctly? Any where I missed?

Any comments or suggestion will be very appreciated~

 

Thanks,

Songtao

 

BTW,

 

You know, from the data sheet chapter 24.2.3 VBUS Voltage Sourcing Control

[Quote]

The USB controller drives the USB_DRVVBUS signal high when it assumes the role of a host while the controller is in session.

[Quote]

 

It seems the controller itself will drive the VBUS to high if it working at the host mode, and we set the session bit. Is that right?