2016-11-17 17 views
-2

私はEmbedded Armの7200ボードを使用しています。このボードは、Linuxカーネル2.6をホストし、EP9302 arm9をマウントします。 加速度計(LIS3DSH)および一部のPT100(MAX31865)と通信するには、SPIインターフェイスを使用する必要があります。SPI EP93xx(Linux搭載TS7200ボード)

この問題へのアプローチは、文字通り、Embedded Arm(tempSensor.Cファイルftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7200-linux/samples/)が提供するこの例のようなEP9302レジスタのビットバンキングに基づいています。この場合、センサはボード自体に「埋め込まれている」ことに注意してください。最後にCでプログラムします。

残念ながら、私たちの試みはすべて失敗しました。 質問:EP93xxでSPIを使用する方法を知っていますか?任意のコードまたは例?

+0

私が正しく覚えていれば、LIS加速度計は事実上のSPI標準をよく守っていませんが、さまざまなタイミング仕様がありません。したがって、いくつかの一般的な標準SPIドライバがあれば、おそらく動作しません。 – Lundin

+0

最初に返信いただきありがとうございます。私はSPIドライバを使用しないで、私はマイクロコントローラのレジスタに直接書き込みます。 – Andak

+1

_ourの試みが失敗したとはどういう意味ですか?あなたはspiの出力をテストしていますか?データは正しく送信されますが、スレーブデバイスの回答はありませんか?データは出力されませんか?あなたはまたあなたの努力を掲示するべきです。完全な解決策を探しているのはOTです。 – LPs

答えて

0

皆さん、ありがとうございます。提案とヒントをありがとうございました。 私は私の問題を解決しました。私はドライバーを使用していませんでしたが、マイクロレジスタにビットを直接ビットしていました。私は担保効果がありました。 - SPI書き込みレジスタに何か書き込むたびに、データはMOSIとデータに書き込まれますMISOはFIFOバッファに転送される。スレーブデバイスが応答するかどうかは関係ありません!それは問題でした

解決方法:SPIの「出力」レジスタに何かを書くたびに解決します。必ずFIFOの "入力"レジスタを読み出してください。常に!

私がスレーブレジスタを設定していたとき、私は入力FIFOを読み取っていませんでした(デバイスは応答しませんでしたが、FIFOを常に(クリーン)読んでください!)。

オシロスコープを使用して問題が発生しました。手伝ってくれてありがとう。 質問に記載されている例は、「書き込み」の後に常に「読み取り」があるため動作しています!

関連する問題