How to choose the USB development kit?

Hi all,

I found that cypress has three products for developing USB device,
The newer two are “CY3684 EZ-USB FX2LP” and “CY3687 MoBL-USB FX2LP18”,
My goal is to use the GPIO pins of the development kit for implementing some applications.
Do they all have sample code for windows device driver?
If so, which one is suitable to me?

Thanks,
DL

This question is best addressed to Cypress. You can download the software for most kits (at least, you USED to be able to) at no charge… so you can check them out.

You choose the kit that matches the Cypress device (chip) you’re planning to use in your production design.

But let me make sure I understand: Do you want to create a USB device? Or do you JUST need some GPIOs, and you think the Cypress board is an easy way to get them? Because if you JUST want GPIOs the Cypress kit would not be a good choice.

Peter
OSR
@OSRDrivers

Peter, Thank you.
Yes, I need to control GPIOs by USB interface,at least, the development kit must have its USB driver sample,Is there other good choice for my requirement?

Date: Mon, 3 Nov 2014 07:50:38 -0500
From: xxxxx@osr.com
To: xxxxx@lists.osr.com
Subject: RE:[ntdev] How to choose the USB development kit?

This question is best addressed to Cypress. You can download the software for most kits (at least, you USED to be able to) at no charge… so you can check them out.

You choose the kit that matches the Cypress device (chip) you’re planning to use in your production design.

But let me make sure I understand: Do you want to create a USB device? Or do you JUST need some GPIOs, and you think the Cypress board is an easy way to get them? Because if you JUST want GPIOs the Cypress kit would not be a good choice.

Peter
OSR
@OSRDrivers


NTDEV is sponsored by OSR

Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev

OSR is HIRING!! See http://www.osr.com/careers

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer

xxxxx@hotmail.com wrote:

I found that cypress has three products for developing USB device,

They have WAY more than three.

The newer two are “CY3684 EZ-USB FX2LP” and “CY3687 MoBL-USB FX2LP18”,

Newer does not necessarily mean better. The venerable FX2LP, which is
the chip in the CY3684 development kit, is well-understood,
well-supported, and well-tested. The FX2LP18 is a low-voltage 1.8v
version of the same chip. Theoretically, it is used identically, it
simply uses a lower voltage power supply. If you aren’t doing a battery
operated device, there’s no particular reason to go with the FX2LP18.

Both of those chips are USB 2. As long as you aren’t going to need more
bandwidth, that’s fine. Cypress has USB 3 chips as well, but they are
more complicated.

My goal is to use the GPIO pins of the development kit for implementing some applications.
Do they all have sample code for windows device driver?
If so, which one is suitable to me?

You shouldn’t need a driver. The magic that is WinUSB can handle
everything for you, as long as you don’t need a standard class driver.

Remember, however, that these are programmable parts. You’ll need to
write firmware. Cypress ships a large number of sample firmwares in
their SDK, so you will certainly be able to find one to modify. You’ll
have to buy an 8051 compiler.

I’m a big fan of the Cypress FX2 family, but if all you need it USB
access to a few GPIO pins, there may be less complicated alternatives.
For example, the Microchip PIC 18F2550 family is an inexpensive, simple
programmable chip that does full-speed USB 2.0. It has a host of
peripherals for talking to the outside world, but if you don’t need the
peripherals, those pins can be used as GPIO lines. They’re easy to
program and fun to work with. There are good open source tools to
support the 2550.

You might also look at the products from Numato Lab at
http://numato.com. They have several boards that are specifically
USB-to-GPIO, with 8, 16, or 32 channels. I’ve never used them.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

…You’ll have to buy an 8051 compiler…

Look into SDCC. It’s an open-source C compiler for a number of 8-bit microcontrollers. It will generate 8051 code with not problems.

Greg

Gregory G Dyess wrote:

…You’ll have to buy an 8051 compiler…

Look into SDCC. It’s an open-source C compiler for a number of 8-bit microcontrollers. It will generate 8051 code with not problems.

This is true. The only problem is that the chip-specific language
extensions are not compatible with the Keil compiler, which is what all
of the Cypress samples use. There is a bit of translation to do.

Having said, that, there is good community support for SDCC, so it’s
worth a look.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

On 03-Nov-2014 17:02, §õ »x¯§ wrote:

Peter, Thank you.

Yes, I need to control GPIOs by USB interface,
at least, the development kit must have its USB driver sample,
Is there other good choice for my requirement?

Just for some GPIOs, look at V-USB:
http://www.obdev.at/products/vusb/index.html

– pa

The cypress kits used to come with a limited version of the keil compiler,
which was good enough for proof of concept.

Mark Roddy

On Mon, Nov 3, 2014 at 1:33 PM, Tim Roberts wrote:

> Gregory G Dyess wrote:
> > …You’ll have to buy an 8051 compiler…
> >
> > Look into SDCC. It’s an open-source C compiler for a number of 8-bit
> microcontrollers. It will generate 8051 code with not problems.
>
> This is true. The only problem is that the chip-specific language
> extensions are not compatible with the Keil compiler, which is what all
> of the Cypress samples use. There is a bit of translation to do.
>
> Having said, that, there is good community support for SDCC, so it’s
> worth a look.
>
> –
> Tim Roberts, xxxxx@probo.com
> Providenza & Boekelheide, Inc.
>
>
> —
> NTDEV is sponsored by OSR
>
> Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev
>
> OSR is HIRING!! See http://www.osr.com/careers
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>

Tim, Gregory, PA and Mark,
Thank you.

