Saturday, January 28, 2006

Our connection with CY4601

The Cypress Semiconductor CY4601 reference design is a 'USB to serial converter' solution. There are a number of such products around - some, like the FTDI solution, are based on an ASIC and don't have a microcontroller at the perpheral end at all. Others, like the Cypress version, use a general-purpose USB peripheral microcontroller with appropriate firmware.

It's surprisingly difficult to emulate a PC serial port with a USB peripheral. People who haven't tried rarely believe that, but it's true for a variety of reasons. Maybe I'll post about that another time. But I think most 'power users' will have come across USB-Serial widgets at one time or another, and the experience is often imperfect.

Anyway, our connection with the product is that a long time ago, we wrote the WDM driver which ships with the Cypress reference design. The version which you can actually download from Cypress is fairly rudimentary - since that particular contract with Cypress came to an end, we have continued to improve the driver and have built a number of custom versions for various other clients. The improvements have tended to be either to application compatibility, or to general robustness. Several versions of the driver have been WHQL signed for clients.

Prior to last week, we thought the current driver was pretty much there...

1 comment:

Anonymous said...

I can attest to Will's comments above. We have used his Virtual Serial Driver and it works great for an inexpensive USB virtual serial product that we sell. The product is based on the low-speed Cypress Encore, so the throughput is lower than you would find with (say) FTDI, but our product doesn't require that speed. Also, since we can embed our function *and* the USB device side code, one chip does it all. Our CPU is under $2 whereas adding the FTDI part would double or triple our semiconductor cost.

G. Beattie
Irvine, CA
USA