Page 1 of 1

XS1-U12: Usb suspend/standby/sleep

Posted: Tue Jul 11, 2017 4:13 pm
by Redrat
Hello,

I'm trying to implement/get my head around USB sleep/suspend on a XS1-U12.
The datasheet states that the device will transition to the Asleep state when USB block requests standby, but this doesn't seem to be happening; am I missing some vital initialisation for this to happen?
Alternatively if I manually trigger the sleep inside the XUD_UserSuspend() function the device won't wake again from usb resume.

I'm using Xmos Tools 14.3 & lib_usb 3.1.2.

I'd appreciate any help.

Thanks,
Red.

Re: XS1-U12: Usb suspend/standby/sleep

Posted: Fri Jul 14, 2017 9:25 am
by infiniteimprobability
HI, As far as I'm aware the USB suspend is not functional in the silicon. I don't recall the exact details but there was a project a while ago where suspend was evaluated and external logic was implemented to detect the K state for USB resume which latched the power back on. The work was never productised and it required a lot of work to sc_xud to get it to support the state transitions and work to the bootloader to meet the boot times to meet the USB spec. I'll find out if there is any more info on this.

Re: XS1-U12: Usb suspend/standby/sleep

Posted: Mon Jul 24, 2017 9:51 am
by ChrisDodge
Hi,

Thanks for the answer, but that doesn’t quite make sense! The datasheet for the XS1-U12A-128-FB217 (2015-04-14) clearly states that “A transition from the ASLEEP state into the AWAKE state is instigated by a wakeup request triggered by a request from the USB block to exit standby mode an input, or a timer.” – section 14.2.

Also looking at the registers in section K, the power control block, general control register (0x00) bits 8 and 9 are for switching the USB suspend controller to USB power down and power up enable.

So is all this not actually the case?

Thanks,

CD

Re: XS1-U12: Usb suspend/standby/sleep

Posted: Mon Jul 24, 2017 10:07 am
by infiniteimprobability
Hi, I have done some more digging and that is indeed the design of the logic. It was verified in the chip but software support for it was never developed (sc_xud library) and so I guess you could call that unvalidated.
Apologies for the confusion..

Re: XS1-U12: Usb suspend/standby/sleep

Posted: Mon Jul 24, 2017 10:14 am
by ChrisDodge
Hi,

Thanks for looking into this, and that sounds more positive. So does that mean in principle that if we poke the various registers directly, we should be able to get the U device to transition from AWAKE to ASLEEP and back again by following the USB bus' suspend state?

Thanks,

CD

Re: XS1-U12: Usb suspend/standby/sleep

Posted: Tue Jul 25, 2017 8:12 am
by infiniteimprobability
should be able to get the U device to transition from AWAKE to ASLEEP and back again
Should be able to, but I'm hesitant to say it will all run smoothly because we haven't validated the operation ourselves in software in an application as previously mentioned.