I think the CY3684 is a good choice because my boss may want to use other components(not only GPIOs) in the future.
Another point is that Cypress provides a completely solution for development, such as windows application sample, wdf driver sample and firmware sample,
I think that will be very helpful to me for learning and developing(I’m a new).

xxxxx@hotmail.com wrote:

I think the CY3684 is a good choice because my boss may want to use other components(not only GPIOs) in the future.

Like what? You need to have a handle on your requirements before you
choose parts. The FX2 is an excellent product and is quite flexible,
although that flexibility comes at the cost of complexity. You will
have learning curve to climb to understand the firmware. Also, remember
that the processor on the FX2 runs very slowly – you get about 4 or 5 MIPS.

For your information, remember that “CY3684” is just the number of the
development kit, which lets you explore the FX2 chip (their number
CY7C68013A). To put this into a production design, you would develop
your own circuit board using the FX2.

Another point is that Cypress provides a completely solution for development, such as windows application sample, wdf driver sample and firmware sample,

Basically all of the development kit vendors do that. Remember, your
goal should be not to write a driver at all, and that goal is completely
achievable for 99% of USB devices.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Maybe yes, maybe no.

Clearly you’re enthusiastic about WinUsb. And I agree that it’s useful. But whether the OP needs or should HAVE a driver or not is a far more complex calculus than you’re leading him to believe.

A lot of the issue revolves around how the device will be used, who’s writing the application(s) that’ll talk to the device, and where any complexity associated with how the device is managed should be located.

You can use WinUsb and put it all in your app, for every app you write that talks to this device. If you’re going to write one app, and you want your app developers to have to know all the particulars of how your device operates, that’s fine.

Or, you can write a (UMDF) driver, provide an abstract interface, and make the app writer’s life/lives easier. This makes evolving your product easier in many cases (you can hold an interface constant across time, even as the underlying device implementation changes).

So, you know… “it depends”.

Peter
OSR
@OSRDrivers

Or you can write a DLL with an abstract interface that calls into WinUSB and make the app writer’s life/lives easier. If you don’t need to manage concurrent clients and don’t need to handle device activity when there are no active clients, this is a lighter weight approach.

In the end, I agree - it depends.

-p

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@osr.com
Sent: Tuesday, November 4, 2014 1:33 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] How to choose the USB development kit?

Maybe yes, maybe no.

Clearly you’re enthusiastic about WinUsb. And I agree that it’s useful. But whether the OP needs or should HAVE a driver or not is a far more complex calculus than you’re leading him to believe.

A lot of the issue revolves around how the device will be used, who’s writing the application(s) that’ll talk to the device, and where any complexity associated with how the device is managed should be located.

You can use WinUsb and put it all in your app, for every app you write that talks to this device. If you’re going to write one app, and you want your app developers to have to know all the particulars of how your device operates, that’s fine.

Or, you can write a (UMDF) driver, provide an abstract interface, and make the app writer’s life/lives easier. This makes evolving your product easier in many cases (you can hold an interface constant across time, even as the underlying device implementation changes).

So, you know… “it depends”.

Peter
OSR
@OSRDrivers


NTDEV is sponsored by OSR

Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev

OSR is HIRING!! See http://www.osr.com/careers

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer

Another good alternative, I agree…

Peter
OSR
@OSRDrivers

Tim, Peter,
Thank you,

Like UART modem, or other interface component,
My goal is to develop a test tool for auto-verifying NB/tablet’s feature,
To do this has an advantage that can save the cost of testing resource,
Now I’m reading the “USB HID specification” and “Usage table spec” for establishing the base knowledge of developing USB device, firmware and driver.

But I really doubt if I will have the capability to modify the Cypress sample firmware after reading these specs. (Maybe there is other knowledge I need to know as well)

OSR have a USB-FX2 device, but I wish OSR should release Cypress firmware
too, so developer could do more on this device.

On Wed, Nov 5, 2014 at 6:43 AM, wrote:

> Tim, Peter,
> Thank you,
>
> Like UART modem, or other interface component,
> My goal is to develop a test tool for auto-verifying NB/tablet’s feature,
> To do this has an advantage that can save the cost of testing resource,
> Now I’m reading the “USB HID specification” and “Usage table spec” for
> establishing the base knowledge of developing USB device, firmware and
> driver.
>
> But I really doubt if I will have the capability to modify the Cypress
> sample firmware after reading these specs. (Maybe there is other knowledge
> I need to know as well)
>
>
> —
> NTDEV is sponsored by OSR
>
> Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev
>
> OSR is HIRING!! See http://www.osr.com/careers
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>

As it says in the data sheet for the USB-FX2 device, the device is not designed to be used for anything other than learning how to write Windows USB drivers. It is, very specifically, NOT a good example of how to design a USB device using the Cypress FX2 chip.

Now, having said all that, the USB-FX2 device will run any of the firmware that’s available for the Cypress demo board. For example, the BulkUsb example that’s part of the Cypress Demo Board Kit works perfectly on the OSR USB FX-2 board. The software is (or at least, was) available free for download from Cypress… including a Keil Tools trial version and all the examples.

Peter
OSR
@OSRDrivers

xxxxx@hotmail.com wrote:

But I really doubt if I will have the capability to modify the Cypress sample firmware after reading these specs. (Maybe there is other knowledge I need to know as well)

There will always be firmware modifications. The existing firmware
doesn’t know your needs. You will have to add vendor commands to read
and write the GPIOs, or to read and write the UARTs, or access whatever
peripherals you need. Usually, you are only modifying a couple of
routines, and the Cypress samples separates those out pretty well as
callbacks.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.