简体   繁体   English

使用USB-6356 X系列DAQ板进行SPI控制时发生错误-200361

[英]Error -200361 using USB-6356 X-series DAQ board for SPI control

I'm using a USB-6356 DAQ board to control an IC via SPI. 我正在使用USB-6356 DAQ板通过SPI控制IC。

I'm using parts of the NI SPI Digital Waveform library to create the digital waveform, then a small wrapper VI to transmit the code. 我正在使用NI SPI数字波形库的一部分来创建数字波形,然后使用一个小型包装器VI来传输代码。

My IC measures temperature on an RTD, and currently the controlling VI has a 'push for single measurement' style button. 我的IC在RTD上测量温度,当前控制VI具有“单次测量按钮”样式的按钮。 When I push it, the temperature is returned by a series of other VIs running the SPI communication. 当我按下它时,温度将通过运行SPI通信的一系列其他VI返回。

After some number of pushes (clicking the button very quickly makes this happen more quickly in time, but not necessarily in number of clicks), the VI generates an error -200361, which is nominally FIFO buffer overflow on the DAQ board. 按下若干次后(快速单击按钮可使时间更快速地发生,但不一定是单击数),VI产生错误-200361,这是DAQ板上的FIFO缓冲区溢出。

It's unclear to me if that could actually be the cause of the problem, but I don't think so... 我不清楚这是否真的可能是问题的原因,但我不这么认为...

An NI guide describing this error for USB-600{0,8,9} devices looks promising, but following the suggestions didn't help me. NI指南描述了USB-600 {0,8,9}设备的此错误,看起来很有希望,但遵循这些建议并没有帮助我。 I substituted 'DI.UsbXferReqCount' for the analog equivalent, since my read task is digital. 因为我的读取任务是数字的,所以我用“ DI.UsbXferReqCount”代替了模拟的。 Reading the default returned 4, so I changed the property to write and selected '1', but this made no difference. 读取默认值返回4,因此我将属性更改为write并选择了“ 1”,但这没什么区别。

I tried uninstalling the DAQ board using the Device Manager, unplugging and replugging, but this also didn't change anything. 我尝试使用设备管理器卸载DAQ板,然后拔出并重新插入,但这也没有任何改变。

My guess is that additional clock samples are generated after the end of the 'Finite Samples' part for the Read and Write tasks, and that these might be adding blank data that overflows, but the temperatures returned don't indicate strange data, and I'd have assumed that if this were the case, my VIs would be unable to interpret the data read in as the correct temperature. 我的猜测是,在“有限样本”部分结束后,会为读取和写入任务生成其他时钟样本,并且这些时钟样本可能会添加溢出的空白数据,但是返回的温度并不表示奇怪的数据,我如果已经是这种情况,我的VI将无法将读取的数据解释为正确的温度。

I've attached an image of the block diagram for the Transmit VI I'm using, but actually getting it to run would require an entire library of VIs. 我已经附上了我正在使用的发送VI的程序框图,但实际上要使其运行将需要一个完整的VI库。

The controlling VI is attached to a nearly identical forum post at NI forums . 控制VI附在NI论坛上几乎相同的论坛帖子中

发送VI的框图

I think USB-6356 don't have output buffers used for Digital signal. 我认为USB-6356没有用于数字信号的输出缓冲器。 You can try it by NI-MAX, if you select the digital output, you may find that there is no parameters for Samples. 您可以通过NI-MAX进行尝试,如果选择数字输出,可能会发现没有用于采样的参数。 It's only output a bool-value(0 or 1) in one time. 它一次只输出一个布尔值(0或1)。

You can also use DAQ Assistant in LabVIEW, when you config Digital output, if you select N-Samples or Continuous samples, then push OK button, here comes a Dialog that tell you there is no buffer for lines that you selected. 您还可以在LabVIEW中使用DAQ助手,在配置数字输出时,如果选择N样本或连续样本,然后按确定按钮,将出现一个对话框,告诉您没有所选行的缓冲区。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM