Other Parts Discussed in Thread: TUSB1210, TM4C129ENCPDT
I am trying to get a high-speed ULPI interface working with the MSP432E401Y Launchpad.
My application works great using the internal full-speed PHY. I have purchased a TI TUSB1210 eval board and am trying to integrate it to get high-speed working. After some hiccups (it wasn't documented in the "EVM Installation" section of the eval board manual that you need to provide an external 1.8V supply - you would think that the eval board would include that), the eval board seems to be up and running - it is emitting a 60 MHz 1.8V clock on CLOCKOUT.
I believe I've wired all 12 ULPI signals to the 432, and I've
- Called GPIOPinConfigure for each pin to select its USB function
- Called GPIOPinTypeUSBDigital for each pin
- Called GPIOPadConfigSet for the 10 pins that are outputs, to set their drive strength to 12 mA
- Called USBDCDFeatureSet(0,USBLIB_FEATURE_USBULPI, &ui32ULPI) with ui32ULPI = USBLIB_FEATURE_ULPI_HS
- Called USBDCDFeatureSet(0, USBLIB_FEATURE_USBPLL, &ui32PllRate) with ui32PllRate = 0 in order to select External Clock (this is NOT documented, but I was able to suss it out by browsing the DriverLib code).
I can see the 60 MHz clock going to the 432.
But startup fails during USBDCompositeInit(), which calls USBDCDInit(), which calls ULPIConfigSet(), which calls USBULPIRegRead(). RegRead hangs waiting for the USB_ULPIREGCTL_REGCMPLT flag to come true.
When I investigate with my scope, I discovered that the USB0STP signal from the 432 is not behaving as I expected.
- It is not going low to signal a ULPI transaction
- It is pinned high at 3.3V, whereas I was expecting it to be a 1.8V-level signal to match the ULPI PHY.
I have spent at least two hours searching for examples. The closest I have found is for the TM4C29x, but I haven't found actual code. I did find a query from a guy on the forums who was struggling with a similar issue for the TM4C29x. I have driven all of his stuff to ground and can't find anything he's doing that I wasn't. Although I didn't find where he'd achieved success, either.
But I haven't found a whiff on a search for ULPI & MSP432E4. Any pointers? It would be great to have a single working example.
Thanks,
Brad