問題タブ [spi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
721 参照

beagleboard - BeagleboardXm用のSPI

BeagleBoardXmでspiインターフェイスを動作させようとしています。ユーザースペースでspidevドライバーにアクセスできるようにカーネル(2.6.32)を再構成し(spidev3.0と3.1は/ devの下に表示されます)、Documentation/spiの下にあるspidev_test.cプログラムをコンパイルしました。プログラムを実行すると、次の出力が得られます。

私は次のものを送信しています:0xFF、0xFF、0xFF、0xFF、0xFF、0xFF、0x40、0x00、0x00、0x00、0x00、0x95、0xFF、0xFF、0xFF、0xFF、0xFF 、0xFF、0xFF、0xFF、0xFF、0xFF、0xFF、0xFF、0xFF、0xFF、0xFF、0xFF、0xFF、0xFF、0xDE、0xAD、0xBE、0xEF、0xBA、0xAD、0xF0、0x0D

ボード上のSIMOとSOMIの間にジャンパーがあり、OスコープでCLKピンまたはCS0ピンをプローブしても、どのピンにもアクティビティが見られません。これにより、カーネルまたはu-bootのいずれにも適切に構成されたものがないと信じるようになります。DMAエラーは、構成の問題の手がかりになる場合もあります。

誰かがこの問題に遭遇しましたか?または、私が直面している可能性のある問題について何か洞察がありますか?

次に考えられる解決策は、更新されたカーネルを使用し、u-bootを調べて、u-bootがピンの多重化をオーバーライドしているかどうかを確認することです。

返信ありがとうございます。

0 投票する
3 に答える
10710 参照

embedded - SPI 通信での CPOL/CPHA 設定の使用

SPI 通信における CPOL/CPHA 構成の 4 つのモードが役立つ実際の例を教えてください。それらがどのように機能するかは理解していますが、いつ使用すればよいかわかりません。非標準の実装による互換性の目的で、いくつかの参照をすぐに読みましたが、これはどうですか?

ありがとう

0 投票する
1 に答える
1186 参照

c - microSDとLPC1769ボードのインターフェース

そのため、オンボードSPIプロトコルを使用して、LPC1769マイクロコントローラーボードからSanDisk 1Gb microSDカードに(A / Dコンバーターからの)データのバイトを保存しようとしています。私はそれらすべてがどのように機能するかを知っていますが、microSDカードでの作業を開始する方法がわかりません-CMD0へのさまざまな参照とそうでないものを見てきましたが、このライブラリの場所や適切な方法がわかりませんボード用のCコンパイラに組み込みます。

必要なのは、接続を正しく開始する方法と、指定されたブロックでカードにデータを読み書きする方法を理解することだけです。 void write(int data, int block) int read(int block)<<事前定義されたmicroSD関数のライブラリを使用してこれを簡単に行う方法がある場合、それは素晴らしいことです

0 投票する
1 に答える
866 参照

usb - 複数の MSP430 間で I2C、SPI、および USB 通信を同時に行うことは可能ですか?

いくつかの I2C スレーブ デバイスのマスターとして機能するように、いくつかの MSP430x6xx マイクロコントローラーをプログラムしました。MSP430 の 1 つは、内蔵の USB モジュールを使用して、I2C スレーブから受信したデータを PC に転送します。これを拡張して、すべてのマイクロ コントローラーがそれぞれの I2C スレーブから受信したデータを、共通のバス システムを使用して PC に送信できるようにしたいと考えています。SPI を使用して、すべての MSP430 から単一の MSP430 マスター (すでに I2C マスターと USB デバイスとして同時に機能している) にデータを転送し、それを PC に転送することは可能ですか? 他の提案をいただければ幸いです。ありがとう

0 投票する
1 に答える
825 参照

spi - atmega2560でad9833を使用して周波数と正弦波を生成できませんでした

4 つの fsync 信号が atmega2560 から送信される 4 つの AD9833 を使用しています。4つのAD9833すべてから異なる周波数を生成したいのですが、プログラムすると、2つのポートピンでいくつかの周波数が得られます。周波数を変更できませんでした..助けてください

0 投票する
2 に答える
353 参照

java - Vorbis SPIは、OGGファイルに対してUnsupportedAudioFileExceptionをスローします

JavaプログラムからOGGVorbisファイルを再生しようとしています。PCMファイル(* .wav)は、次のコードで正常に機能します。

OGGファイルも再生できるようにするために、Vorbis SPIをダウンロードして、jarをクラスパスに配置しました。ウィキペディアのこのサンプルoggを試してみました。しかし、それでも機能しません。UnsupportedAudioFileExceptionが発生します。

私が間違っている可能性があることを知っていますか?

0 投票する
3 に答える
17396 参照

c - Cでシリアル(SPI)接続からデータを読み取る方法は?

Linux MCU(Raspberry Pi)にインストールされ、さらに別のMCU(自分で作成する自家製のもの)からシリアルデータを読み取るプログラムを作成しようとしています。

私はこれを行う方法を研究し、「全体像」を持っていると思いますが、それでもいくつかのことが欠けています。1つは、カーネルモジュールを有効にして、デバイスにアクセスできるようにする必要があります。

そこから、この有名なCファイルを使用してSPI接続をテストできます。

これで接続は確立されましたが、シリアルデータを読み取る必要があります。このSOの質問への回答によると、私は次のことを行う必要があります。

...読み取り用に関連するポートを開き、を使用read()してデータを取得します。

ただし、その回答のコードスニペットは、SPI経由ではなく、デバイスドライバー経由でポートを開いているようです。

私の理解では、SPIを使用して接続されたMCUデバイスからデータを読み取ることができ、そのデバイス用に独自のデバイスドライバーを作成する必要はありません。これは本当ですか?もしそうなら、私はSPI接続からどのように読み取るのでしょうか、そしてそのコードは上記のリンクされた質問への回答のコードとどのように異なるのでしょうか?

そして、私の理解が正しくなく、デバイスドライバーを「通して」読んだ場合、そもそもなぜドライバーが必要なのですか?それはSPIが回避したいと望んでいることではありませんか?前もって感謝します。

0 投票する
0 に答える
1075 参照

c++ - SPI などの他のシリアル デバイスで Boost.Asio を使用する

Boost.Asio は Proactor を使用して、単一のスレッドを使用して I/O を見事に処理します。ソケットと一緒に使用しましたが、気に入っています。ソケットの代わりに、シリアル ポート (Windows では COMX デバイス、Linux では /dev/ttyXXX) で Boost.Asio (および基になる Proactor) の io_service を使用する方法があることがわかりました。実際、Boost.Asio は、ファイル ハンドルなどを含む、あらゆるタイプの I/O で使用されることを意図していると思います。

SPII2Cなどのシリアルデバイスに、すぐに使用できるかどうか疑問に思っています。この種のシリアル デバイスは、Linux では /dev/spi のように表示されます。

たとえば、次のように使用できますか。

自動的に、通常のシリアル ポート (RS232) と同じように動作しますか?

または、SPI が Boost.Asio で直接サポートされていない場合、Boost.Asio のコア コードを変更せずに、他のデバイス タイプのサポートを簡単に組み込む方法を後で提供しますか?

0 投票する
3 に答える
578 参照

vhdl - VHDLで転送完了を待つのに苦労している

私が持っているデュアルチャネルADCから値を読み取るには、継続的なSPI通信を行う必要があり、そうするための一種のステートマシンを作成しました。しかし、2番目のチャンネルを読み取る状態にはなっていないようで、その理由がわかりません。これがVHDLです...

コマンドはTxバッファに送信され、最後に受信したデータの値が信号に書き込まれ、7セグメントディスプレイに出力されます。転送を開始するにはSPI_sendからのパルスが必要であり、開始すると、転送が完了するまでSPI_busyがハイに設定されます。

現時点では、SPIを介してquery_xのみを送信します。スコープで確認できるため、これを知ることができます。ただし、興味深いことに、両方のディスプレイに同じ値が出力されているため、出力されているTxデータは変更されていませんが、まだREAD_Y状態になっていると思います。

私はこのコードを何時間も見つめていますが、理解できません。新鮮な目で生活が楽になることもあるので、何か見つけたら教えてください。また、私はこれに対処するためのより良い方法の提案を非常に受け入れています。私はVHDLを学んでいるだけなので、ほとんど正しい方法で物事を行っているかどうかさえわかりません。