Automotive and Embedded Networks

Showing results for 
Search instead for 
Did you mean: 

problem with C++ code written for USB CAN 8473 and running on Windows 7 x64

I am currently developping some evaluation test programs using Visual Studio 2010 running on Windows 7 X64 . I use C++ as a preferred programming language. I have sucessfully converted and compiled the examples given for older versions of MSVC (6.0 I guess). I have also developped and successfully compiled a minimalist bus monitor dialog based application on my own. Although all these applications run I have observed the following problems:


1) The "Can receive" example works but is very sluggish


2) The "Can receive with notification " example fails after sometime and displays the following error: ErrorCanReceiveWithNotification.jpg


3) My own application works but is very sluggish as it is isnpired from the "Can receive example"


4) The MAX bus monitor works perfectly well with the same hardware configuration (Windows 7 + Icore 7 machine)


5) When I try the same code (items 1,2,3) on a laptop machine running Windows XP 32 bits I have no problems at all and the applications run flawlessly in a very fluid fashion.


6) The busload in my case is very low with the MAX bus monitor reporting an average of 9 frames pers second.


I would like to know if there could be some workaround, USB settings, compiler settings, to alleviate this problem and obtain the same behaviour under XP 32 bits and Windows 7 x64 ?




0 Kudos
Message 1 of 3

I eventually found three quarters of the solution. I found that for some unknown reason a collective computing program that usually always gracefully yields enough processor power for other applications to run smoothly, namely the BOINC manager does introduce very long latency times when the NI USB-8473 CAN driver is invoked from an application developed under Visual C++ and using the frame API.


However, the example that uses the callback notification mechanism still fails and I do not know why.



0 Kudos
Message 2 of 3

Hi Frascal,


Have you tried with another computer? Is the behavior similar with other USB Port ?

If USB 2.0 support is needed, try to use a PCI USB card which supports USB 2.0.


Which USB Chipset do you use? open up the device manager and find the USB controller, to check if the hardware use a USB 1.1 or USB 2.0.



0 Kudos
Message 3 of 3