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.

TM4C1299NCZAD: Can't test USB device eye pattern

Part Number: TM4C1299NCZAD
Other Parts Discussed in Thread: EK-TM4C1294XL

We use TM4C1299 with Microchip USB3320 ULPI PHY to achieve USB2.0 device. But when we test USB 2.0 device eye pattern, the test program shows " Operation Failed". It seems the test program EHCI HSETT can find the TM4C1299 USB device(Bulk device). But when we press EXECUTE, it shows "Operation Failed" and we can't get the correct waveform to get USB eye pattern.

Please find below ULPI setting and kind tell us why we can't test USB eye pattern.

ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ |
SYSCTL_OSC_MAIN | SYSCTL_USE_PLL |
SYSCTL_CFG_VCO_480), 60000000);

//
// Configure the device pins.
//
PinoutSet();


//
// Switch the USB ULPI Pins over.
//
USBULPIPinoutSet();

//
// Enable USB ULPI with high speed support.
//
ui32Setting = USBLIB_FEATURE_ULPI_HS;
USBOTGFeatureSet(0, USBLIB_FEATURE_USBULPI, &ui32Setting);

//
// Setting the PLL frequency to zero tells the USB library to use the
// external USB clock.
//
ui32PLLRate = 60 * 1000 * 1000;


//
// Enable the system tick.
//
ROM_SysTickPeriodSet(ui32SysClock / TICKS_PER_SECOND);
ROM_SysTickIntEnable();
ROM_SysTickEnable();

//
// Not configured initially.
//
g_ui32Flags = 0;

//
// Enable the UART that we will be redirecting.
//
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);

//
//
// Set the USB stack mode to Device mode with VBUS monitoring.
//
USBStackModeSet(0, eUSBModeForceDevice, 0);

//
// Tell the USB library the CPU clock and the PLL frequency. This is a
// new requirement for TM4C129 devices.
//
USBDCDFeatureSet(0, USBLIB_FEATURE_CPUCLK, &ui32SysClock);
USBDCDFeatureSet(0, USBLIB_FEATURE_USBPLL, &ui32PLLRate);

//
// Pass our device information to the USB library and place the device
// on the bus.
//
USBDCDCInit(0, (tUSBDCDCDevice *)&g_sCDCDevice);

  • Hello Chia,

    Can you try repeating the eye pattern test with our EK-TM4C1294XL LaunchPad using the usb_dev_bulk TivaWare example? I'd like to understand if the issue is occurring due to your own unique setup. Furthermore, I am not sure whether or not TivaWare has been made to support that test. So this would help narrow down if the issue is with TivaWare or your own unique setup.
  • The TM4C129x controller operates as a full-speed only and needs to add another ULPI PHY to achieve USB2.0. I don't have PHY EVB to connect to TM4C129x EVB. Is it necessary to verify eye pattern test with EK-TM4C1294XL LaunchPad using the usb_dev_bulk TivaWare example?
  • Hello Chia,

    I see, this is for high speed USB 2.0 operation, okay. In that case you are right the LaunchPad wouldn't be sufficient. None of our EVM's have that functionality, only a TI Design we released to show how to properly add a ULPI PHY.

    The issue on our end is we don't really have any expertise with USB eye pattern tests nor the ULPI PHY you selected, so it will be difficult to help debug this. We haven't heard of any issues with TivaWare offering for USB 2.0 operation, but I was wanting to validate that TivaWare is operating fine first with my prior request.

    Reviewing your software, a few comments

    1) I do not believe this API is necessary from reviewing our high speed example: USBOTGFeatureSet(0, USBLIB_FEATURE_USBULPI, &ui32Setting);

    2) You mention bulk device but you configure for CDC? Which device are you trying to test? If it's bulk, you need to use USBDBulkInit(0, &g_sBulkDevice); instead.

    I would also recommend is to review our high speed TI design including software: www.ti.com/.../TIDM-TM4C129USBHS

    And check your hardware setup against our System Design Guidelines: www.ti.com/.../spma056