Hi all. I'm newbie in the USB field. but in the past week I studied alot!!
I'm using keil rl-USB library for making a composite device that uses Mass storage + HID. The proccessor used is AT91SAM7S256.
Till now the firmware was only an HID device but we dicided to deliver the little software needed for operation of the device within itself recently.
So...
AT91sam7s has endpoints numbered 0,1,2 and 3 and I seam to need 2 endpoints for my mass storage and 2 for HID device. I was wondering if t is possible at all or not and i investigated te net a bit. I read in sam7s datasheet that endpoint 0 and 3 are control type and they are bidirectional. 1. is it true endpoit 0 and 3 are bidirectional and 1 and 2 are not? 2. does bidirectional mean that i can config both direction as separate endpoints in my device?
I compiled and ran RL_lib's HID and Mass storage sample on my board successfully. I've also successfully changed the descriptor for making a composite mass storage + HID out of the 2 samples. but the HID sample seam to use endpoint 0 for sending and recieving data. it also kind of uses endpoint 3 for sending info to host(In direction) I was wondering that ... 3. is this sample using endpoint 0 for both recieving and sending data to the host? if so what is endpoint 3 doing here? 4. I wondered if endpoint 0 (IN + OUT)is the only requirement i should be able to remove endpoint 3 and did so. but after removing it from the descriptor the device won't get successfully installed on the host. It seamed that windows do not accept HID device descriptor with no additional endpoint(beside endpoint 0) configured. So, is it possible to have HID device that use endpoint 0 only?