他のスレーブSPIデバイスがある場合、SPI経由でmicroSDカードにアクセスする際に問題はありますか?


10

SPIポートが1つだけのCPUを備えたデザインに取り組んでいます。このポートには複数のスレーブが接続されており、そのうちの1つはmicroSDカードです。

これは、SDカードがSPIマスターの唯一のスレーブとして動作するように設計されているというエンジニアからのレポートです。

他の誰かが同じバス上の他のSPIスレーブと一緒にmicroSDを使用できましたか?おそらく、このレポートは特定の問題のあるminiSDカードに基づいているだけでしょうか?

安全のために、miniSDカードにつながるスレーブ選択ラインでSPI CLKラインをゲーティングすることをお勧めしますか?

回答:


12

このページによると SDカードは、DOラインをsclkラインと同期して駆動または解放します。

SPIバスでは、各スレーブデバイスは別々のCS信号で選択され、複数のデバイスをSPIバスに接続できます。汎用SPIスレーブデバイスは、CS信号によってDO信号を非同期に駆動/解放して、SPIバスを共有します。ただし、MMC / SDCはSCLKに同期してDO信号を駆動/解放します。これは、MMC / SDCおよびSPIバスに接続されているその他のSPIスレーブとバスが競合する可能性があることを意味します。右の画像は、MMC / SDCの駆動/解放タイミングを示しています(バスの状態を確認するために、DO信号が1/2 vccにプルされています)。したがって、MMC / SDCがDO信号をリリースするには、CS信号がディアサートされた後にマスターデバイスがバイトを送信する必要があります。

したがって、CSラインをHighに上げた後にダミーバイトをSPIに送信するだけで機能します。上記のサイトには、SDカードのCSラインをHighに引き上げたときのSPIバスのタイミング図があります。

また、電源投入時またはカード挿入時に、マイクロコントローラーがカードとのSPIモードの使用をネゴシエートすることを確認することをお勧めします。これらの詳細はここにあります

要約すると、上記の予防措置が講じられている限り、SPIバスを複数の周辺機器と共有しても問題ありません。


素晴らしいリソース、ジャスティン。ありがとう!SDとのスレーブの競合を処理するために必要なのはそれだけです。
jpeskin
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.