On the USB physical bus, are endpoint data packets always exactly wMaxPacketSize in length and zero padded when the requested data size is smaller than wMaxPacketSize or are the data packets physically the size of the requested data size? I can't seem to find how zero length and short packets are physically handled. Is a short packet only logically short or physicall short also?
In other words, if we define a bulk endpoint as 512-bytes, is it wastefull of bandwidth if the endpoint is also used for transfers that are all alwyas very much smaller than this maximum packet size?
Is it more bandwidth efficient to simply define a second endpoint with a smaller wMaxPacketSize?
I'm very new to USB and this is on a Phillips LPC2888 which handles most of the low level USB protocol with its onboard USB controller but the question is for USB in general.