From owner-freebsd-hackers@FreeBSD.ORG Sat Apr 9 01:06:31 2005 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 49A2F16A4CE for ; Sat, 9 Apr 2005 01:06:31 +0000 (GMT) Received: from mail.vicor-nb.com (bigwoop.vicor-nb.com [208.206.78.2]) by mx1.FreeBSD.org (Postfix) with ESMTP id 01F4843D41 for ; Sat, 9 Apr 2005 01:06:31 +0000 (GMT) (envelope-from julian@elischer.org) Received: from [208.206.78.97] (julian.vicor-nb.com [208.206.78.97]) by mail.vicor-nb.com (Postfix) with ESMTP id A8C8E7A424; Fri, 8 Apr 2005 18:06:30 -0700 (PDT) Message-ID: <42572A96.4090205@elischer.org> Date: Fri, 08 Apr 2005 18:06:30 -0700 From: Julian Elischer User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.7.5) Gecko/20050218 X-Accept-Language: en, hu MIME-Version: 1.0 To: Maksim Yevmenkin References: <16982.46075.115518.130213@canoe.dclg.ca> <4256B5EB.9080506@savvis.net> <16982.47024.135663.645297@canoe.dclg.ca> <20050408190514.GS96690@cicely12.cicely.de> <16983.465.572693.73195@canoe.dclg.ca> <20050408233301.GW96690@cicely12.cicely.de> <4257181F.1040904@savvis.net> In-Reply-To: <4257181F.1040904@savvis.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit cc: freebsd-hackers@freebsd.org cc: ticso@cicely.de cc: David Gilbert Subject: Re: Tricky USB device. X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 09 Apr 2005 01:06:31 -0000 Maksim Yevmenkin wrote: > Bernd Walter wrote: > >> On Fri, Apr 08, 2005 at 06:12:33PM -0400, David Gilbert wrote: >> >>> Bernd> Has this device multiple interfaces? e.g. one HID and >>> another Bernd> as described. I often thought about getting ugen >>> working at Bernd> interface level too. >>> >>> Here's the output of udesc_dump on it. Right now, using the >>> current version of libusb (not the version from ports), I can use >>> usb_interrupt_write(dev, 1, "MK255", 5, 0) to send data to it --- >>> and the data is sent --- at least lights on the USB hub flash. If >>> I replace '1' with anything else, it doesn't accept it. However, >>> it doesn't seem to have opened the relays. >> >> >> Yes - you must use 1 - there is only one out-endpoint. 0x81 is for >> receiving data and endpoint 0 is the mandandory control endpoint. >> Interrupt Endpoints are not variable in size. Both interrupt >> endpoints are 8 Bytes, so you must read and write exact 8 Bytes per >> transfer - 5 shouldn't work for USB compliant devices. > the device may accept 5 bytes of data. if it's feeling charitable. but you probably should send teh number of bytes suggested by the endpoint descriptor. that number is at least guaranteed to work. Hang on.. I'm trying to remember if the 8 includes the header.. if so then you probably only get 5 bytes of data space.. I need to go back to my USB book. From what I saw before, you may need to set the configuration number to 1 before it will do anything. so you may need to do a setConfiguration(1) then you should be able to read on the descriptor for endpoint 81. it should block until there is some activity to report on the switch. I'm guessing writing all 1s to endpoint 1 sets some leds or something. > > hmmm... i was always confused about bMaxPacketSize. i was thinking > that it limits the size of one usb transaction, and it could take > several usb transactions to transfer one data packet. > > for example i have a bluetooth usb dongle that has > > Standard Endpoint Descriptor: > bLength 7 > bDescriptorType 05 > bEndpointAddress 81 (in) > bmAttributes 03 (Interruput) > wMaxPacketSize 16 > bInterval 1 > > and i certanly can receive data packets from this endpoint that are > more (and less) then 16 bytes in size. so, i would guess (and i might > be wrong) that it is ok to send/receive data packets that are not > equal to bMaxPacketSize in size. yes bMaxPacketSize is the maximum single packet that the endpoint will handle, however many such transactions can be used to make up a USB request fronm the user.. > > max > _______________________________________________ > freebsd-hackers@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to > "freebsd-hackers-unsubscribe@freebsd.org"