SPIデバイスがSDカードである場合のSPIデバイス間の切り替え

私はUSBシールドを介して接続されたUSBバーコードスキャナを使用していますが、この例を読んだ後、SDカードに保存したいのですが、バーコードもSPIを使用しているためSDカードは初期化されません。どのようにICカードを無効にしてSDカード?または、複数のSPIスレーブを切り替える方法は?

0
@LookAlterno誰かがバッファをトライステート化する方法やマルチプレクサを使用してSDの問題を回避する方法に答えることができるのであれば、それは有用な追加であり、完全に複製ではないかもしれません。
追加された 著者 Pat,

1 答え

SPIでは各デバイスに暗黙的なスレーブ選択ピンがあり、デバイスをイネーブルにするにはローに引き下げる必要があります。

SPIデバイスの各スレーブセレクトピンをarduino上の自分の未使用のデジタルピンに接続し、スレーブと話をするまでハイにします。

しかし、SSをハイにすると、すべてのSPIデバイスがMISOピンを適切にハイインピーダンスにするわけではありませんので、そのピンにトライステートバッファを使用するか、マルチプレクサを使用する必要があります。

独自のトライステートバッファ(たとえばHS125)を追加する場合は、SPIデバイスの各MISOピンをバッファの入力に接続する必要があります。スレーブセレクトは、トライステートの出力イネーブルピンに接続されます。バッファの出力は、マスターのMISOに適切にハイインピーダンスになるデバイスのMISOピンと共に接続することができます。

マルチプレクサを使用する場合、2つのオプションがあります。

  1. You can daisy chain 2:1 multiplexers by connecting the MISO of the device to the 0-input of the mux and the Slave select to the select input pin of the mux.

  2. you can use a >2 multiplexer to select the correct MISO line based on the address of a set of S lines. Then with a decoder you can provide the actual SS signal to the SPI device. This way you only need 2 SS pins for 4 SPI devices.

1
追加された
SDカードは、同じバス上の他のデバイスとうまくやっていることで悪名高いものです。特に、ロジックレベルシフト回路が不十分なアダプタがあります。
追加された 著者 Majenko,
私はこれを確認することができます。私は(安い)SDブレークカードと(SPI)SRAMを一緒に使用することで多くの問題を抱えていました。しかし、私はどのようにその 'バッファ'またはどのようなマルチプレクサ(とそれを使用する方法)を実装するのだろうか...これは少しplaseを説明できますか?
追加された 著者 Pat,