質問: SPIデバイスがSDカードである場合のSPIデバイス間の切り替え 私はUSBシールドを介して接続されたUSBバーコードスキャナを使用していますが、この例を読んだ後、SDカードに保存したいのですが、バーコードもSPIを使用しているためSDカードは初期化されません。どのようにICカードを無効にしてSDカード?または、複数のSPIスレーブを切り替える方法は?
回答: 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.