Hi,
I'm absolving a placement in a small Company right now and my job is to implement the USB API for the 5528 into the framework of this company.
I have tested the functionality of the USB API with the examples provided by TI and the Programms are running as planned.
In the beginning i had a problem with the USB_enable()-function in the usb.c of the API-version 3.0, since it started the XT2 oscillator with the parameter XT2DRIVE_3, even though the crystal works with 4Mhz on our board. Is this a setting that is different, depending on how the board is designed by us, or is it a mistace in the API?
If started with XT2_Start(XT2DRIVE_0); everything works just fine, if the known issue in the USB_suspend() is fixed. (USBPLLCTL &=~UPLLEN; has to be put out of the if-statement.)
The device gets suspended and resumed multiple times to complete enumeration but does so successfully after a short period of time.
The problem i have right now is, that in the examples as well as in our framework, the host never suspends the device once enumeration is complete and therefore never stops the PLL and XT2 oscillator. Since in our design the device isn't powered by the Vbus, we want the device to be in suspended mode as often as possible if no data is received or has to be send. with the forceRemoteWakeup enabled we would not have any problems with reactivating the usb-device if needed, i guess.
so, is it possible to force the host to set the device into suspended mode to save some energy? is there a command the device could send or something? The device should, of cause, still be able to detect if data is incoming, but i guess the host should resume the device before sending the data.
i read somewhere the host would suspend devices automaticly after 3ms of inactivity, but the pc isn't doing so. im using windows 7 with Hterm terminal.
Since I'm doing a placement and am still studying communications technologies this is all quite new for me. I'm learnign a lot but still lack lots of knowledge, as it seems. :)
with best regards,
Tobias Kleigrewe