This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TUSB3410 running but problem with host driver using older VB6 apps using MSCOMM

Other Parts Discussed in Thread: TUSB3410

We have everything running and in production now using the TUSB3410 communicating between a serial port on our embedded controller and the USB / COM device on the PC side running XP. The problem is their are some older apps using the MSCOMM to communicate and there is a known problem with some drivers and MSCOMM and it appears that the PC driver side we received from you has this problem. According to the Microsoft support site:

When you use the Input method of the MSComm control with some serial ports, the MSComm.Input method may fail, and you may receive the comReadError error (error 8020).

This problem occurs because MSComm.Input reads only the bytes that are immediately available in the serial driver. By design, MSComm.Input does not return any bytes if the serial driver has not received any bytes. Because the MSComm control does not expect the ReadFile method to return ERROR_IO_PENDING, MSComm returns the comReadError error if this occurs.

A serial driver should return SUCCESS synchronously for all read requests that can be immediately fulfilled with data that is currently present.

This problem is only known to occur with some third-party serial drivers. To correct the problem, contact the manufacturer of the serial driver to obtain an updated driver.

 

We contacted TI about 6 months ago about this issue and it appears there may have been an update to the driver since then and was hoping you might have a fix for this. It is a real pain! Every older app using MSComm doesn't work with the 3410 and it appears to be consistent and systemic in the PC driver software.

Any help would be greatly appreciated!

 

  • Hello Chris,

    We've been re-architecturing our VCP driver during last year. It will be good if you could test it at your end and let us know your feedback.

    Unfortunately, it's also known that WDF serial drivers don't support that type of Active X components. Old WDM driver architecture was OK with these components.

    I suggest adecuating the SW app to fit into the new WDF driver architecture which support Vista and Win7 environments. You can maybe use Kernel32 API calls instead of ActiVe X components.

    Best Regards,

    Ismael

  • The guys at www.comm32.com are about to release an updated version of their MSComm compatible OCX that works just fine with the TUSB3410 device.

    www.comm32.com

    Release date for this updated version is Monday 10. May 2010

    the new Comm32.ocx is backward compatible with Microsoft's MSComm32 so can be used as a drop-in replacement for MSComm - it uses the same syntax etc but has a number of additional capabilities one of which is a mode that make it compatible with TUSB3410 devices.

    email them at support at comm32.com and I'm sure they'll be happy to send it to you pre-release.

  • Bob,

    Those are good news! Finally this "Comm" component will be with the latest WDF driver architecture (the one used for our VCP driver).

     

     

  • Download the latest version of comm32.ocx at

    http://www.comm32.com

    There's a new property which you can use to stop the above error occurring

    http://www.comm32.com/parallelenable.html

     

    The following hardware is known to trigger the Runtime error 8020 when used with MScomm32

    TUSB3410 USB adapters/virtual com ports

    Belkin Mini Bluetooth Adapter with the IVT Corporation driver.

    Both of the above have been tested and found to work correctly with the Comm32 ocx from www.comm32.com (ocx version 3.2m released 14th May 2010)

  • I just wanted to come back and let you guys know that there's now a proper .Net version of the Comm32 component.

    Comm64

    As the name suggests it is fully compatible with .net projects targeting the x64 platform but it also works just fine in x86 and 'AnyCPU' projects.

    Remember that components such as MSComm32 and the above mentioned Comm32 are 32 bit OCX components so, although Comm32.OCX works just fine in .net you are stuck with compiling for x86. If you compile for AnyCPU (The only way in Visual Studio Express edition) then your program will fail if run on a 64bit OS.

    The Comm64 component if a fully .Net compliant component with support for the TI chipset.

     

    www.comm64.com

  • Bob,

    Thanks for the update.