cancel
Showing results for 
Search instead for 
Did you mean: 

HID + MSD composite device

giuseppe239955
Associate II
Posted on April 21, 2011 at 10:02

HID + MSD composite device

4 REPLIES 4
giuseppe239955
Associate II
Posted on May 17, 2011 at 14:32

Hi,

Everything you mentioned to change. I did it. I've monitored the usb with usbmonitor and the host is sending info to the right endpoint. It look like the device is not triggered by this. The callback function is not called. Not even the low priority interrupt routine.

The usb hid demonstrator is here: 

http://www.st.com/internet/mcu/product/164495.jsp

sincerely, Giuseppe

drzile86
Associate II
Posted on May 17, 2011 at 14:32

Hi,

I try to debug your problem, but i can't find usb hid demonstrator GUI on ST.com to download anymore, so I didn't try this code in practice, on the STM3210C eval board.

I have also modified custom hid example from st, and try to used EP3 not EP1 like in example. I think you have to change:

in usb_desc.c file: bEndpointAddress from 0x81(EP1_IN) to 0x83(EP3_IN)

    

    

    

    

    

     and from 

0x81(EP1_OUT) to 0x83(EP3_OUT)

in usb_conf.h file: uncomment line #define  EP1_OUT_Callback   NOP_Process

and comment line // #define  EP3_OUT_Callback   NOP_Process

in usb_endp.c file: use callback void EP3_OUT_Callback(void) and read like

USB_SIL_Read(0x03, Receive_Buffer); //read from EP3_OUT endpoint

On 2 projects I have worked with hid device. In the first project I had composite device (ISO + HID) and I have used endpoints EP2_IN and EP2_OUT for HID, and on the second(only HID) I've used EP1_IN and EP1_OUT. So I have never used EP3 and I can't tell you does it works with HID.

Regards,

Dragan

giuseppe239955
Associate II
Posted on May 17, 2011 at 14:32

Hi,

I've changed the endpoint HID from 3 to 4. Now it all works. I have MSD on endpoint 1 and 2 and HID on 4.

I don't understand why it didn't work on endpoint 3. Do you have any clue?

Thanks.

Giuseppe
drzile86
Associate II
Posted on May 17, 2011 at 14:32

Hi,

Sorry for the delay I was on holiday 🙂

Great....

I'm not sure, maybe it is a bug in the st library. Also in usb_prop.c file we must change endpoint configuration in void CustomHID_Reset(void), but still I can not try this, now because I don't have USB micro cable for my STM3210C eval board 🙂

If I have time i will try this later.

Regards,

Dragan