XS1-U12: Usb suspend/standby/sleep

Technical discussions around xCORE processors (e.g. xcore-200 & xcore.ai).
Post Reply
User avatar
Redrat
Member++
Posts: 20
Joined: Wed Feb 04, 2015 10:14 am

XS1-U12: Usb suspend/standby/sleep

Post 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.


User avatar
infiniteimprobability
XCore Legend
Posts: 1126
Joined: Thu May 27, 2010 10:08 am
Contact:

Post 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.
ChrisDodge
Junior Member
Posts: 4
Joined: Wed Feb 10, 2010 11:02 am

Post 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
User avatar
infiniteimprobability
XCore Legend
Posts: 1126
Joined: Thu May 27, 2010 10:08 am
Contact:

Post 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..
ChrisDodge
Junior Member
Posts: 4
Joined: Wed Feb 10, 2010 11:02 am

Post 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
User avatar
infiniteimprobability
XCore Legend
Posts: 1126
Joined: Thu May 27, 2010 10:08 am
Contact:

Post 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.
Post Reply