Disparity between windows 7 and windows 10 with transmit error saying “transmit queue full”

I am using USB to CAN pro v2 to communicate with a system. But when I use it in windows 10 (works on windows 7), it gives me the “Transmit queue Full” error and does not transfer some files that I have to upload.

These are binary files which need to transfer on the other system.

I am using VCI V4 drivers on windows 10 as VCI v3 does not support boot enabled.

Please guide me in the same.

Please send the files we spoke about on phone.

Here are some C files for the same.

@PIYUSH_KHAJANJI,

Can you tell me which version of VCI DLL your application uses ((vci11un6.dll (VCI2 API), vcinpl.dll (VCI3 API), vciapi.dll (VCI4 API))?

Do you know what the actual function name is that is called when the error occurs?

Thanks,

Kyle

As per the code, We are using the VCI3 API (vcinpl.dll).

Yes its in ixxatsupport.c
function is
"int sendIxxatDataMessage( BR_CAN_DATA_MESSAGE brCanDataMessage ) "

This is the response from our German colleagues:

  1. Please update the bootmanager up to v0.2.5.0 under Windows XP,
    if you use a USB-to-CAN II with the bootmanager v0.2.4.0
    (you can check the version number using the VCI4floadGUI tool
    from the VCI4 installation directory).

    The wrong firmware warning can be ignored,
    because the USB-to-CAN II does not have any firmware in the falsh.

  2. The “Transmit que full” can occur
    if the application try to enter CAN messages in to the transmit queue faster
    than the CAN controller can send it to the CAN bus.

  3. Could you please let me know if you can check
    if there are Error Frames on the CAN bus?

  4. Could you please let me know if the USB-to-CAN II
    can successfully transmit CAN messages
    using the canAnalyser V3 mini installed with the VCI V4.0.856.0?

  5. Please note
    using the CAN baudrate 125kBd the CAN controller can send
    maximum about 1125 CAN messages per second.

  6. The function „sendIxxatDataMessage“ transmits only one CAN message unsing

    // write the CAN message into the transmit FIFO
    hResult = DYNCALL(canChannelSendMessage)(hCanChn, INFINITE, &sCanMsg);

    Could you please let me know how the application call the “sendIxxatDataMessage“?

  7. Is the CAN bus terminated with two CAN termination resistors?
    (120 Ohm between CAN_H and CAN_L at each end of the CAN bus)

  1. I went VCI4fload GUI tool: This is the info below:
    Hardware: V 00.00.00.00
    Driver: V 04.00.172.0000
    Unique HW ID [HW534047]

scan firmwre info on device
Vci4_bal V00.01.06.03 FLASH

I was not able to find v0.2.5.0 or the bootmanager info.

  1. Yes, we are keeping that under the CAN controller range.

  2. I cannot see any as of now.

  3. Yes, I used Cananlyser MINI to send some data in cyclic format as well.

  4. Yes, our baud rate is 125kb

  5. We call the function with canDeviceWrite(txdata) where txdata is data to be transmitted

function:
int canDeviceWrite( BR_CAN_DATA_MESSAGE txData )
{
if (usbCanDeviceType)
{
if ( usbCanDeviceType == USB_CAN_DEVICE_TYPE_IS_IXXAT )
{
return (sendIxxatDataMessage( txData ));
}

  1. Two resister on tool side or IXXAT device side ??

Hi @kyle_HMS: Answer to question 7: Yes, we have 2 resisters 120 ohms on both end.
Also, I wanted to know if there was any update.

Regards
Piyush

Hi @PIYUSH_KHAJANJI,

  • Can you please use VCI4 Flashloader (C:\Program Files\HMS\IXXAT VCI 4.0\VCI4loadGUI.exe) to upgrade the firmware from V1.6.3 to V1.6.4.
  • Please provide a picture of the sticker on the side of the USB-to-CAN.
  • The “Transmit que full” can occur if the application enters CAN messages in to the transmit queue faster than the CAN controller can send it to the CAN bus. Have you tried using the VCI Programming Example? If so, what was the result?
  • Does the problem occur if you copy the vcinpl.dll into the directory with your EXE file?
    (please note there are 2 vcinpl.dll’s for 32bit and for 64bit applications)

Kyle

Hello Kyle,

  1. Hi, I have updated the device with the attached firmware.

  2. Yes, I am able to send CAN messages . I also took the can trace and I saw that at this moment it has 250-255 CAN messages per second.

  3. Yes, I have dll files in the exe. I still see the errors even after downloading new flash.

  4. I am attaching the picture of device

Regards

Piyush

WIN_20190812_09_47_51_Pro (2).jpg

I didn’t receive the picture, just the name in plain text. Also, have you tried running the VCI Programming example? Did you get the same errors? Can you attach a log or screen shots of the errors please?

Hello Kyle, I am attaching the picture of the device. WIN_20190812_09_47_51_Pro%20(2)

Thanks, is it possible to try a faster baud rate?

I doubt it because we are communicating with a system with 125kb capacity. Also I wanted to know if the IXXAT device holds any cache ?? Because when I test the tool, sometimes it does not show the error after I have not worked on it and if it does, do we have a clear memory cache or clear all command for the same ?

Thanks
Piyush

I am checking into cache, can you answer:

Yes, Also I get errors at random times. Sometimes its multiple times sometimes its just one time. Capture

Are you using any kind of USB extension cable or USB bus or is the USB-to-CAN plugged directly into the PC?

USB to CAN is plugged directly to PC.

Our colleague, Andreas, has been looking at this and here are his findings and follow up questions:

  1. Unfortunately I could not reproduce any problem.

  1. Could you please let me know
    if you can reproduce the problem using
    my test application in the attachment.

2019-08-16-CANCon-Tx-cyclical-125kBd-as-fast-as-possible.zip (3.8 MB)

The test application initialize the CAN interface with 125kBd and
send CAN messages as soon as possible.

  1. You can determine the number of the CAN messages per second
    using our canAnalyser V3 standard.

    You can download the Demo version of the canAnalyser from our webpage:
    https://www.ixxat.com/support/file-and-documents-download/demo-software-tools

    The attached 14 days canAnalyser3 license can be installed
    http://www.ixxat.com/support/contact-technical-support)

    1. with a double click on the file
      or
    2. using the Codemeter Control Center ( File / Import License)

canAnalyserTrial2019.WibuCmRaU (116.2 KB)

  1. The “Transmit que full” can occur
    if your application try to enter CAN messages
    in to the transmit queue faster
    than the CAN controller can send it to the CAN bus.

    Maybe the CAN controller can not send CAN messages,
    becuase there is a high CAN bus load on the CAN bus
    generated from another CAN nodes?

  2. Could you please let me know the processor type of the used PC?

  3. Could you please let me know the CPU load when the application runs?

  4. Do you use a real or a virtual Windows 10?

  1. I was able to send the data with no problem.
  2. Number of messages sent were 1100.
  3. Yes, there was high load on the CAN bus.
  4. Intel Core i5-3437U CPU @1.9 ghz
  5. 21%
  6. Real Windows