From: nolen v. j. <n.v...@gm...> - 2007-06-18 20:12:44
|
Hello I have a question using bulk read and bulk write. I am doing my first usb implementation as I am learning as I go along. The device I'm using only allows a packet size of 64 bytes when doing bulk transfer. What happens when I want to send data using the usb_bulk_write that is greater than 64 bytes. For instance: Char buffer[512]; usb_bulk_write(udev, 0x02, buffer, sizeof(buffer), 5000); Will the bulk_write either: 1) write the buffer in blocks of 64 bytes until it writes the sizeof(buffer) automatically? 2) only write 64 bytes to the device? 3) Writes all 512 bytes by having the driver automatically handle the packets? If the bulk_write does not write the whole buffer to the device, do I have to write code to send the first packet, then next packet until it sends all the data by splitting the data and sending each block individually. Or does the device firmware deal with this data transfer larger than the packet size? The same question goes for bulk_read. If I want to read the contents of the data at ep3 greater than 64 bytes does the driver completes the data transfer? If not, do I have to write host code to handle larger reads or does the device firmware handle it? These questions may be redundant but I have no way of testing the actual outcome as my project partner has not written the device firmware to handle bulk_read and bulk_write on the device side. I am also having an error with usb_reap function: in debug it spits out: " timeout error" Is the fault within the device or the host. The host application I am running is the bulk.c example code. This is our first project dealing with USB and much help is appreciated Thanks in advance Nolen Velasco Jr. |