Reply by Boudewijn Dijkstra July 3, 20082008-07-03
Op Thu, 03 Jul 2008 07:44:26 +0200 schreef faiyaz <faiyaz.pw@gmail.com>:
> ok...I am trying to use libusb-win32 for my device. but as i had > installed > ATM6124.sys previously, windows now does not allow me to use a different > device driver. And i cannot also delete entries in the registry. I have > to rename the libusb0.sys to atm6124.sys to use it. And when i do that > and > run the sample application exe from ATMEL to test the device i am > getting a > runtime error(unhandlled exception). > Do you have any sample application code to test a device isochronous > transfer?
Other than advising you to remove drivers via the devmgmt.msc applet, I cannot help you further with this. -- Gemaakt met Opera's revolutionaire e-mailprogramma: http://www.opera.com/mail/
Reply by faiyaz July 3, 20082008-07-03
ok...I am trying to use libusb-win32 for my device. but as i had installed
ATM6124.sys previously, windows now does not allow me to use a different
device driver.  And i cannot also delete entries in the registry.  I have
to rename the libusb0.sys to atm6124.sys to use it.  And when i do that and
run the sample application exe from ATMEL to test the device i am getting a
runtime error(unhandlled exception).   
Do you have any sample application code to test a device isochronous
transfer?

Thanks in advance.
Faiyaz
Reply by Mark McDougall July 2, 20082008-07-02
faiyaz wrote:

> Do i need to refer MSDN website to know how to access isochronous endpoint > and how to do data transfer with those?
I'd strongly recommend you read "USB Complete" by Jan Axelson. It's a good introduction to the workings of USB and interaction with drivers. If you're targetting Windows, I'd also suggest you download and install the latest WDM Driver Kit and do some reading - especially if you haven't written a Windows Device Driver before. There's a lot to wade through to find information relevant to your device, but it's in there somewhere... BTW I can sympathise with your dilemma - my first USB driver project was very difficult to get off the ground simply because I had no idea even what sort of (Windows) driver I should be writing for my device, let-alone how to do it! :O Whether or not your device requires a device driver depends on the nature of the device and how you choose to present that device to Windows. Some devices, such as "standard" mice and keyboards, conform to a standard known as HID. Windows provides a generic HID Class Driver that allows direct application access to USB HID devices without the need to write another driver. That's because HID devices are well-defined plug-and-play devices that fully enumerate their I/O capabilities. Other devices, such as USB serial ports, may also make use of standard Windows drivers such as USBSER.SYS (warning: buggy as hell). These allow properly configured USB serial devices to appear in Windows without a vendor-supplied device driver. There are also several generic device drivers and/or frameworks which allow user-mode access to custom USB devices, such as the Jungo or WinDriver tools. Similar is the BULKUSB.SYS example in the WinDDK which allows application access to a device's bulk endpoints. These of course simplify software design with the penalty of user-mode execution and limitations. Not having used isochronous endpoints myself, I can't recall whether or not there's any "easy" solution to your problem. No doubt the Jungo tools will support them, but you'll be paying for it. Not knowing anything about your device, I'm guessing that unless you go Jungo, you'll be learning how to write your own USB device driver... good luck! Regards, -- Mark McDougall, Engineer Virtual Logic Pty Ltd, <http://www.vl.com.au> 21-25 King St, Rockdale, 2216 Ph: +612-9599-3255 Fax: +612-9599-3266
Reply by Boudewijn Dijkstra July 2, 20082008-07-02
Op Wed, 02 Jul 2008 06:48:39 +0200 schreef faiyaz <faiyaz.pw@gmail.com>:
>> Op Tue, 01 Jul 2008 13:09:19 +0200 schreef faiyaz <faiyaz.pw@gmail.com>: >>> I have seen the documentation of the libusb ..It does not support >>> isochronous. >> >> Where does it say that? The libusb-1.0 API Reference says it supports >> all transfer types. >> http://libusb.sourceforge.net/api-1.0/ > > Please see this page... http://libusb-win32.sourceforge.net/ > Please read the "About" portion.
It doesn't say that isochronous isn't supported. It does say that it's "100% API and functional compatible with the main libusb project." See this as well: http://www.nabble.com/An-urgent-query-regarding-LIBUSB-td17080907.html -- Gemaakt met Opera's revolutionaire e-mailprogramma: http://www.opera.com/mail/
Reply by faiyaz July 2, 20082008-07-02
>Op Tue, 01 Jul 2008 13:09:19 +0200 schreef faiyaz <faiyaz.pw@gmail.com>: >> I have seen the documentation of the libusb ..It does not support >> isochronous. > >Where does it say that? The libusb-1.0 API Reference says it supports
all
>transfer types. >http://libusb.sourceforge.net/api-1.0/ > > > >-- >Gemaakt met Opera's revolutionaire e-mailprogramma: >http://www.opera.com/mail/ >
Please see this page... http://libusb-win32.sourceforge.net/ Please read the "About" portion.
Reply by July 1, 20082008-07-01
On Jul 1, 4:16 am, "Boudewijn Dijkstra" <boudew...@indes.com> wrote:

