Jump to content

PCI Problem: If 2 DUTs are installed then BAR0 reads return 0


Recommended Posts

Hi there, This is my first posting on lava. A coworker pointed me here after I told him I had reached my limit trying to debug this hardware issue. I have a PMC device I am trying to test. The test plan calls for putting 2 of the devices on PMC-PCI adapter cards and installing them in a Windows PC, then running tests.

When I put just one of the devices in the PC I didn't have a problem. I made a driver using NI's VISA driver wizard. And I was able to read from the PCI configuration and BAR0 address spaces of the device using the VISA test panel in MAX.

However, when I plugged in the second DUT I started having a strange issue. I could still read from the configuration spaces from both devices, but one of the two DUTs always returned zero when I read from it's registers in the BAR0 address space, the other worked normally. No errors showed in Windows Device Manager.

So far I found a workaround that gets both cards working, but I still haven't figured out the root of the problem.

  1. Power up the PC with both cards installed
  2. After Windows boots up, switch off the power on one of the PCI-PMC adaptor cards
  3. Then in the Windows Device Manager click the "Scan for hardware changes" button and check that one of the cards is gone
  4. Switch the carrier card back on
  5. "Scan for hardware changes" again and click through Windows' "Found new Hardware" dialogue to re-install the driver

After that rigamarole both cards work untill I restart the PC. Does this issue sound familiar to anyone out there? Can you offer some suggestions for steps I should take for diagnosing PCI problems?

Link to post
Share on other sites

Hey thanks for replying. I don't have a driver from the manufacturer because they haven't released one yet, instead I used NI's VISA driver wizard to make a default PCI driver for testing purposes. I'm hoping to get some words of wisdom to help me find what is causing the problem.

Link to post
Share on other sites

Unfortunately, I don't have any experience with VISA driver generation.

Of course, my first suggestion is to get in touch with NI and ask how to better diagnose this issue and if they've seen it before. A situation where a generated driver is used on multiple identical devices may not be that common and could have some issues.

Also, you could use NI's I/O Trace to log everything that's going on with VISA - I don't know if this will catch what the driver is doing, but an I/O trace is usually something that NI requests to troubleshoot hardware-related issues. Additionally, you could check the Windows Event Log to see if there's any information there - again, I don't know if the driver will report there, but it's worth checking.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By ThomasGutzler
      Hi,
      I'm connecting to a Rigol DZ1000 Oscilloscope via USB and using the :DISP:DATA? ON,0,PNG command to grab a screenshot. Reading out the data in blocks of 65535 bytes until there is no more (see attached vi).
      This normally works fine but yesterday I was getting a timeout error. I fired up IO Trace and got this:
      > 783. viRead (USB0::0x1AB1::0x04CE::DS1ZA201305475::INSTR (0x00000001), "#9000045852‰PNG.......", 65536 (0x10000), 45864 (0xB328)) > Process ID: 0x000039C8 Thread ID: 0x00001760 > Start Time: 13:13:54.1169 Call Duration 00:00:10.4323 > Status: 0xBFFF0015 (VI_ERROR_TMO) You can see that 45864 bytes were received, which is exactly what was specified by the binary data header (45852 data bytes + 11 header bytes + 1 termination char)
      I dumped the reply string into a binary file and set the scope to run so it show something else on the screen. Sure enough the error went away. I also dumped a good result into a file. Then I tried to figure out what the problem may have been but I didn't get anywhere. Any ideas? Sure looks like a bug in VISA read or perhaps an incorrectly escaped reply from the scope?
      It's very easy to "convert" the reply into the screenshot - just remove the leading 15 bytes (4 bytes from WriteBinayFile and 11 bytes from the scope header). And yes, both data files display just fine as PNG. I don't think PNG does internal checksum so byte errors would be hard to spot.
      Any ideas what could have caused that timeout?

    • By RMowatt
      I am experiencing numerous VISA Lock Errors (-1073807345) on resources I haven't explicitly locked.  This is happening on TCPIP connections to keysight N6700 power supplies and keysight N5242 PNA fairly regularly.
      I have simultaneous loops in the application communicating to the different instruments, using a sequencer of sorts to pipe commands one at a time to each of my various loops.
      Has anyone seen the locking error pop before while not actually using the Lock and Unlock VIs?  This issue has gotten worse lately and it has come time to find the root cause.  My only thoughts are that it may have something to do with having NI MAX and Keysight Connection Expert both installed and possibly trying to "ping" these devices.  Every once in a while me sending commands and these "pings" may clash and cause the locking error.
      Error reads as follows:
      "Specified type of lock cannot be obtained, or specified operation cannot be performed, because the resource is locked. VISA error code -1073807345 (0xBFFF000F)"
      We are using LabVIEW 2013
      Thanks in advance!
    • By Benoit
      Hey guys,
      Can you take a look at this?
      The only work around I found is to dynamically open the connection with an external VI to make it fail so the second time it works.
      If anyone has an instrument that communicate trough TCP-IP with VI, please try on your side with LabVIEW 2018 and visa 18.
      https://forums.ni.com/t5/LabVIEW/VISA-error-with-TCP-IP-BK-precision-2190E/m-p/3876316
      Thanks
    • By szewczak
      I wanted to cross post metux's discovery here asap, and have a separate discussion.
      Metux's original post:
      The recent Linux driver package introduces a CRITICAL security vulnerability:
       
      http://www.ni.com/download/ni-linux-device-drivers-2018/7664/en/
       
      It adds additional yum/zypper repos, but explicitly disabling package signing and using unencrypted HTTP transport. That way, it's pretty trivial to completely takeover the affected systems, by injecting malicious packages.
       
       
      DO NOT INSTALL THIS BROKEN SOFTWARE - IT IS DANGEROUS !
       
      CERT and BSI are already notified.
       
       
       
       
       
    • By Nishar Federer
      hi, 
      I need to make an application , which has to send a  hexa decimal data from labview to the protocol via RS232.I have sent a single data block(1Byte) and i was able to receive the acknowledgement properly. 
      But if i send a 9 bytes of Data through VISA via RS232, I am not getting any output at all , But if I send the same data block through different application, I am able to receive data . Can anyone suggest me way to resolve the issue or Better way to do this?? 
       
      I have attached my vI with this  . I am struggling at this point for so long.
       
       
       
      POC.vi
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.