問題タブ [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.
embedded - SDHC SPI 書き込みの問題
しばらくの間、 LPC1766 SPIペリフェラルを使用して SD カード インターフェイスを作成しようとしましたが、現在、どこにも答えが見つからないという問題に行き詰まっています。
問題は、SDHC カードが書き込みコマンドと読み取りコマンドに期待どおりに応答しないことです。
Chan のフローチャートと NXP アプリケーション ノートに基づいた初期化では、すべて正常に動作します。カードのバージョンを区別し、OCR、CID、CSD を読み取り、それらのサイズを判断できます。
そのステップの後、1 秒ごとに単一のブロックを書き始め、それを読み戻してデータの整合性をチェックします。Kingston SDHC 4 GB クラス 4 カードでは、最初の書き込みコマンドを送信できますが、2 番目のコマンドでは、カードは CMD24 に (0x00 または 0x01) 応答しません。SanDisk 4 GB クラス 4 カードの場合、結果は異なります。カードはすべてのコマンドに応答しますが、データを読み戻すとゼロしか返されません (ゼロを書き込んでいないことは確かです)。SDSC カードを使用すると、すべて正常に動作します。
SDHC はバイト アドレスではなくブロック アドレスであり、SDHC の場合は CCS をオンにして ACMD41 を送信する必要があることを認識しています。CRC チェックをオンにしたばかりで、すべてのカードがコマンドとデータを受け入れているため、クロック周波数が問題ではないこともわかっています (開始に 400 KHz を使用し、次に書き込み/読み取りに 20 MHz を使用)。CRC の計算を停止すると、すべてのカードがコマンドとデータを拒否します。
android - ubuntu PCを実行するためにAndroid SPIドライバーをinsmodする方法
私のdevkit8000アンドロイド用に、PC ubuntuでSPIドライバーを開発しています。
作成方法の例を見ました。しかし、SPI ドライバーをビルドして、実行中のカーネルに insmod できるようです。(リンクはこちら) http://www.jumpnowtek.com/index.php?option=com_content&view=article&id=57&Itemid=62
現在の私の理解は、私のubuntuの「/ lib/modules / ...」を指していることです。この部分は私が管理しました。しかし、DevKit8000 用の SPI ドライバーの主要なコンポーネントであると思われる "modprobe omap2_mcspi" を実行できません。
SPI ドライバーを実行中のカーネルに insmod できるというのが本当かどうかを確認するために誰かが助けてくれることを願っています。それが可能であれば、私が「作成」するときに、どちらを指す必要がありますか。また、modprobe が表示されるようにするにはどうすればよいですか。
embedded - SPIは本当に待機ループを必要としますか?
IAREmbeddedワークベンチ5.10でmsp430f5418を使用しています。
グラフィカルLCD(ST7565R)は、SPIを介してMSPに接続されています。
MSPマスターは、SMCLKで8ビットのMSBファーストモードを使用します。
通常、SPIを使用してバイトを転送する前に、ビジービットをチェックする必要がありますよね?
しかし、私の場合、ビジービットをチェックせずに連続してデータを送信しても正常に動作し、表示データを正しく表示できます。
なぜそれが機能しているのか誰かが説明できますか?
レディビットをチェックする必要がありますか、それとも安全ですか?
ありがとうございました、
c# - ゲームボーイプリンターとのシリアル接続の開始.NetGadgeteer
私は、Microsoft.NETgadgeteerモジュールを使用してゲームボーイプリンターをハッキングして通信するプロジェクトに取り組んでいます。これまで私はハードウェアを扱っていました(このスレッドを参照してください:http ://www.tinyclr.com/forum/21/6665/ )
必要に応じてプリンターをSPIシリアル接続として配線しました。次に、印刷の調査を開始するために、プリンターとのバイトパッケージの交換を開始する必要があります。
私はいくつかのコードをまとめようとしましたが、惨めに失敗しました。プリンターと話す方法がよくわかりません。私が行った唯一の進歩はSPI構成ですが、実際の通信は私が理解できる範囲を超えています。おそらく誰かが私を正しい方向に向けることができないのでしょうか?
これが私がいくらか複製しようとしているコードです:http://milesburton.com/images/e/ec/GBPrinter_Arduino_Alpha_0.01.pde
私の主な参考資料はThermaldotnet(sparkfunプリンター用のライブラリ)github.com/yukimizake/ThermalDotNetです。
スパイダー上のSPI:tinyclr.com/forum/21/6621/
および基本的なSPIの例:* wiki.tinyclr.com/index.php?title=SPI_-_MP3_Decoder *
バイト転送を確認して、実際に機能しているかどうかを確認するにはどうすればよいですか?
私がこれまでに持っているもの:
ピンを8(MISO)に変更し、配列を追加したことを除けば、上記のコードとほぼ同じです。私はこの時点で本当に盲目になっています。このような知識が乏しいので、これに入るのは気分が悪いですが、少しでも助けていただければ幸いです。
これに興味のある人のためのいくつかのリソース:完全な音楽シールドコード:code.tinyclr.com/project/330/fez-music-shield/
ドキュメント:msdn.microsoft.com/en-us/library/ee436313.aspx その他のドキュメント:netmf.com/Gadgeteer/docs/GadgeteerCore/2.41.500/html/0d40434b-2a84-2f72-ca4d-b0012535ea58.htm
非ハイパーリンクについて申し訳ありません+事前に感謝します!
embedded - RXIFフラグが設定されているときにPIC32SPIISRが呼び出されませんか?
PIC32MX795F512LSPI3モジュールをスレーブモードで使用しています。マスターはSPI回線を介してデータを送信していますが、スレーブの割り込みサービスルーチンが呼び出されることはありません。RX割り込みフラグがスレーブ側のハードウェアに設定されており、SPI3BUFを読み取って正しい値を取得できますが、ISRがまだ呼び出されていません。
これが私のspiinitコードです:
これが私のISRです
私はMPLABXとC32コンパイラを使用しています。私はこれで4時間壁に頭をぶつけてきました。
embedded - PIC32 に SPI スレーブ ISR を実装しますか?
チップ セレクトを備えた 1.53MHz SPI バスで接続された2 つのPIC32MXマイクロコントローラがあります。スレーブ側の割り込みサービス ルーチンでデータを正しく送信するのに問題があります。テスト ケースとして、マスターに 10 ミリ秒ごとに 2 バイト (0x01、0x00) を送信させています。スレーブは 0x01 コマンド ID を受信し、マスターが 2 番目のバイト (ダミーの 0x00) を送信したときに 0x02 で応答することになっています。
理想的には、各転送は次のようになります。
マスター スレーブ
0x01 0x00
0x00 0x02
ただし、スレーブ割り込みをどこから始めればよいか本当にわかりません。airsysTx という fifo バッファーを使用して、次回マスターが要求を行うときにシフトアウトする必要があるデータを保持しています。スレーブはマスターから 0x01 を正常に受信し、0x02 を fifo バッファーに書き込みます。確実に正しく送信されるように割り込みをコーディングする方法がわかりません。以下のコードは良いスタートですが、間違っています。提案?
このコードが実際に送信しているのは次のようなものです。
理想的には、各転送は次のようになります。
マスター スレーブ
0x01 0x02
0x00 0x01
c - MSP430でのSPIポーリング読み取り/書き込み?
このような単純な質問で申し訳ありませんが、SPIモード用にMSP430を初期化し、ポーリングの読み取りおよび書き込み操作を実行するCの例はありますか?私にとって非常に新しいものであり、どこから始めればよいのかわかりません。
ありがとう。
android - Android:microSDカードとSPI通信を行う方法
Galaxy S(Samsung製)のAndroid 2.3.3(Java)でプログラミングしています。microSDカードをGPIOポートとして使用し、SPIでデバイスと通信したいと思います。
このタスクを実行するには、どのライブラリを使用する必要がありますか?SPI通信を実行するにはどうすればよいですか(現在、マイクロコントローラーとAndroid言語(単純なアプリケーション)で従来のSPI通信を使用しています)。これを行うことは可能ですか?SDカードのPINから値を読み取るにはどうすればよいですか(宣言する方法)?
linux - SPIDEV を使用した SPI デバイス アクセス
SPIDEV ドライバーを使用して、組み込み Linux システム上の SPI デバイス (Avago Tech の光学式マウス デバイス) にアクセスしたいと考えています。デバイスは SPI0 に接続されています。
menuconfig > "Device Drivers" > "SPI" で SPI と "User mode SPI device driver support" を有効にしました。
コードをboard.cファイルに追加しました
max_speed_hz として 500000 と 1000000 の両方を試しました (1Mhz がセンサーで許可されている最高値です)。SPI_MODE_3 は正しいです。データシートで確認してください。bus_num = 1 は SPI0 を参照しているため、修正する必要があります (好奇心から = 0 も試しました)。
電気接続を確認しましたが、すべて動作しています。
カーネルはコンパイルされ、イメージは正しく起動しますが、/sys/class/spidev/ にデバイスが見つかりません (/sys/bus/spi/... にもありません)。システムの起動時にも、SPI への参照は表示されません。
問題がどこにあるのかについて何か考えはありますか?
serial-port - Arduino SPI からの望ましくない着信シリアル データ
私はArduinoでNFCシールド(これ)を使用しています。Rx で割り込みを使用しようとしています。シリアル ラインでデータを受信するたびに、Arduino を起動させたいと思います。これは、NFC シールドなしで正しく機能します。ただし、NFC シールドを使用すると、シリアル ポートで「0」が送信され、割り込みがトリガーされます。これは本当に望ましくありません。
いくつかの調査の後、ライブラリがSPIピンに書き込むたびに(のようdigitalWrite(_clk, LOW);
に、「0」を返すことがわかりました。
ループ関数には、次の行があります。
したがって、この行が実行されるたびに、シリアルバスを介して「0」が送信され、Arduino がスリープモードになることはありません... (読み取る NFC カードがなくても)
誰かが理由を知っていますか?どうすればそれを回避できますか?