> >> Is there a requirement to offer a device driver? Usually there is an > >> API to talk directly from the host OS to the device. > > > This is _NOT_ generally true of USB devices, especially on windows. > > It is, even on Windows. Ever heard of libusb(-win32)?
Not only heard of it, already recommended it. However, libusb is, as far as windows is concerned, a 3rd party device driver. Now actually it is only a sort of proxy driver that provides an API you can use to write your own device driver in user space, using ordinary development tools rather than the driver development kit. Perhaps you think of this user space device driver as just part of your application program. That's fine, but it still functions as a device driver.
> And Windows doesn't package drivers?
Not for most USB devices, no. The exceptions are very standardized things like keyboards, mice, disk drives where they all work the same way regardless of manufacturer. Most other devices (for example, USB- serial converter) will require a driver from the device manufacturer.
Reply by Boudewijn Dijkstra July 1, 20082008-07-01
Op Tue, 01 Jul 2008 13:09:19 +0200 schreef faiyaz <faiyaz.pw@gmail.com>:
> I have seen the documentation of the libusb ..It does not support > isochronous.
Where does it say that? The libusb-1.0 API Reference says it supports all transfer types. http://libusb.sourceforge.net/api-1.0/ -- Gemaakt met Opera's revolutionaire e-mailprogramma: http://www.opera.com/mail/
Reply by faiyaz July 1, 20082008-07-01
What I have seen in the documentation of the ATM6124 is it uses Bulk
endpoints for transfer usually on the other hand our device uses
isochronous usually.


Yes I have tried the ATM6124 device driver for our device, I think It does
enumeration, but when i run the application exe from Atmel i dont get any
relevant data from USB device.  This exe uses readfile and writefile
functions to send and receive data.  

i am using windows 2k.  Which API it  has to talk directly to the USb
device?

Do i need to refer MSDN website to know how to access isochronous endpoint
and how to do data transfer with those?

I dont know whether Atmel allow us to use the device driver they have
developed for their test board.

I have seen the documentation of the libusb ..It does not support
isochronous.

Thanks for your valuable comments
Faiyaz




Reply by Boudewijn Dijkstra July 1, 20082008-07-01
Op Mon, 30 Jun 2008 17:56:32 +0200 schreef <cs_posting@hotmail.com>:
> On Jun 30, 4:16 am, "Boudewijn Dijkstra" <boudew...@indes.com> wrote: > >> Is there a requirement to offer a device driver? Usually there is an >> API to talk directly from the host OS to the device. > > This is _NOT_ generally true of USB devices, especially on windows.
It is, even on Windows. Ever heard of libusb(-win32)?
> With the exception of some very standardized things like keyboards and > mice, the hardware vendor, and not the operating system vendor, is > expected to provide the device driver.
I wasn't talking about a device driver. The 'A' in API stands for 'application'.
> Things are a little different in the case of linux where manufacturer > support has been lacking and drivers are getting packaged with the > operating system.
And Windows doesn't package drivers? -- Gemaakt met Opera's revolutionaire e-mailprogramma: http://www.opera.com/mail/
Reply by June 30, 20082008-06-30
On Jun 30, 4:16 am, "Boudewijn Dijkstra" <boudew...@indes.com> wrote:

> Is there a requirement to offer a device driver? Usually there is an API > to talk directly from the host OS to the device.
This is _NOT_ generally true of USB devices, especially on windows. With the exception of some very standardized things like keyboards and mice, the hardware vendor, and not the operating system vendor, is expected to provide the device driver. Things are a little different in the case of linux where manufacturer support has been lacking and drivers are getting packaged with the operating system.