PORTS Forum

Ports and Interfaces => USB => Topic started by: Ray on September 24, 2011, 08:46:48 am

Title: HID Enumeration and Set_Idle
Post by: Ray on September 24, 2011, 08:46:48 am
Jan,

I tried to implement the Set_Idle request for my HID. Initially, when I was not implementing the request, the host was polling for IN reports on EP1. This was a good thing as this is the endpoint that my descriptor said would implement the IN interrupts. Once I changed my firmware to allow the use of the Set_Idle request, the host started polling EP0 for the IN rather than EP1. This now meant that the IN was always NAK'd as I was updating EP1 and not EP0. My HID Enpoint descriptor has not changed. I am still declaring that the IN is on EP1 (Address 0x81). Once I changed the firmware back to handshake a stall on receipt of a Set_Idle request the host again started polling EP1.

Implementing the Set_Idle is not that important to me, but I am curious as to why this happens.

Regards,

Ray
Title: Re: HID Enumeration and Set_Idle
Post by: Jan Axelson on September 24, 2011, 09:30:55 am
Endpoint 0 is for control requests only.

Are you sure the device is completing the Set_Idle request?

Jan
Title: Re: HID Enumeration and Set_Idle
Post by: Ray on September 25, 2011, 07:01:28 am
Jan,

You were absolutely right, thanks. I had not finished the Set_Idle request. I had not uncommented my call to setup the Status packet, so the Host was still trying to get a Status packet or STALL from the device.

Ray.
Title: Re: HID Enumeration and Set_Idle
Post by: Jan Axelson on September 27, 2011, 12:13:20 pm
I'm glad to hear you got it working.

Jan