I have a small problem with SPI communication. I'm using NI USB 8452 module and LabView 2013 with driver NI USB 845x 14.0. As a first step I ran the example from attached library called "Atmel AT25080A Write.vi". The problem manifests as logic "0" all the time on MOSI and MISO lines. No Data transferred. CS and CLK works properly. I never use pull ups when using SPI but maybe I should? The question is did anybody meet the same problem while using this usb 8452 module? All 4 SPI lines connected directly to oscilloscope. Waiting for any reply. Thanks in advance.
I have several USB instruments (Agilent/Keysight optical power meters) which I can talk to via USB.
To minimise the time "wasted" by transferring data between the instruments and the PC I would like to query them in parallel. Unfortunately, LabVIEW doesn't agree with that strategy and reliably crashes when doing so. It doesn't matter which command I send, so here's a sample snippet, where I just query the instrument ID repeatedly. I don't even have to read the answer back (doing so won't make a difference):
This will kill LabVIEW 2012 and 2014, both 64bit without even popping up the "We apologize for the inconvenience" crash reporter dialog.
Has anyone had similar experiences?
I've seen LabVIEW crash while communicating over RS232 (VISA) but it's much harder to reproduce.
Is it outrageous to assume that communication to separate instruments via different VISA references should work in parallel?
All my instrument drivers are separate objects. I can ensure that communication to a single type of instrument is done in series by making the vi that does the communication non-reentrant. But I have to communicate with multiple instruments of different types, most of which use some flavour of VISA (RS232, USB, GPIB).
Am I just lucky that I haven't had more crashes when I'm talking to a lot of instruments?
Could it be a bug specific to the USB part of VISA? I've only recently changed from GPIB to USB on those power meters to get faster data transfer rates. In the past everything went via GPIB, which isn't a parallel communication protocol anyway afaik.
Long time reader, first time writer.
I'm currently trying to develop a data gathering system using a NI sbRIO-9606.
The premise is quite straight-forward; I have a digital signal (data and clock) with a bitrate of 10 Mbit/s which I want to store to a USB flash drive in real time. The single-board RIO has no problem reading and processing the bitstream but storing the data to the USB flash drive is apparently not as easy as I thought.
According to the manual the USB port supports a transfer speed up to 480 Mbit/s (USB 2.0 standard?) but I've been unable to achieve any faster transfer speed than around 1 Mbit/s (1.3 Mbit/s worst-case). This is unaccaptable for my application!
I'v tried to disabeling buffering for the Open/create file function and only storing files in multiples of the sector size but it does not seem to help. Are there any preferrable USB flash drives one must use? Or am I unaware of any "high speed file streaming" options in LabVIEW?
I am having some issues with errors when I am writting to an external USB drive. The errors appear to be random. I was able to get a log of the errors. I have attached the VI that I am having issues with. The code number for the error is 1.
Endless File Write_rev1.vi
6/23/2014 18:55:9.864 : 8 : 1 : Get File Size in Endless File Write_rev1.vi:2590003->SPI User Interface test1_rev1.vi : Indicator of multiple errors : 2
6/23/2014 18:55:10.886 : 0 : 6 : Open/Create/Replace File in Endless File Write_rev1.vi:2590003->SPI User Interface test1_rev1.vi<APPEND>
H:GDataGDaqData HS_00039.efd : Indicator of multiple errors : 2
6/23/2014 18:55:11.910 : 1 : 6 : Open/Create/Replace File in Endless File Write_rev1.vi:2590003->SPI User Interface test1_rev1.vi<APPEND>
H:GDataGDaqData HS_00040.efd : Indicator of multiple errors : 2
6/23/2014 18:55:12.934 : 1 : 6 : Open/Create/Replace File in Endless File Write_rev1.vi:2590003->SPI User Interface test1_rev1.vi<APPEND>
H:GDataGDaqData HS_00041.efd : Indicator of multiple errors : 2
The error appears to start with the "Get File Size" vi in the VI that I have attached. Once that happens it appears that I can't access the file or hard drive. Not sure if the real problem is with the "Get File Size" vi or if is just when the drive access is messed up.
The VI will write to a file until it's size is greater than 62.5K. Once that happens the file is closed and the file name is indexed and the new file is open. The errors appear to have happened on a file index increment becuase the last file that was written was 62.5K.
The only error handling that is part of this VI is that if there is an error opening the file the file name is indexed and used for the next time the data is written. I wanted to know is there was any other kind of error handling that I should put in this to handle file errors. Or maybe to reset the USB port possibly? Are there possibly any waits that I should put into this sequence of step?
The drive I am using is from imation and the model number is H100 1TB. I am also using LabVIEW 2013 SP1.
If you need any more information or have questions please let me know.
Thanks for your help.
I am working on an RT app and hardware that uses more than 50 USB devices connected via USB hubs to an NI rackmount computer. After a hard reboot of the rack mount computer, the USB devices and hubs take more than 5 minutes to enumerate.
I am looking for a way to verify all the USB devices have enumerated. Polling VISA Find Resources appears to cause the entire system to lockup if we start it immediately in RT app. If we manually delay for 10 minutes or so in the application and then call VISA Find Resources, it appears to work OK as long as all of the devices have successfully enumerated. A hard-coded 10 minute delay is not optimal because on soft reboots, the delay is unnecessary.
Are there any other ways to get the state of system USB enumeration other than VISA Find Resource?
During reboots, the NI boot loader takes a minute or so to "Enumerate USB devices" but it appears it only enumerates each USB hub before it completes and moves on.
PS. I know there are latency issues using USB on an RT system. We chose to use the RT platform for stability (no windows updates, etc) vs determinism. This may or may not be a good reason, but its what we have now.