NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

USB-8452のLabview制御について

解決済み
解決策を見る

SPI制御が必要なデバイスの制御をUSB-8452とLabviewで行おうとしています.

SPIについても,Labviewについても初心者なので手間取っております.

USB-8452のLabviewライブラリを使用しているのですが,制御したいデバイスは10bit/sampleのデータ構造になっています.

そこで,ライブラリの中にあった,"Bits Per sample"コンポーネントで10bitを指定しようと思ったのですが,どうも8bitまでしか動かないようでした.簡単に10bit/sampleの設定をする方法がありましたら教えて頂ければと思います.

よろしくお願いいたします.

0 件の賞賛
メッセージ1/10
3,639件の閲覧回数

SPI通信のそもそもの規格が8bitデータなので、10bitのものはあまり存じません。

どなたかご存じの方いらっしゃいますか?

 

このあたりを見ると、byte操作が必要そうですね

Controlling a 10-bit Digital Potentiometer via SPI with Arduino

Certified LabVIEW Developer
There are only two ways to tell somebody thanks: Kudos and Marked Solutions

GCentral
0 件の賞賛
メッセージ2/10
3,585件の閲覧回数
解決策
トピック作成者T11が受理

こんにちは。

 

以下のプロパティノードで変更出来ると思います。

 

ni-845x > SPI Streaming > Stream node > Number of bits per sample

SPI_CONFGURE_NODE.png

USB-8452の仕様を調べると、4-64bitsの間であれば設定できるようなので問題ないはずです。

 

NI-845x Hardware and Software Manual - National Instruments
http://www.ni.com/pdf/manuals/371746e.pdf#page=496

 

メッセージ3/10
3,576件の閲覧回数

doriaconta様、私の勉強不足で申し訳ありません。大変参考になりました。

 

T11様、もし結果がわかりましたら共有いただければ嬉しいです。

Certified LabVIEW Developer
There are only two ways to tell somebody thanks: Kudos and Marked Solutions

GCentral
0 件の賞賛
メッセージ4/10
3,569件の閲覧回数

Pignite様,

doriaconta様,

ご教授ありがとうございます.

早速,Number of bits per sampleを試したところ,仰るとおり,10bit分のクロックを生成できました.

ただ,このStrimingコンポーネントを使用した場合,クロック周波数,タイミング等の設定が思うとおりに行かないので,

いろいろ試しながら希望の制御信号をつくれるようになるためには,もうしばらく時間がかかりそうです.

ともかく一歩前進しました.

ありがとうございました.

0 件の賞賛
メッセージ5/10
3,542件の閲覧回数

dotriaconta様

立て続けに申し訳ありません.

教えて頂いたSPI Stream Configurationを使用して,CLK周波数やタイミングがいじれる事を確認できたのですが,

Chip Selectのポート設定をどうすればよいのか模索中です.

特になにもしなければ,SPI Stream ConfigurationでいじれるのはCS0の設定のようです.

これを所望のCS(CS1とかCS2など)に対して制御したいのですがなかなかうまくいきません.

なにかご存じでしたら教えて頂ければと思います.

 

 

0 件の賞賛
メッセージ6/10
3,530件の閲覧回数

Chip selectのポート設定に関しては、以下のプロパティノードで変更できます。

 

NI-845x > SPI basic > SPI node > ChipSelect

 

SPI_CHIPSELECT.png

 

サンプルがあるのでそちらを参考にされると有用かもしれません。

 

NIサンプルファインダ > ハードウェア入力と出力 > I2CとSPI > SPI基本 > General SPI Write.vi

 

正直、どこにどのような設定(プロパティ・メソッド)があるか分かりにくいですよね。

 

あまり有用ではないかもしれませんが、クラスブラウザを使うと検索に役立つかもしれません。(私もたまに使用してます)

 

ツールバー > 表示 > クラスブラウザ

 

クラスブラウザ.png

 

オブジェクトライブラリに使用するライブラリ(例えば、LabVIEW自体のプロパティなどだったらVIサーバー、DAQであればDAQmx、など)を選択すれば、どのライブラリで使用できるプロパティやメソッドがまとめられてますし、検索もできます。

(検索できるので、どの階層に目的のプロパティがあるか簡単にわかります)

 

あとは詳細ヘルプを見ながら地道にプロパティを見ていくしかないかもしれません。

 

メッセージ7/10
3,527件の閲覧回数

dotriaconta様

いろいろありがとうございます.

NI-845x > SPI basic > SPI node > ChipSelectで所望のChipSelectを制御できました.

ただ,NI-845x > SPI basicでせっかく,ChipSelectを設定しても,そのあとで,SPI StreamingによりBits per sample等を設定すると

ここではCS0と同期をとってしまい,悪戦苦闘中です.

なかなかうまくいきませんが,地道に調べてみます.

0 件の賞賛
メッセージ8/10
3,512件の閲覧回数

すみません。私の案内の仕方が悪かったですね。

 

SPI node内にも"Number of Bits per sample"のプロパティがあると思います。

 

まず、Chip selectをSPI nodeの中で選択し、同じSPI node内で(下に引き伸ばすとさらにプロパティを設定・読み取りができます)上記Number of Bits per sampleで希望のビット数を指定すると希望の動作になると思います。

 

Multiple Chip select.png

 

 

選択したChip selectに対するプロパティ(例えば、今回のようなデータビット数など)を変更したい場合は、同じプロパティノード内で指定してください。

別のChip selectに対して別の設定を反映させたい場合は、別にプロパティノードを用意する必要があります。

 

 

0 件の賞賛
メッセージ9/10
3,509件の閲覧回数

ありがとうございます.早速試してみました.

 10bit設定にしてデータを”1100111001としたのですが,今度はWirteコンポーネントに8bit縛りがあるのか

所望のデータが得られませんでした.

SnapCrab_NoName_2017-5-11_15-49-22_No-00.png次にNumBitsSampleの設定を5bitにしたところ,1101と1101の間にスペースができましたが,

データは所望のデータが得られました.(これでデバイスが動くのか不明ですが…)とりあえずこれで試してみようかと思います.

SnapCrab_NoName_2017-5-11_15-55-14_No-00.png

0 件の賞賛
メッセージ10/10
3,479件の閲覧回数