Looking to implement Remote Wakeup in CY7C64013

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Hello,

   

We are working with the CY7C64013. When we attach our device to a Windows 8 machine, and Win8 goes to Sleep, Our device goes into Suspend. I have been looking at old code Mouse code based upon the CY7C637xx, and see that there is a dedicated interrupt for this - Wakeup Interrupt Vector at 0016. There is also code for this mouse application that uses

   

"jmp clear_device_feature"

   

and

   

"jmp set_device_feature"

   

The sample code I started with had these as "jmp request_not_supported".

   

I would like to know if the CY7C64013 is able to duplicate the functionality of remote wakeup when the PC goes to sleep and any sample code for it?

   

Thanks in advance,

   

George

0 Likes
1 Solution
Anonymous
Not applicable
        Hi, When you say 0x0016 you're talking about GPIO/HAPI interrupt right? That is for waking up the chip from suspend not for signaling remote wakeup. The chip doesn't have remote wakeup functionality. Regards, Anand   

View solution in original post

0 Likes
6 Replies
Anonymous
Not applicable
        Hi, When you say 0x0016 you're talking about GPIO/HAPI interrupt right? That is for waking up the chip from suspend not for signaling remote wakeup. The chip doesn't have remote wakeup functionality. Regards, Anand   
0 Likes
Anonymous
Not applicable
        Also please let me know if this is a new design?   
Anonymous
Not applicable
        Also please let me know if this is a new design? and what is your intended end functionality? that way we can help you choose a appropriate chip   
Anonymous
Not applicable

Thanks for your reply. The 0016 interrupt vector I was referring to was for the CY7C637xx. I didn't know if the CY7C64013 implemented this functionality in a different way. We are creating a special purpose composite device - mouse/keyboard also able to communicate with a compiled VB program via endpoint2. I see Suspend and Resume nomenclature in the CY7C64013 documentation. Can this be used to implement a Remote Wakeup condition?

   

Also, the code I have been using has been based upon an old Cypress example, and the portion that I believe I need to modify, (if at all possible), starts here:

   

        h2d_std_interface_jumptable:
            jmp        request_not_supported    ; 00
            jmp        request_not_supported    ; clear_interface_feature 01
            jmp        request_not_supported    ; 02
            jmp        request_not_supported    ; set_interface_feature     03
            jmp        request_not_supported    ; 04
            jmp        request_not_supported    ; 05
            jmp        request_not_supported    ; 06
            jmp        request_not_supported    ; 07
            jmp        request_not_supported    ; 08
            jmp        request_not_supported    ; 09
            jmp        request_not_supported    ; 0A
            jmp        set_interface_interface    ; 0B
 

   

The requests 01 and 03 apparently are, (or were), valid jumps. Would these jumps be part of the puzzle for implementing Remote Wakeup?

   

Also, we are dedicated to the CY7C64013 at the moment, but if you can suggest a plug-in replacement microcontroller we would appreciate it.

   

Thanks,
George

0 Likes
Anonymous
Not applicable

So, I need to just confirm that the CY7C64013 DOES NOT support remote wakeup, as the Cypress employee mentioned back in July. I would like to try some code, but I do not want to fool myself in believing that if it works, it will work 100% of the time. (Please see my previous post for where I am.)

   

Also, what is the next logical replacement micro if the 64013 is to become obsoleted?

   

Thanks all,

   

George

0 Likes
Anonymous
Not applicable

 Hi George,

   

During remote wakeup (if the feature of remote wakeup has been set by the host through set feature before the bus goes into the suspend) the device does resume signaling (driving the bus to K state) to inform the host that it wants to resume traffic on the USB bus. It should be signalled for a time no lesser than 1ms and  no greater than 15ms.
The device does not give the level of control needed to do that. If you look at the suspend bit in the register that suspend and resume is with regards to the CPU execution not the USB suspend/resume.

Unfortunately there is not drop in replacement for this part number.
Please explain your application and reason you need this feature, I might be able to recommend an alternate method to achieve the same or another part number which would suit your application.
Regards,

   

Anand