AnsweredAssumed Answered

BF527 USB driver looping forever

Question asked by tcmichals on Aug 18, 2011
Latest reply on Dec 16, 2011 by ColinJ

Environment VisualDSP++ 5.0 with update 9 with a USB highspeed ICE.  An inhouse development board connected via USB and Ethernet to a PC.

 

The USB port is configure as a Peripheral Mode, ie client, no OTG support.

 

1. Load program into memory

2. Start.

3. After running for several seconds, system is stable and running.

4. Check to see if USB client connected to Linux.  ie lsusb, and it did.

5. Disconnect USB cable

6. I'm getting an endless loop in adi_usb_hdr.c intermitly

__ADI_USB_HDRC_SECTION_CODE
static int TransmitDataBuffer(ADI_USBOTG_DEVICE *pDev,s32_t dwEpNum)
{

....

    if(IS_BULK(pEpO->pEndpointDesc->bAttributes))
                  while(*pUSB_TXCSR & (1 << 1)) ;
       else
               *pUSB_TXCSR |= (1 << 3);

 

       }

...

}

 

basically sending out data and then unplug the USB cable, should this loop check the USB status?  Show the power pin be checked in this loop? How does the transmitter fail in this connection?

USB_TXCS = 0x2

 

Tim

Outcomes